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–216 unchanged (216 lines)
217 if (!alreadyExists)
218 {
219 DownloadAlbumCover(album, cover, serverFileHeaders.LastModified ?? DateTime.Now);
220 updated = true;
221 }
222 }
223 catch (WebException e)
224 {
225 _logger.Warn("Couldn't download media cover for {0}. {1}", album, e.Message);
226 }
227 catch (Exception e)
228 {
229 _logger.Error(e, "Couldn't download media cover for {0}", album);
…lines 230–372 unchanged (143 lines)

After

…lines 1–216 unchanged (216 lines)
217 if (!alreadyExists)
218 {
219 DownloadAlbumCover(album, cover, serverFileHeaders.LastModified ?? DateTime.Now);
220 updated = true;
221 }
222 }
223 catch (HttpException e)
224 {
225 _logger.Warn("Couldn't download media cover for {0}. {1}", album, e.Message);
226 }
227 catch (WebException e)
228 {
229 _logger.Warn("Couldn't download media cover for {0}. {1}", album, e.Message);
230 }
231 catch (Exception e)
232 {
…lines 233–376 unchanged (144 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 "IO"
; ";"
using_directive
using "using"
qualified_name
identifier "System"
. "."
identifier "Linq"
; ";"
using_directive
using "using"
qualified_name
identifier "System"
. "."
identifier "Net"
; ";"
using_directive
using "using"
qualified_name
identifier "System"
. "."
identifier "Threading"
; ";"
using_directive
using "using"
identifier "NLog"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "NzbDrone"
. "."
identifier "Common"
. "."
identifier "Disk"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "NzbDrone"
. "."
identifier "Common"
. "."
identifier "EnvironmentInfo"
; ";"
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 "Common"
. "."
identifier "Http"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "NzbDrone"
. "."
identifier "Core"
. "."
identifier "Configuration"
; ";"
using_directive
using "using"
qualified_name
qualified_name
qualified_name
identifier "NzbDrone"
. "."
identifier "Core"
. "."
identifier "Messaging"
. "."
identifier "Events"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "NzbDrone"
. "."
identifier "Core"
. "."
identifier "Music"
; ";"
using_directive
using "using"
qualified_name
qualified_name
qualified_name
identifier "NzbDrone"
. "."
identifier "Core"
. "."
identifier "Music"
. "."
identifier "Events"
; ";"
namespace_declaration
namespace "namespace"
qualified_name
qualified_name
identifier "NzbDrone"
. "."
identifier "Core"
. "."
identifier "MediaCover"
declaration_list
{ "{"
interface_declaration (+71 nodes collapsed)
class_declaration
modifier
public "public"
class "class"
identifier "MediaCoverService"
base_list (+31 nodes collapsed)
declaration_list
{ "{"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "IMediaCoverProxy"
variable_declarator
identifier "_mediaCoverProxy"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "IImageResizer"
variable_declarator
identifier "_resizer"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "IAlbumService"
variable_declarator
identifier "_albumService"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "IHttpClient"
variable_declarator
identifier "_httpClient"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "IDiskProvider"
variable_declarator
identifier "_diskProvider"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "ICoverExistsSpecification"
variable_declarator
identifier "_coverExistsSpecification"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "IConfigFileProvider"
variable_declarator
identifier "_configFileProvider"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "IEventAggregator"
variable_declarator
identifier "_eventAggregator"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "Logger"
variable_declarator
identifier "_logger"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
predefined_type "string"
variable_declarator
identifier "_coverRootFolder"
; ";"
comment "// ImageSharp is slow on ARM (no hardware acceleration on mo"...
comment "// So limit the number of concurrent resizing tasks"
field_declaration (+38 nodes collapsed)
constructor_declaration (+116 nodes collapsed)
method_declaration (+182 nodes collapsed)
method_declaration (+360 nodes collapsed)
method_declaration (+37 nodes collapsed)
method_declaration (+43 nodes collapsed)
method_declaration (+441 nodes collapsed)
method_declaration
modifier
public "public"
predefined_type "bool"
identifier "EnsureAlbumCovers"
parameter_list
( "("
parameter
identifier "Album"
identifier "album"
) ")"
block
{ "{"
local_declaration_statement
variable_declaration
implicit_type
var "var"
variable_declarator
identifier "updated"
= "="
boolean_literal
false "false"
; ";"
foreach_statement
foreach "foreach"
( "("
implicit_type
var "var"
identifier "cover"
in "in"
invocation_expression (+25 nodes collapsed)
) ")"
block
{ "{"
if_statement
if "if"
( "("
binary_expression
member_access_expression
identifier "cover"
. "."
identifier "CoverType"
== "=="
member_access_expression
identifier "MediaCoverTypes"
. "."
identifier "Unknown"
) ")"
block
{ "{"
continue_statement
continue "continue"
; ";"
} "}"
local_declaration_statement (+39 nodes collapsed)
local_declaration_statement
variable_declaration
implicit_type
var "var"
variable_declarator
identifier "alreadyExists"
= "="
boolean_literal
false "false"
; ";"
try_statement
try "try"
block (+110 nodes collapsed)
catch_clause (+34 nodes collapsed)
catch_clause (+31 nodes collapsed)
} "}"
return_statement
return "return"
identifier "updated"
; ";"
} "}"
method_declaration (+163 nodes collapsed)
method_declaration (+166 nodes collapsed)
method_declaration (+252 nodes collapsed)
method_declaration (+148 nodes collapsed)
method_declaration (+42 nodes collapsed)
method_declaration (+105 nodes collapsed)
method_declaration (+80 nodes collapsed)
method_declaration (+68 nodes collapsed)
method_declaration (+68 nodes collapsed)
} "}"
} "}"

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 "IO"
; ";"
using_directive
using "using"
qualified_name
identifier "System"
. "."
identifier "Linq"
; ";"
using_directive
using "using"
qualified_name
identifier "System"
. "."
identifier "Net"
; ";"
using_directive
using "using"
qualified_name
identifier "System"
. "."
identifier "Threading"
; ";"
using_directive
using "using"
identifier "NLog"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "NzbDrone"
. "."
identifier "Common"
. "."
identifier "Disk"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "NzbDrone"
. "."
identifier "Common"
. "."
identifier "EnvironmentInfo"
; ";"
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 "Common"
. "."
identifier "Http"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "NzbDrone"
. "."
identifier "Core"
. "."
identifier "Configuration"
; ";"
using_directive
using "using"
qualified_name
qualified_name
qualified_name
identifier "NzbDrone"
. "."
identifier "Core"
. "."
identifier "Messaging"
. "."
identifier "Events"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "NzbDrone"
. "."
identifier "Core"
. "."
identifier "Music"
; ";"
using_directive
using "using"
qualified_name
qualified_name
qualified_name
identifier "NzbDrone"
. "."
identifier "Core"
. "."
identifier "Music"
. "."
identifier "Events"
; ";"
namespace_declaration
namespace "namespace"
qualified_name
qualified_name
identifier "NzbDrone"
. "."
identifier "Core"
. "."
identifier "MediaCover"
declaration_list
{ "{"
interface_declaration (+71 nodes collapsed)
class_declaration
modifier
public "public"
class "class"
identifier "MediaCoverService"
base_list (+31 nodes collapsed)
declaration_list
{ "{"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "IMediaCoverProxy"
variable_declarator
identifier "_mediaCoverProxy"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "IImageResizer"
variable_declarator
identifier "_resizer"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "IAlbumService"
variable_declarator
identifier "_albumService"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "IHttpClient"
variable_declarator
identifier "_httpClient"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "IDiskProvider"
variable_declarator
identifier "_diskProvider"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "ICoverExistsSpecification"
variable_declarator
identifier "_coverExistsSpecification"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "IConfigFileProvider"
variable_declarator
identifier "_configFileProvider"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "IEventAggregator"
variable_declarator
identifier "_eventAggregator"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "Logger"
variable_declarator
identifier "_logger"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
predefined_type "string"
variable_declarator
identifier "_coverRootFolder"
; ";"
comment "// ImageSharp is slow on ARM (no hardware acceleration on mo"...
comment "// So limit the number of concurrent resizing tasks"
field_declaration (+38 nodes collapsed)
constructor_declaration (+116 nodes collapsed)
method_declaration (+182 nodes collapsed)
method_declaration (+360 nodes collapsed)
method_declaration (+37 nodes collapsed)
method_declaration (+43 nodes collapsed)
method_declaration (+441 nodes collapsed)
method_declaration
modifier
public "public"
predefined_type "bool"
identifier "EnsureAlbumCovers"
parameter_list
( "("
parameter
identifier "Album"
identifier "album"
) ")"
block
{ "{"
local_declaration_statement
variable_declaration
implicit_type
var "var"
variable_declarator
identifier "updated"
= "="
boolean_literal
false "false"
; ";"
foreach_statement
foreach "foreach"
( "("
implicit_type
var "var"
identifier "cover"
in "in"
invocation_expression (+25 nodes collapsed)
) ")"
block
{ "{"
if_statement
if "if"
( "("
binary_expression
member_access_expression
identifier "cover"
. "."
identifier "CoverType"
== "=="
member_access_expression
identifier "MediaCoverTypes"
. "."
identifier "Unknown"
) ")"
block
{ "{"
continue_statement
continue "continue"
; ";"
} "}"
local_declaration_statement (+39 nodes collapsed)
local_declaration_statement
variable_declaration
implicit_type
var "var"
variable_declarator
identifier "alreadyExists"
= "="
boolean_literal
false "false"
; ";"
try_statement
try "try"
block (+110 nodes collapsed)
catch_clause
catch "catch"
catch_declaration
( "("
identifier "HttpException"
identifier "e"
) ")"
block
{ "{"
expression_statement
invocation_expression
member_access_expression
identifier "_logger"
. "."
identifier "Warn"
argument_list
( "("
argument
string_literal
" "\""
string_literal_content "Couldn't download media cover for {0}. {1}"
" "\""
, ","
argument
identifier "album"
, ","
argument
member_access_expression
identifier "e"
. "."
identifier "Message"
) ")"
; ";"
} "}"
catch_clause (+34 nodes collapsed)
catch_clause (+31 nodes collapsed)
} "}"
return_statement
return "return"
identifier "updated"
; ";"
} "}"
method_declaration (+163 nodes collapsed)
method_declaration (+166 nodes collapsed)
method_declaration (+252 nodes collapsed)
method_declaration (+148 nodes collapsed)
method_declaration (+42 nodes collapsed)
method_declaration (+105 nodes collapsed)
method_declaration (+80 nodes collapsed)
method_declaration (+68 nodes collapsed)
method_declaration (+68 nodes collapsed)
} "}"
} "}"