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–67 unchanged (67 lines)
68
69 _formatService.Update(model);
70
71 return Accepted(model.Id);
72 }
73
74 [HttpGet]
75 [Produces("application/json")]
76 public List<CustomFormatResource> GetAll()
77 {
78 return _formatService.All().ToResource(true);
79 }
80
81 [RestDeleteById]
82 public void DeleteFormat(int id)
83 {
84 _formatService.Delete(id);
85 }
86
87 [HttpGet("schema")]
88 public object GetTemplates()
89 {
90 var schema = _specifications.OrderBy(x => x.Order).Select(x => x.ToSchema()).ToList();
91
92 var presets = GetPresets();
93
94 foreach (var item in schema)
95 {
96 item.Presets = presets.Where(x => x.GetType().Name == item.Implementation).Select(x => x.ToSchema()).ToList();
97 }
98
…lines 99–171 unchanged (73 lines)

After

…lines 1–43 unchanged (43 lines)
44
45 protected override CustomFormatResource GetResourceById(int id)
46 {
47 return _formatService.GetById(id).ToResource(true);
48 }
49
50 [HttpGet]
51 [Produces("application/json")]
52 public List<CustomFormatResource> GetAll()
53 {
54 return _formatService.All().ToResource(true);
55 }
56
57 [RestPostById]
58 [Consumes("application/json")]
59 public ActionResult<CustomFormatResource> Create([FromBody] CustomFormatResource customFormatResource)
60 {
61 var model = customFormatResource.ToModel(_specifications);
…lines 62–74 unchanged (13 lines)
75
76 _formatService.Update(model);
77
78 return Accepted(model.Id);
79 }
80
81 [HttpPut("bulk")]
82 [Consumes("application/json")]
83 [Produces("application/json")]
84 public virtual ActionResult<CustomFormatResource> Update([FromBody] CustomFormatBulkResource resource)
85 {
86 if (!resource.Ids.Any())
87 {
88 throw new BadRequestException("ids must be provided");
89 }
90
91 var customFormats = resource.Ids.Select(id => _formatService.GetById(id)).ToList();
92
93 customFormats.ForEach(existing =>
94 {
95 existing.IncludeCustomFormatWhenRenaming = resource.IncludeCustomFormatWhenRenaming ?? existing.IncludeCustomFormatWhenRenaming;
96 });
97
98 _formatService.Update(customFormats);
99
100 return Accepted(customFormats.ConvertAll(cf => cf.ToResource(true)));
101 }
102
103 [RestDeleteById]
104 public void DeleteFormat(int id)
105 {
106 _formatService.Delete(id);
107 }
108
109 [HttpDelete("bulk")]
110 [Consumes("application/json")]
111 public virtual object DeleteFormats([FromBody] CustomFormatBulkResource resource)
112 {
113 _formatService.Delete(resource.Ids.ToList());
114
115 return new { };
116 }
117
118 [HttpGet("schema")]
119 public object GetTemplates()
120 {
121 var schema = _specifications.OrderBy(x => x.Order).Select(x => x.ToSchema()).ToList();
122
123 var presets = GetPresets().ToList();
124
125 foreach (var item in schema)
126 {
127 item.Presets = presets.Where(x => x.GetType().Name == item.Implementation).Select(x => x.ToSchema()).ToList();
128 }
129
…lines 130–202 unchanged (73 lines)

Before

compilation_unit
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"
identifier "FluentValidation"
; ";"
using_directive
using "using"
qualified_name
identifier "FluentValidation"
. "."
identifier "Results"
; ";"
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 "CustomFormats"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "NzbDrone"
. "."
identifier "Core"
. "."
identifier "Validation"
; ";"
using_directive
using "using"
qualified_name
identifier "Sonarr"
. "."
identifier "Http"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "Sonarr"
. "."
identifier "Http"
. "."
identifier "REST"
; ";"
using_directive
using "using"
qualified_name
qualified_name
qualified_name
identifier "Sonarr"
. "."
identifier "Http"
. "."
identifier "REST"
. "."
identifier "Attributes"
; ";"
namespace_declaration
namespace "namespace"
qualified_name
qualified_name
qualified_name
identifier "Sonarr"
. "."
identifier "Api"
. "."
identifier "V3"
. "."
identifier "CustomFormats"
declaration_list
{ "{"
class_declaration
attribute_list
[ "["
attribute
identifier "V3ApiController"
] "]"
modifier
public "public"
class "class"
identifier "CustomFormatController"
base_list
: ":"
generic_name
identifier "RestController"
type_argument_list
< "<"
identifier "CustomFormatResource"
> ">"
declaration_list
{ "{"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "ICustomFormatService"
variable_declarator
identifier "_formatService"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
generic_name
identifier "List"
type_argument_list
< "<"
identifier "ICustomFormatSpecification"
> ">"
variable_declarator
identifier "_specifications"
; ";"
constructor_declaration (+291 nodes collapsed)
method_declaration (+39 nodes collapsed)
method_declaration (+91 nodes collapsed)
method_declaration (+94 nodes collapsed)
method_declaration (+55 nodes collapsed)
method_declaration (+31 nodes collapsed)
method_declaration
attribute_list
[ "["
attribute
identifier "HttpGet"
attribute_argument_list
( "("
attribute_argument
string_literal
" "\""
string_literal_content "schema"
" "\""
) ")"
] "]"
modifier
public "public"
predefined_type "object"
identifier "GetTemplates"
parameter_list
( "("
) ")"
block
{ "{"
local_declaration_statement (+50 nodes collapsed)
local_declaration_statement
variable_declaration
implicit_type
var "var"
variable_declarator
identifier "presets"
= "="
invocation_expression
identifier "GetPresets"
argument_list
( "("
) ")"
; ";"
foreach_statement (+75 nodes collapsed)
return_statement
return "return"
identifier "schema"
; ";"
} "}"
method_declaration (+57 nodes collapsed)
method_declaration (+60 nodes collapsed)
method_declaration (+239 nodes collapsed)
} "}"
} "}"

After

compilation_unit
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"
identifier "FluentValidation"
; ";"
using_directive
using "using"
qualified_name
identifier "FluentValidation"
. "."
identifier "Results"
; ";"
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 "CustomFormats"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "NzbDrone"
. "."
identifier "Core"
. "."
identifier "Validation"
; ";"
using_directive
using "using"
qualified_name
identifier "Sonarr"
. "."
identifier "Http"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "Sonarr"
. "."
identifier "Http"
. "."
identifier "REST"
; ";"
using_directive
using "using"
qualified_name
qualified_name
qualified_name
identifier "Sonarr"
. "."
identifier "Http"
. "."
identifier "REST"
. "."
identifier "Attributes"
; ";"
namespace_declaration
namespace "namespace"
qualified_name
qualified_name
qualified_name
identifier "Sonarr"
. "."
identifier "Api"
. "."
identifier "V3"
. "."
identifier "CustomFormats"
declaration_list
{ "{"
class_declaration
attribute_list
[ "["
attribute
identifier "V3ApiController"
] "]"
modifier
public "public"
class "class"
identifier "CustomFormatController"
base_list
: ":"
generic_name
identifier "RestController"
type_argument_list
< "<"
identifier "CustomFormatResource"
> ">"
declaration_list
{ "{"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "ICustomFormatService"
variable_declarator
identifier "_formatService"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
generic_name
identifier "List"
type_argument_list
< "<"
identifier "ICustomFormatSpecification"
> ">"
variable_declarator
identifier "_specifications"
; ";"
constructor_declaration (+291 nodes collapsed)
method_declaration (+39 nodes collapsed)
method_declaration (+55 nodes collapsed)
method_declaration (+91 nodes collapsed)
method_declaration (+94 nodes collapsed)
method_declaration
attribute_list
[ "["
attribute
identifier "HttpPut"
attribute_argument_list
( "("
attribute_argument
string_literal
" "\""
string_literal_content "bulk"
" "\""
) ")"
] "]"
attribute_list
[ "["
attribute
identifier "Consumes"
attribute_argument_list
( "("
attribute_argument
string_literal
" "\""
string_literal_content "application/json"
" "\""
) ")"
] "]"
attribute_list
[ "["
attribute
identifier "Produces"
attribute_argument_list
( "("
attribute_argument
string_literal
" "\""
string_literal_content "application/json"
" "\""
) ")"
] "]"
modifier
public "public"
modifier
virtual "virtual"
generic_name
identifier "ActionResult"
type_argument_list
< "<"
identifier "CustomFormatResource"
> ">"
identifier "Update"
parameter_list
( "("
parameter
attribute_list
[ "["
attribute
identifier "FromBody"
] "]"
identifier "CustomFormatBulkResource"
identifier "resource"
) ")"
block
{ "{"
if_statement
if "if"
( "("
prefix_unary_expression
! "!"
invocation_expression
member_access_expression
member_access_expression
identifier "resource"
. "."
identifier "Ids"
. "."
identifier "Any"
argument_list
( "("
) ")"
) ")"
block
{ "{"
throw_statement
throw "throw"
object_creation_expression
new "new"
identifier "BadRequestException"
argument_list
( "("
argument
string_literal
" "\""
string_literal_content "ids must be provided"
" "\""
) ")"
; ";"
} "}"
local_declaration_statement
variable_declaration
implicit_type
var "var"
variable_declarator
identifier "customFormats"
= "="
invocation_expression
member_access_expression
invocation_expression
member_access_expression
member_access_expression
identifier "resource"
. "."
identifier "Ids"
. "."
identifier "Select"
argument_list
( "("
argument
lambda_expression
implicit_parameter "id"
=> "=>"
invocation_expression
member_access_expression
identifier "_formatService"
. "."
identifier "GetById"
argument_list
( "("
argument
identifier "id"
) ")"
) ")"
. "."
identifier "ToList"
argument_list
( "("
) ")"
; ";"
expression_statement
invocation_expression
member_access_expression
identifier "customFormats"
. "."
identifier "ForEach"
argument_list
( "("
argument
lambda_expression
implicit_parameter "existing"
=> "=>"
block
{ "{"
expression_statement
assignment_expression
member_access_expression
identifier "existing"
. "."
identifier "IncludeCustomFormatWhenRenaming"
= "="
binary_expression
member_access_expression
identifier "resource"
. "."
identifier "IncludeCustomFormatWhenRenaming"
?? "??"
member_access_expression
identifier "existing"
. "."
identifier "IncludeCustomFormatWhenRenaming"
; ";"
} "}"
) ")"
; ";"
expression_statement
invocation_expression
member_access_expression
identifier "_formatService"
. "."
identifier "Update"
argument_list
( "("
argument
identifier "customFormats"
) ")"
; ";"
return_statement
return "return"
invocation_expression
identifier "Accepted"
argument_list
( "("
argument
invocation_expression
member_access_expression
identifier "customFormats"
. "."
identifier "ConvertAll"
argument_list
( "("
argument
lambda_expression
implicit_parameter "cf"
=> "=>"
invocation_expression
member_access_expression
identifier "cf"
. "."
identifier "ToResource"
argument_list
( "("
argument
boolean_literal
true "true"
) ")"
) ")"
) ")"
; ";"
} "}"
method_declaration (+31 nodes collapsed)
method_declaration
attribute_list
[ "["
attribute
identifier "HttpDelete"
attribute_argument_list
( "("
attribute_argument
string_literal
" "\""
string_literal_content "bulk"
" "\""
) ")"
] "]"
attribute_list
[ "["
attribute
identifier "Consumes"
attribute_argument_list
( "("
attribute_argument
string_literal
" "\""
string_literal_content "application/json"
" "\""
) ")"
] "]"
modifier
public "public"
modifier
virtual "virtual"
predefined_type "object"
identifier "DeleteFormats"
parameter_list
( "("
parameter
attribute_list
[ "["
attribute
identifier "FromBody"
] "]"
identifier "CustomFormatBulkResource"
identifier "resource"
) ")"
block
{ "{"
expression_statement
invocation_expression
member_access_expression
identifier "_formatService"
. "."
identifier "Delete"
argument_list
( "("
argument
invocation_expression
member_access_expression
member_access_expression
identifier "resource"
. "."
identifier "Ids"
. "."
identifier "ToList"
argument_list
( "("
) ")"
) ")"
; ";"
return_statement
return "return"
anonymous_object_creation_expression
new "new"
{ "{"
} "}"
; ";"
} "}"
method_declaration
attribute_list
[ "["
attribute
identifier "HttpGet"
attribute_argument_list
( "("
attribute_argument
string_literal
" "\""
string_literal_content "schema"
" "\""
) ")"
] "]"
modifier
public "public"
predefined_type "object"
identifier "GetTemplates"
parameter_list
( "("
) ")"
block
{ "{"
local_declaration_statement (+50 nodes collapsed)
local_declaration_statement
variable_declaration
implicit_type
var "var"
variable_declarator
identifier "presets"
= "="
invocation_expression
member_access_expression
invocation_expression
identifier "GetPresets"
argument_list
( "("
) ")"
. "."
identifier "ToList"
argument_list
( "("
) ")"
; ";"
foreach_statement (+75 nodes collapsed)
return_statement
return "return"
identifier "schema"
; ";"
} "}"
method_declaration (+57 nodes collapsed)
method_declaration (+60 nodes collapsed)
method_declaration (+239 nodes collapsed)
} "}"
} "}"