Code view:

A painting is a person's account of this edit as text, recorded independently of the node mapping - a rendering often has several equally defensible answers where the mapping has one. Deletions and insertions carry no position on the opposite side in a painting, so that panel draws no caret for them.

Before

…lines 1–35 unchanged (35 lines)
36
37 if (tags.IsNotNullOrWhiteSpace())
38 {
39 parsedTags.AddRange(tags.Split(',').Select(_tagService.GetTag).Select(t => t.Id));
40 }
41
42 var episodes = _episodeService.EpisodesBetweenDates(start, end, unmonitored);
43 var allSeries = _seriesService.GetAllSeries();
44 var calendar = new Ical.Net.Calendar
45 {
46 ProductId = "-//sonarr.tv//Sonarr//EN"
47 };
48
…lines 49–106 unchanged (58 lines)

After

…lines 1–35 unchanged (35 lines)
36
37 if (tags.IsNotNullOrWhiteSpace())
38 {
39 parsedTags.AddRange(tags.Split(',').Select(_tagService.GetTag).Select(t => t.Id));
40 }
41
42 var episodes = _episodeService.EpisodesBetweenDates(start, end, unmonitored, true);
43 var allSeries = _seriesService.GetAllSeries();
44 var calendar = new Ical.Net.Calendar
45 {
46 ProductId = "-//sonarr.tv//Sonarr//EN"
47 };
48
…lines 49–106 unchanged (58 lines)

Before

compilation_unit
using_directive
using "using"
identifier "System"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "System"
. "."
identifier "Collections"
. "."
identifier "Generic"
; ";"
using_directive
using "using"
qualified_name
identifier "System"
. "."
identifier "Linq"
; ";"
using_directive
using "using"
qualified_name
identifier "Ical"
. "."
identifier "Net"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "Ical"
. "."
identifier "Net"
. "."
identifier "CalendarComponents"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "Ical"
. "."
identifier "Net"
. "."
identifier "DataTypes"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "Ical"
. "."
identifier "Net"
. "."
identifier "Serialization"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "Microsoft"
. "."
identifier "AspNetCore"
. "."
identifier "Mvc"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "NzbDrone"
. "."
identifier "Common"
. "."
identifier "Extensions"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "NzbDrone"
. "."
identifier "Core"
. "."
identifier "Tags"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "NzbDrone"
. "."
identifier "Core"
. "."
identifier "Tv"
; ";"
using_directive
using "using"
qualified_name
identifier "Sonarr"
. "."
identifier "Http"
; ";"
namespace_declaration
namespace "namespace"
qualified_name
qualified_name
qualified_name
identifier "Sonarr"
. "."
identifier "Api"
. "."
identifier "V3"
. "."
identifier "Calendar"
declaration_list
{ "{"
class_declaration
attribute_list
[ "["
attribute
identifier "V3FeedController"
attribute_argument_list
( "("
attribute_argument
string_literal
" "\""
string_literal_content "calendar"
" "\""
) ")"
] "]"
modifier
public "public"
class "class"
identifier "CalendarFeedController"
base_list
: ":"
identifier "Controller"
declaration_list
{ "{"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "IEpisodeService"
variable_declarator
identifier "_episodeService"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "ISeriesService"
variable_declarator
identifier "_seriesService"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "ITagService"
variable_declarator
identifier "_tagService"
; ";"
constructor_declaration (+39 nodes collapsed)
method_declaration
attribute_list
[ "["
attribute
identifier "HttpGet"
attribute_argument_list
( "("
attribute_argument
string_literal
" "\""
string_literal_content "Sonarr.ics"
" "\""
) ")"
] "]"
modifier
public "public"
identifier "IActionResult"
identifier "GetCalendarFeed"
parameter_list (+43 nodes collapsed)
block
{ "{"
local_declaration_statement (+23 nodes collapsed)
local_declaration_statement (+21 nodes collapsed)
local_declaration_statement
variable_declaration
implicit_type
var "var"
variable_declarator
identifier "parsedTags"
= "="
object_creation_expression
new "new"
generic_name
identifier "List"
type_argument_list
< "<"
predefined_type "int"
> ">"
argument_list
( "("
) ")"
; ";"
if_statement (+66 nodes collapsed)
local_declaration_statement
variable_declaration
implicit_type
var "var"
variable_declarator
identifier "episodes"
= "="
invocation_expression
member_access_expression
identifier "_episodeService"
. "."
identifier "EpisodesBetweenDates"
argument_list
( "("
argument
identifier "start"
, ","
argument
identifier "end"
, ","
argument
identifier "unmonitored"
) ")"
; ";"
local_declaration_statement
variable_declaration
implicit_type
var "var"
variable_declarator
identifier "allSeries"
= "="
invocation_expression
member_access_expression
identifier "_seriesService"
. "."
identifier "GetAllSeries"
argument_list
( "("
) ")"
; ";"
local_declaration_statement (+27 nodes collapsed)
local_declaration_statement
variable_declaration
implicit_type
var "var"
variable_declarator
identifier "calendarName"
= "="
string_literal
" "\""
string_literal_content "Sonarr TV Schedule"
" "\""
; ";"
expression_statement (+25 nodes collapsed)
expression_statement (+25 nodes collapsed)
foreach_statement (+463 nodes collapsed)
local_declaration_statement (+42 nodes collapsed)
local_declaration_statement
variable_declaration
implicit_type
var "var"
variable_declarator
identifier "icalendar"
= "="
invocation_expression
member_access_expression
identifier "serializer"
. "."
identifier "SerializeToString"
argument_list
( "("
argument
identifier "calendar"
) ")"
; ";"
return_statement
return "return"
invocation_expression
identifier "Content"
argument_list
( "("
argument
identifier "icalendar"
, ","
argument
string_literal
" "\""
string_literal_content "text/calendar"
" "\""
) ")"
; ";"
} "}"
} "}"
} "}"

After

compilation_unit
using_directive
using "using"
identifier "System"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "System"
. "."
identifier "Collections"
. "."
identifier "Generic"
; ";"
using_directive
using "using"
qualified_name
identifier "System"
. "."
identifier "Linq"
; ";"
using_directive
using "using"
qualified_name
identifier "Ical"
. "."
identifier "Net"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "Ical"
. "."
identifier "Net"
. "."
identifier "CalendarComponents"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "Ical"
. "."
identifier "Net"
. "."
identifier "DataTypes"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "Ical"
. "."
identifier "Net"
. "."
identifier "Serialization"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "Microsoft"
. "."
identifier "AspNetCore"
. "."
identifier "Mvc"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "NzbDrone"
. "."
identifier "Common"
. "."
identifier "Extensions"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "NzbDrone"
. "."
identifier "Core"
. "."
identifier "Tags"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "NzbDrone"
. "."
identifier "Core"
. "."
identifier "Tv"
; ";"
using_directive
using "using"
qualified_name
identifier "Sonarr"
. "."
identifier "Http"
; ";"
namespace_declaration
namespace "namespace"
qualified_name
qualified_name
qualified_name
identifier "Sonarr"
. "."
identifier "Api"
. "."
identifier "V3"
. "."
identifier "Calendar"
declaration_list
{ "{"
class_declaration
attribute_list
[ "["
attribute
identifier "V3FeedController"
attribute_argument_list
( "("
attribute_argument
string_literal
" "\""
string_literal_content "calendar"
" "\""
) ")"
] "]"
modifier
public "public"
class "class"
identifier "CalendarFeedController"
base_list
: ":"
identifier "Controller"
declaration_list
{ "{"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "IEpisodeService"
variable_declarator
identifier "_episodeService"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "ISeriesService"
variable_declarator
identifier "_seriesService"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "ITagService"
variable_declarator
identifier "_tagService"
; ";"
constructor_declaration (+39 nodes collapsed)
method_declaration
attribute_list
[ "["
attribute
identifier "HttpGet"
attribute_argument_list
( "("
attribute_argument
string_literal
" "\""
string_literal_content "Sonarr.ics"
" "\""
) ")"
] "]"
modifier
public "public"
identifier "IActionResult"
identifier "GetCalendarFeed"
parameter_list (+43 nodes collapsed)
block
{ "{"
local_declaration_statement (+23 nodes collapsed)
local_declaration_statement (+21 nodes collapsed)
local_declaration_statement
variable_declaration
implicit_type
var "var"
variable_declarator
identifier "parsedTags"
= "="
object_creation_expression
new "new"
generic_name
identifier "List"
type_argument_list
< "<"
predefined_type "int"
> ">"
argument_list
( "("
) ")"
; ";"
if_statement (+66 nodes collapsed)
local_declaration_statement
variable_declaration
implicit_type
var "var"
variable_declarator
identifier "episodes"
= "="
invocation_expression
member_access_expression
identifier "_episodeService"
. "."
identifier "EpisodesBetweenDates"
argument_list
( "("
argument
identifier "start"
, ","
argument
identifier "end"
, ","
argument
identifier "unmonitored"
, ","
argument
boolean_literal
true "true"
) ")"
; ";"
local_declaration_statement
variable_declaration
implicit_type
var "var"
variable_declarator
identifier "allSeries"
= "="
invocation_expression
member_access_expression
identifier "_seriesService"
. "."
identifier "GetAllSeries"
argument_list
( "("
) ")"
; ";"
local_declaration_statement (+27 nodes collapsed)
local_declaration_statement
variable_declaration
implicit_type
var "var"
variable_declarator
identifier "calendarName"
= "="
string_literal
" "\""
string_literal_content "Sonarr TV Schedule"
" "\""
; ";"
expression_statement (+25 nodes collapsed)
expression_statement (+25 nodes collapsed)
foreach_statement (+463 nodes collapsed)
local_declaration_statement (+42 nodes collapsed)
local_declaration_statement
variable_declaration
implicit_type
var "var"
variable_declarator
identifier "icalendar"
= "="
invocation_expression
member_access_expression
identifier "serializer"
. "."
identifier "SerializeToString"
argument_list
( "("
argument
identifier "calendar"
) ")"
; ";"
return_statement
return "return"
invocation_expression
identifier "Content"
argument_list
( "("
argument
identifier "icalendar"
, ","
argument
string_literal
" "\""
string_literal_content "text/calendar"
" "\""
) ")"
; ";"
} "}"
} "}"
} "}"