Before

1using System;
2using System.Collections.Generic;
3using System.Linq;
4using Lidarr.Api.V1.Albums;
5using Lidarr.Http;
6using Lidarr.Http.Extensions;
7using Microsoft.AspNetCore.Mvc;
8using NzbDrone.Core.ArtistStats;
9using NzbDrone.Core.DecisionEngine.Specifications;
10using NzbDrone.Core.MediaCover;
11using NzbDrone.Core.Music;
12using NzbDrone.SignalR;
13
14namespace Lidarr.Api.V1.Calendar
15{
16 [V1ApiController]
17 public class CalendarController : AlbumControllerWithSignalR
18 {
19 public CalendarController(IAlbumService albumService,
20 IArtistStatisticsService artistStatisticsService,
21 IMapCoversToLocal coverMapper,
22 IUpgradableSpecification upgradableSpecification,
23 IBroadcastSignalRMessage signalRBroadcaster)
24 : base(albumService, artistStatisticsService, coverMapper, upgradableSpecification, signalRBroadcaster)
25 {
26 }
27
28 [HttpGet]
29 public List<AlbumResource> GetCalendar(DateTime? start, DateTime? end, bool unmonitored = false, bool includeArtist = false)
30 {
31 // TODO: Add Album Image support to AlbumControllerWithSignalR
32 var includeAlbumImages = Request.GetBooleanQueryParameter("includeAlbumImages");
33
34 var startUse = start ?? DateTime.Today;
35 var endUse = end ?? DateTime.Today.AddDays(2);
36
37 var resources = MapToResource(_albumService.AlbumsBetweenDates(startUse, endUse, unmonitored), includeArtist);
38
39 return resources.OrderBy(e => e.ReleaseDate).ToList();
40 }
41 }
42}
43

After

1using System;
2using System.Collections.Generic;
3using System.Linq;
4using Lidarr.Api.V1.Albums;
5using Lidarr.Http;
6using Lidarr.Http.Extensions;
7using Microsoft.AspNetCore.Mvc;
8using NzbDrone.Common.Extensions;
9using NzbDrone.Core.ArtistStats;
10using NzbDrone.Core.DecisionEngine.Specifications;
11using NzbDrone.Core.MediaCover;
12using NzbDrone.Core.Music;
13using NzbDrone.Core.Tags;
14using NzbDrone.SignalR;
15
16namespace Lidarr.Api.V1.Calendar
17{
18 [V1ApiController]
19 public class CalendarController : AlbumControllerWithSignalR
20 {
21 private readonly IArtistService _artistService;
22 private readonly ITagService _tagService;
23
24 public CalendarController(IAlbumService albumService,
25 IArtistService artistService,
26 IArtistStatisticsService artistStatisticsService,
27 IMapCoversToLocal coverMapper,
28 IUpgradableSpecification upgradableSpecification,
29 ITagService tagService,
30 IBroadcastSignalRMessage signalRBroadcaster)
31 : base(albumService, artistStatisticsService, coverMapper, upgradableSpecification, signalRBroadcaster)
32 {
33 _artistService = artistService;
34 _tagService = tagService;
35 }
36
37 [HttpGet]
38 [Produces("application/json")]
39 public List<AlbumResource> GetCalendar(DateTime? start, DateTime? end, bool unmonitored = false, bool includeArtist = false, string tags = "")
40 {
41 // TODO: Add Album Image support to AlbumControllerWithSignalR
42 var includeAlbumImages = Request.GetBooleanQueryParameter("includeAlbumImages");
43
44 var startUse = start ?? DateTime.Today;
45 var endUse = end ?? DateTime.Today.AddDays(2);
46 var albums = _albumService.AlbumsBetweenDates(startUse, endUse, unmonitored);
47 var allArtists = _artistService.GetAllArtists();
48 var parsedTags = new List<int>();
49 var result = new List<Album>();
50
51 if (tags.IsNotNullOrWhiteSpace())
52 {
53 parsedTags.AddRange(tags.Split(',').Select(_tagService.GetTag).Select(t => t.Id));
54 }
55
56 foreach (var album in albums)
57 {
58 var artist = allArtists.SingleOrDefault(s => s.Id == album.ArtistId);
59
60 if (artist == null)
61 {
62 continue;
63 }
64
65 if (parsedTags.Any() && parsedTags.None(artist.Tags.Contains))
66 {
67 continue;
68 }
69
70 result.Add(album);
71 }
72
73 var resources = MapToResource(result, includeArtist);
74
75 return resources.OrderBy(e => e.ReleaseDate).ToList();
76 }
77 }
78}
79

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
qualified_name
qualified_name
identifier "Lidarr"
. "."
identifier "Api"
. "."
identifier "V1"
. "."
identifier "Albums"
; ";"
using_directive
using "using"
qualified_name
identifier "Lidarr"
. "."
identifier "Http"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "Lidarr"
. "."
identifier "Http"
. "."
identifier "Extensions"
; ";"
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 "Core"
. "."
identifier "ArtistStats"
; ";"
using_directive
using "using"
qualified_name
qualified_name
qualified_name
identifier "NzbDrone"
. "."
identifier "Core"
. "."
identifier "DecisionEngine"
. "."
identifier "Specifications"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "NzbDrone"
. "."
identifier "Core"
. "."
identifier "MediaCover"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "NzbDrone"
. "."
identifier "Core"
. "."
identifier "Music"
; ";"
using_directive
using "using"
qualified_name
identifier "NzbDrone"
. "."
identifier "SignalR"
; ";"
namespace_declaration
namespace "namespace"
qualified_name
qualified_name
qualified_name
identifier "Lidarr"
. "."
identifier "Api"
. "."
identifier "V1"
. "."
identifier "Calendar"
declaration_list
{ "{"
class_declaration
attribute_list
[ "["
attribute
identifier "V1ApiController"
] "]"
modifier
public "public"
class "class"
identifier "CalendarController"
base_list
: ":"
identifier "AlbumControllerWithSignalR"
declaration_list
{ "{"
constructor_declaration
modifier
public "public"
identifier "CalendarController"
parameter_list
( "("
parameter
identifier "IAlbumService"
identifier "albumService"
, ","
parameter
identifier "IArtistStatisticsService"
identifier "artistStatisticsService"
, ","
parameter
identifier "IMapCoversToLocal"
identifier "coverMapper"
, ","
parameter
identifier "IUpgradableSpecification"
identifier "upgradableSpecification"
, ","
parameter
identifier "IBroadcastSignalRMessage"
identifier "signalRBroadcaster"
) ")"
constructor_initializer
: ":"
base "base"
argument_list
( "("
argument
identifier "albumService"
, ","
argument
identifier "artistStatisticsService"
, ","
argument
identifier "coverMapper"
, ","
argument
identifier "upgradableSpecification"
, ","
argument
identifier "signalRBroadcaster"
) ")"
block
{ "{"
} "}"
method_declaration
attribute_list
[ "["
attribute
identifier "HttpGet"
] "]"
modifier
public "public"
generic_name
identifier "List"
type_argument_list
< "<"
identifier "AlbumResource"
> ">"
identifier "GetCalendar"
parameter_list
( "("
parameter
nullable_type
identifier "DateTime"
? "?"
identifier "start"
, ","
parameter
nullable_type
identifier "DateTime"
? "?"
identifier "end"
, ","
parameter
predefined_type "bool"
identifier "unmonitored"
= "="
boolean_literal
false "false"
, ","
parameter
predefined_type "bool"
identifier "includeArtist"
= "="
boolean_literal
false "false"
) ")"
block
{ "{"
comment "// TODO: Add Album Image support to AlbumControllerWithSigna"...
local_declaration_statement (+21 nodes collapsed)
local_declaration_statement
variable_declaration
implicit_type
var "var"
variable_declarator
identifier "startUse"
= "="
binary_expression
identifier "start"
?? "??"
member_access_expression
identifier "DateTime"
. "."
identifier "Today"
; ";"
local_declaration_statement (+24 nodes collapsed)
local_declaration_statement
variable_declaration
implicit_type
var "var"
variable_declarator
identifier "resources"
= "="
invocation_expression
identifier "MapToResource"
argument_list
( "("
argument
invocation_expression
member_access_expression
identifier "_albumService"
. "."
identifier "AlbumsBetweenDates"
argument_list
( "("
argument
identifier "startUse"
, ","
argument
identifier "endUse"
, ","
argument
identifier "unmonitored"
) ")"
, ","
argument
identifier "includeArtist"
) ")"
; ";"
return_statement (+26 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 "Linq"
; ";"
using_directive
using "using"
qualified_name
qualified_name
qualified_name
identifier "Lidarr"
. "."
identifier "Api"
. "."
identifier "V1"
. "."
identifier "Albums"
; ";"
using_directive
using "using"
qualified_name
identifier "Lidarr"
. "."
identifier "Http"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "Lidarr"
. "."
identifier "Http"
. "."
identifier "Extensions"
; ";"
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 "ArtistStats"
; ";"
using_directive
using "using"
qualified_name
qualified_name
qualified_name
identifier "NzbDrone"
. "."
identifier "Core"
. "."
identifier "DecisionEngine"
. "."
identifier "Specifications"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "NzbDrone"
. "."
identifier "Core"
. "."
identifier "MediaCover"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "NzbDrone"
. "."
identifier "Core"
. "."
identifier "Music"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "NzbDrone"
. "."
identifier "Core"
. "."
identifier "Tags"
; ";"
using_directive
using "using"
qualified_name
identifier "NzbDrone"
. "."
identifier "SignalR"
; ";"
namespace_declaration
namespace "namespace"
qualified_name
qualified_name
qualified_name
identifier "Lidarr"
. "."
identifier "Api"
. "."
identifier "V1"
. "."
identifier "Calendar"
declaration_list
{ "{"
class_declaration
attribute_list
[ "["
attribute
identifier "V1ApiController"
] "]"
modifier
public "public"
class "class"
identifier "CalendarController"
base_list
: ":"
identifier "AlbumControllerWithSignalR"
declaration_list
{ "{"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "IArtistService"
variable_declarator
identifier "_artistService"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "ITagService"
variable_declarator
identifier "_tagService"
; ";"
constructor_declaration
modifier
public "public"
identifier "CalendarController"
parameter_list
( "("
parameter
identifier "IAlbumService"
identifier "albumService"
, ","
parameter
identifier "IArtistService"
identifier "artistService"
, ","
parameter
identifier "IArtistStatisticsService"
identifier "artistStatisticsService"
, ","
parameter
identifier "IMapCoversToLocal"
identifier "coverMapper"
, ","
parameter
identifier "IUpgradableSpecification"
identifier "upgradableSpecification"
, ","
parameter
identifier "ITagService"
identifier "tagService"
, ","
parameter
identifier "IBroadcastSignalRMessage"
identifier "signalRBroadcaster"
) ")"
constructor_initializer
: ":"
base "base"
argument_list
( "("
argument
identifier "albumService"
, ","
argument
identifier "artistStatisticsService"
, ","
argument
identifier "coverMapper"
, ","
argument
identifier "upgradableSpecification"
, ","
argument
identifier "signalRBroadcaster"
) ")"
block
{ "{"
expression_statement
assignment_expression
identifier "_artistService"
= "="
identifier "artistService"
; ";"
expression_statement
assignment_expression
identifier "_tagService"
= "="
identifier "tagService"
; ";"
} "}"
method_declaration
attribute_list
[ "["
attribute
identifier "HttpGet"
] "]"
attribute_list
[ "["
attribute
identifier "Produces"
attribute_argument_list
( "("
attribute_argument
string_literal
" "\""
string_literal_content "application/json"
" "\""
) ")"
] "]"
modifier
public "public"
generic_name
identifier "List"
type_argument_list
< "<"
identifier "AlbumResource"
> ">"
identifier "GetCalendar"
parameter_list
( "("
parameter
nullable_type
identifier "DateTime"
? "?"
identifier "start"
, ","
parameter
nullable_type
identifier "DateTime"
? "?"
identifier "end"
, ","
parameter
predefined_type "bool"
identifier "unmonitored"
= "="
boolean_literal
false "false"
, ","
parameter
predefined_type "bool"
identifier "includeArtist"
= "="
boolean_literal
false "false"
, ","
parameter
predefined_type "string"
identifier "tags"
= "="
string_literal
" "\""
" "\""
) ")"
block
{ "{"
comment "// TODO: Add Album Image support to AlbumControllerWithSigna"...
local_declaration_statement (+21 nodes collapsed)
local_declaration_statement
variable_declaration
implicit_type
var "var"
variable_declarator
identifier "startUse"
= "="
binary_expression
identifier "start"
?? "??"
member_access_expression
identifier "DateTime"
. "."
identifier "Today"
; ";"
local_declaration_statement (+24 nodes collapsed)
local_declaration_statement
variable_declaration
implicit_type
var "var"
variable_declarator
identifier "albums"
= "="
invocation_expression
member_access_expression
identifier "_albumService"
. "."
identifier "AlbumsBetweenDates"
argument_list
( "("
argument
identifier "startUse"
, ","
argument
identifier "endUse"
, ","
argument
identifier "unmonitored"
) ")"
; ";"
local_declaration_statement
variable_declaration
implicit_type
var "var"
variable_declarator
identifier "allArtists"
= "="
invocation_expression
member_access_expression
identifier "_artistService"
. "."
identifier "GetAllArtists"
argument_list
( "("
) ")"
; ";"
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
( "("
) ")"
; ";"
local_declaration_statement
variable_declaration
implicit_type
var "var"
variable_declarator
identifier "result"
= "="
object_creation_expression
new "new"
generic_name
identifier "List"
type_argument_list
< "<"
identifier "Album"
> ">"
argument_list
( "("
) ")"
; ";"
if_statement
if "if"
( "("
invocation_expression
member_access_expression
identifier "tags"
. "."
identifier "IsNotNullOrWhiteSpace"
argument_list
( "("
) ")"
) ")"
block
{ "{"
expression_statement
invocation_expression
member_access_expression
identifier "parsedTags"
. "."
identifier "AddRange"
argument_list
( "("
argument
invocation_expression
member_access_expression
invocation_expression
member_access_expression
invocation_expression
member_access_expression
identifier "tags"
. "."
identifier "Split"
argument_list
( "("
argument
character_literal
' "'"
character_literal_content ","
' "'"
) ")"
. "."
identifier "Select"
argument_list
( "("
argument
member_access_expression
identifier "_tagService"
. "."
identifier "GetTag"
) ")"
. "."
identifier "Select"
argument_list
( "("
argument
lambda_expression
implicit_parameter "t"
=> "=>"
member_access_expression
identifier "t"
. "."
identifier "Id"
) ")"
) ")"
; ";"
} "}"
foreach_statement
foreach "foreach"
( "("
implicit_type
var "var"
identifier "album"
in "in"
identifier "albums"
) ")"
block
{ "{"
local_declaration_statement
variable_declaration
implicit_type
var "var"
variable_declarator
identifier "artist"
= "="
invocation_expression
member_access_expression
identifier "allArtists"
. "."
identifier "SingleOrDefault"
argument_list
( "("
argument
lambda_expression
implicit_parameter "s"
=> "=>"
binary_expression
member_access_expression
identifier "s"
. "."
identifier "Id"
== "=="
member_access_expression
identifier "album"
. "."
identifier "ArtistId"
) ")"
; ";"
if_statement
if "if"
( "("
binary_expression
identifier "artist"
== "=="
null_literal "null"
) ")"
block
{ "{"
continue_statement
continue "continue"
; ";"
} "}"
if_statement
if "if"
( "("
binary_expression
invocation_expression
member_access_expression
identifier "parsedTags"
. "."
identifier "Any"
argument_list
( "("
) ")"
&& "&&"
invocation_expression
member_access_expression
identifier "parsedTags"
. "."
identifier "None"
argument_list
( "("
argument
member_access_expression
member_access_expression
identifier "artist"
. "."
identifier "Tags"
. "."
identifier "Contains"
) ")"
) ")"
block
{ "{"
continue_statement
continue "continue"
; ";"
} "}"
expression_statement
invocation_expression
member_access_expression
identifier "result"
. "."
identifier "Add"
argument_list
( "("
argument
identifier "album"
) ")"
; ";"
} "}"
local_declaration_statement
variable_declaration
implicit_type
var "var"
variable_declarator
identifier "resources"
= "="
invocation_expression
identifier "MapToResource"
argument_list
( "("
argument
identifier "result"
, ","
argument
identifier "includeArtist"
) ")"
; ";"
return_statement (+26 nodes collapsed)
} "}"
} "}"
} "}"