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–1976 unchanged (1976 lines)
1977 // Skip image processing if current or live tv source
1978 if (outdated.Length == 0 || item.SourceType != SourceType.Library)
1979 {
1980 RegisterItem(item);
1981 return;
1982 }
1983
1984 foreach (var img in outdated)
1985 {
1986 var image = img;
1987 if (!img.IsLocalFile)
1988 {
1989 try
…lines 1990–2008 unchanged (19 lines)
2009 }
2010
2011 ImageDimensions size;
2012 try
2013 {
2014 size = _imageProcessor.GetImageDimensions(item, image);
2015 image.Width = size.Width;
2016 image.Height = size.Height;
2017 }
2018 catch (Exception ex)
2019 {
2020 _logger.LogError(ex, "Cannot get image dimensions for {ImagePath}", image.Path);
2021 size = default;
2022 image.Width = 0;
2023 image.Height = 0;
2024 }
2025
2026 try
2027 {
2028 image.BlurHash = _imageProcessor.GetImageBlurHash(image.Path, size);
2029 }
2030 catch (Exception ex)
2031 {
2032 _logger.LogError(ex, "Cannot compute blurhash for {ImagePath}", image.Path);
2033 image.BlurHash = string.Empty;
2034 }
2035
2036 try
2037 {
2038 image.DateModified = _fileSystem.GetLastWriteTimeUtc(image.Path);
2039 }
2040 catch (Exception ex)
2041 {
2042 _logger.LogError(ex, "Cannot update DateModified for {ImagePath}", image.Path);
2043 }
2044 }
2045
2046 _itemRepository.SaveImages(item);
2047 RegisterItem(item);
2048 }
2049
2050 /// <inheritdoc />
2051 public async Task UpdateItemsAsync(IReadOnlyList<BaseItem> items, BaseItem parent, ItemUpdateType updateReason, CancellationToken cancellationToken)
2052 {
…lines 2053–3267 unchanged (1215 lines)

After

…lines 1–1977 unchanged (1977 lines)
1978 if (outdated.Length == 0 || item.SourceType != SourceType.Library)
1979 {
1980 RegisterItem(item);
1981 return;
1982 }
1983
1984 var anyChange = false;
1985
1986 foreach (var img in outdated)
1987 {
1988 var image = img;
1989 if (!img.IsLocalFile)
1990 {
…lines 1991–2010 unchanged (20 lines)
2011 }
2012
2013 ImageDimensions size;
2014 try
2015 {
2016 size = _imageProcessor.GetImageDimensions(item, image);
2017 anyChange = image.Width != size.Width || image.Height != size.Height;
2018 image.Width = size.Width;
2019 image.Height = size.Height;
2020 }
2021 catch (Exception ex)
2022 {
2023 _logger.LogError(ex, "Cannot get image dimensions for {ImagePath}", image.Path);
2024 size = default;
2025 anyChange = image.Width != size.Width || image.Height != size.Height;
2026 image.Width = 0;
2027 image.Height = 0;
2028 }
2029
2030 try
2031 {
2032 var blurhash = _imageProcessor.GetImageBlurHash(image.Path, size);
2033 anyChange = anyChange || !blurhash.Equals(image.BlurHash, StringComparison.Ordinal);
2034 image.BlurHash = blurhash;
2035 }
2036 catch (Exception ex)
2037 {
2038 _logger.LogError(ex, "Cannot compute blurhash for {ImagePath}", image.Path);
2039 anyChange = anyChange || !string.IsNullOrEmpty(image.BlurHash);
2040 image.BlurHash = string.Empty;
2041 }
2042
2043 try
2044 {
2045 var modifiedDate = _fileSystem.GetLastWriteTimeUtc(image.Path);
2046 anyChange = anyChange || modifiedDate != image.DateModified;
2047 image.DateModified = modifiedDate;
2048 }
2049 catch (Exception ex)
2050 {
2051 _logger.LogError(ex, "Cannot update DateModified for {ImagePath}", image.Path);
2052 }
2053 }
2054
2055 if (anyChange)
2056 {
2057 _itemRepository.SaveImages(item);
2058 }
2059
2060 RegisterItem(item);
2061 }
2062
2063 /// <inheritdoc />
2064 public async Task UpdateItemsAsync(IReadOnlyList<BaseItem> items, BaseItem parent, ItemUpdateType updateReason, CancellationToken cancellationToken)
…lines 2065–3280 unchanged (1216 lines)

Before

compilation_unit
preproc_pragma
#pragma "#pragma"
warning "warning"
disable "disable"
identifier "CS1591"
preproc_pragma
#pragma "#pragma"
warning "warning"
disable "disable"
identifier "CA5394"
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 "Globalization"
; ";"
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
qualified_name
identifier "System"
. "."
identifier "Net"
. "."
identifier "Http"
; ";"
using_directive
using "using"
qualified_name
identifier "System"
. "."
identifier "Threading"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "System"
. "."
identifier "Threading"
. "."
identifier "Tasks"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "BitFaster"
. "."
identifier "Caching"
. "."
identifier "Lru"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "Emby"
. "."
identifier "Naming"
. "."
identifier "Common"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "Emby"
. "."
identifier "Naming"
. "."
identifier "TV"
; ";"
using_directive
using "using"
qualified_name
qualified_name
qualified_name
qualified_name
identifier "Emby"
. "."
identifier "Server"
. "."
identifier "Implementations"
. "."
identifier "Library"
. "."
identifier "Resolvers"
; ";"
using_directive
using "using"
qualified_name
qualified_name
qualified_name
qualified_name
identifier "Emby"
. "."
identifier "Server"
. "."
identifier "Implementations"
. "."
identifier "Library"
. "."
identifier "Validators"
; ";"
using_directive
using "using"
qualified_name
qualified_name
qualified_name
identifier "Emby"
. "."
identifier "Server"
. "."
identifier "Implementations"
. "."
identifier "Playlists"
; ";"
using_directive
using "using"
qualified_name
qualified_name
qualified_name
qualified_name
identifier "Emby"
. "."
identifier "Server"
. "."
identifier "Implementations"
. "."
identifier "ScheduledTasks"
. "."
identifier "Tasks"
; ";"
using_directive
using "using"
qualified_name
qualified_name
qualified_name
identifier "Emby"
. "."
identifier "Server"
. "."
identifier "Implementations"
. "."
identifier "Sorting"
; ";"
using_directive
using "using"
qualified_name
identifier "Jellyfin"
. "."
identifier "Data"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "Jellyfin"
. "."
identifier "Data"
. "."
identifier "Enums"
; ";"
using_directive
using "using"
qualified_name
qualified_name
qualified_name
identifier "Jellyfin"
. "."
identifier "Database"
. "."
identifier "Implementations"
. "."
identifier "Entities"
; ";"
using_directive
using "using"
qualified_name
qualified_name
qualified_name
identifier "Jellyfin"
. "."
identifier "Database"
. "."
identifier "Implementations"
. "."
identifier "Enums"
; ";"
using_directive
using "using"
qualified_name
identifier "Jellyfin"
. "."
identifier "Extensions"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Common"
. "."
identifier "Extensions"
; ";"
using_directive
using "using"
qualified_name
identifier "MediaBrowser"
. "."
identifier "Controller"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Controller"
. "."
identifier "Configuration"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Controller"
. "."
identifier "Drawing"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Controller"
. "."
identifier "Dto"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Controller"
. "."
identifier "Entities"
; ";"
using_directive
using "using"
qualified_name
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Controller"
. "."
identifier "Entities"
. "."
identifier "Audio"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Controller"
. "."
identifier "IO"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Controller"
. "."
identifier "Library"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Controller"
. "."
identifier "LiveTv"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Controller"
. "."
identifier "MediaEncoding"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Controller"
. "."
identifier "MediaSegments"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Controller"
. "."
identifier "Persistence"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Controller"
. "."
identifier "Providers"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Controller"
. "."
identifier "Resolvers"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Controller"
. "."
identifier "Sorting"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Controller"
. "."
identifier "Trickplay"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Model"
. "."
identifier "Configuration"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Model"
. "."
identifier "Dlna"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Model"
. "."
identifier "Drawing"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Model"
. "."
identifier "Dto"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Model"
. "."
identifier "Entities"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Model"
. "."
identifier "IO"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Model"
. "."
identifier "Library"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Model"
. "."
identifier "Querying"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Model"
. "."
identifier "Tasks"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "Microsoft"
. "."
identifier "Extensions"
. "."
identifier "Logging"
; ";"
using_directive
using "using"
identifier "Episode"
= "="
qualified_name
qualified_name
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Controller"
. "."
identifier "Entities"
. "."
identifier "TV"
. "."
identifier "Episode"
; ";"
using_directive
using "using"
identifier "EpisodeInfo"
= "="
qualified_name
qualified_name
qualified_name
identifier "Emby"
. "."
identifier "Naming"
. "."
identifier "TV"
. "."
identifier "EpisodeInfo"
; ";"
using_directive
using "using"
identifier "Genre"
= "="
qualified_name
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Controller"
. "."
identifier "Entities"
. "."
identifier "Genre"
; ";"
using_directive
using "using"
identifier "Person"
= "="
qualified_name
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Controller"
. "."
identifier "Entities"
. "."
identifier "Person"
; ";"
using_directive
using "using"
identifier "VideoResolver"
= "="
qualified_name
qualified_name
qualified_name
identifier "Emby"
. "."
identifier "Naming"
. "."
identifier "Video"
. "."
identifier "VideoResolver"
; ";"
namespace_declaration
namespace "namespace"
qualified_name
qualified_name
qualified_name
identifier "Emby"
. "."
identifier "Server"
. "."
identifier "Implementations"
. "."
identifier "Library"
declaration_list
{ "{"
comment "/// <summary>"
comment "/// Class LibraryManager."
comment "/// </summary>"
class_declaration
modifier
public "public"
class "class"
identifier "LibraryManager"
base_list
: ":"
identifier "ILibraryManager"
declaration_list
{ "{"
field_declaration
modifier
private "private"
modifier
const "const"
variable_declaration
predefined_type "string"
variable_declarator
identifier "ShortcutFileExtension"
= "="
string_literal
" "\""
string_literal_content ".mblink"
" "\""
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
generic_name
identifier "ILogger"
type_argument_list
< "<"
identifier "LibraryManager"
> ">"
variable_declarator
identifier "_logger"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "ITaskManager"
variable_declarator
identifier "_taskManager"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "IUserManager"
variable_declarator
identifier "_userManager"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "IUserDataManager"
variable_declarator
identifier "_userDataManager"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "IServerConfigurationManager"
variable_declarator
identifier "_configurationManager"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
generic_name
identifier "Lazy"
type_argument_list
< "<"
identifier "ILibraryMonitor"
> ">"
variable_declarator
identifier "_libraryMonitorFactory"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
generic_name
identifier "Lazy"
type_argument_list
< "<"
identifier "IProviderManager"
> ">"
variable_declarator
identifier "_providerManagerFactory"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
generic_name
identifier "Lazy"
type_argument_list
< "<"
identifier "IUserViewManager"
> ">"
variable_declarator
identifier "_userViewManagerFactory"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "IServerApplicationHost"
variable_declarator
identifier "_appHost"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "IMediaEncoder"
variable_declarator
identifier "_mediaEncoder"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "IFileSystem"
variable_declarator
identifier "_fileSystem"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "IItemRepository"
variable_declarator
identifier "_itemRepository"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "IImageProcessor"
variable_declarator
identifier "_imageProcessor"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "NamingOptions"
variable_declarator
identifier "_namingOptions"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "IPeopleRepository"
variable_declarator
identifier "_peopleRepository"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "ExtraResolver"
variable_declarator
identifier "_extraResolver"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "IPathManager"
variable_declarator
identifier "_pathManager"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
generic_name
identifier "FastConcurrentLru"
type_argument_list
< "<"
identifier "Guid"
, ","
identifier "BaseItem"
> ">"
variable_declarator
identifier "_cache"
; ";"
comment "/// <summary>"
comment "/// The _root folder sync lock."
comment "/// </summary>"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "Lock"
variable_declarator
identifier "_rootFolderSyncLock"
= "="
implicit_object_creation_expression
new "new"
argument_list
( "("
) ")"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "Lock"
variable_declarator
identifier "_userRootFolderSyncLock"
= "="
implicit_object_creation_expression
new "new"
argument_list
( "("
) ")"
; ";"
field_declaration (+21 nodes collapsed)
comment "/// <summary>"
comment "/// The _root folder."
comment "/// </summary>"
field_declaration
modifier
private "private"
modifier
volatile "volatile"
variable_declaration
nullable_type
identifier "AggregateFolder"
? "?"
variable_declarator
identifier "_rootFolder"
; ";"
field_declaration
modifier
private "private"
modifier
volatile "volatile"
variable_declaration
nullable_type
identifier "UserRootFolder"
? "?"
variable_declarator
identifier "_userRootFolder"
; ";"
field_declaration
modifier
private "private"
variable_declaration
predefined_type "bool"
variable_declarator
identifier "_wizardCompleted"
; ";"
comment "/// <summary>"
comment "/// Initializes a new instance of the <see cref=\"LibraryMana"...
comment "/// </summary>"
comment "/// <param name=\"appHost\">The application host.</param>"
comment "/// <param name=\"loggerFactory\">The logger factory.</param>"
comment "/// <param name=\"taskManager\">The task manager.</param>"
comment "/// <param name=\"userManager\">The user manager.</param>"
comment "/// <param name=\"configurationManager\">The configuration man"...
comment "/// <param name=\"userDataManager\">The user data manager.</pa"...
comment "/// <param name=\"libraryMonitorFactory\">The library monitor."...
comment "/// <param name=\"fileSystem\">The file system.</param>"
comment "/// <param name=\"providerManagerFactory\">The provider manage"...
comment "/// <param name=\"userViewManagerFactory\">The user view manag"...
comment "/// <param name=\"mediaEncoder\">The media encoder.</param>"
comment "/// <param name=\"itemRepository\">The item repository.</param"...
comment "/// <param name=\"imageProcessor\">The image processor.</param"...
comment "/// <param name=\"namingOptions\">The naming options.</param>"
comment "/// <param name=\"directoryService\">The directory service.</p"...
comment "/// <param name=\"peopleRepository\">The people repository.</p"...
comment "/// <param name=\"pathManager\">The path manager.</param>"
constructor_declaration (+278 nodes collapsed)
comment "/// <summary>"
comment "/// Occurs when [item added]."
comment "/// </summary>"
event_field_declaration
modifier
public "public"
event "event"
variable_declaration
nullable_type
generic_name
identifier "EventHandler"
type_argument_list
< "<"
identifier "ItemChangeEventArgs"
> ">"
? "?"
variable_declarator
identifier "ItemAdded"
; ";"
comment "/// <summary>"
comment "/// Occurs when [item updated]."
comment "/// </summary>"
event_field_declaration
modifier
public "public"
event "event"
variable_declaration
nullable_type
generic_name
identifier "EventHandler"
type_argument_list
< "<"
identifier "ItemChangeEventArgs"
> ">"
? "?"
variable_declarator
identifier "ItemUpdated"
; ";"
comment "/// <summary>"
comment "/// Occurs when [item removed]."
comment "/// </summary>"
event_field_declaration
modifier
public "public"
event "event"
variable_declaration
nullable_type
generic_name
identifier "EventHandler"
type_argument_list
< "<"
identifier "ItemChangeEventArgs"
> ">"
? "?"
variable_declarator
identifier "ItemRemoved"
; ";"
comment "/// <summary>"
comment "/// Gets the root folder."
comment "/// </summary>"
comment "/// <value>The root folder.</value>"
property_declaration (+47 nodes collapsed)
property_declaration
modifier
private "private"
identifier "ILibraryMonitor"
identifier "LibraryMonitor"
arrow_expression_clause
=> "=>"
member_access_expression
identifier "_libraryMonitorFactory"
. "."
identifier "Value"
; ";"
property_declaration
modifier
private "private"
identifier "IProviderManager"
identifier "ProviderManager"
arrow_expression_clause
=> "=>"
member_access_expression
identifier "_providerManagerFactory"
. "."
identifier "Value"
; ";"
property_declaration
modifier
private "private"
identifier "IUserViewManager"
identifier "UserViewManager"
arrow_expression_clause
=> "=>"
member_access_expression
identifier "_userViewManagerFactory"
. "."
identifier "Value"
; ";"
comment "/// <summary>"
comment "/// Gets or sets the postscan tasks."
comment "/// </summary>"
comment "/// <value>The postscan tasks.</value>"
property_declaration (+23 nodes collapsed)
comment "/// <summary>"
comment "/// Gets or sets the intro providers."
comment "/// </summary>"
comment "/// <value>The intro providers.</value>"
property_declaration (+23 nodes collapsed)
comment "/// <summary>"
comment "/// Gets or sets the list of entity resolution ignore rules."
comment "/// </summary>"
comment "/// <value>The entity resolution ignore rules.</value>"
property_declaration (+23 nodes collapsed)
comment "/// <summary>"
comment "/// Gets or sets the list of currently registered entity res"...
comment "/// </summary>"
comment "/// <value>The entity resolvers enumerable.</value>"
property_declaration (+23 nodes collapsed)
property_declaration (+23 nodes collapsed)
comment "/// <summary>"
comment "/// Gets or sets the comparers."
comment "/// </summary>"
comment "/// <value>The comparers.</value>"
property_declaration (+23 nodes collapsed)
property_declaration
modifier
public "public"
predefined_type "bool"
identifier "IsScanRunning"
accessor_list
{ "{"
accessor_declaration
get "get"
; ";"
accessor_declaration
modifier
private "private"
set "set"
; ";"
} "}"
comment "/// <summary>"
comment "/// Adds the parts."
comment "/// </summary>"
comment "/// <param name=\"rules\">The rules.</param>"
comment "/// <param name=\"resolvers\">The resolvers.</param>"
comment "/// <param name=\"introProviders\">The intro providers.</param"...
comment "/// <param name=\"itemComparers\">The item comparers.</param>"
comment "/// <param name=\"postScanTasks\">The post scan tasks.</param>"
method_declaration (+160 nodes collapsed)
comment "/// <summary>"
comment "/// Records the configuration values."
comment "/// </summary>"
comment "/// <param name=\"configuration\">The configuration.</param>"
method_declaration (+23 nodes collapsed)
comment "/// <summary>"
comment "/// Configurations the updated."
comment "/// </summary>"
comment "/// <param name=\"sender\">The sender.</param>"
comment "/// <param name=\"e\">The <see cref=\"EventArgs\" /> instance co"...
method_declaration (+79 nodes collapsed)
method_declaration (+113 nodes collapsed)
method_declaration (+34 nodes collapsed)
method_declaration (+78 nodes collapsed)
method_declaration (+906 nodes collapsed)
method_declaration (+226 nodes collapsed)
method_declaration (+77 nodes collapsed)
method_declaration (+202 nodes collapsed)
comment "/// <summary>"
comment "/// Resolves the item."
comment "/// </summary>"
comment "/// <param name=\"args\">The args.</param>"
comment "/// <param name=\"resolvers\">The resolvers.</param>"
comment "/// <returns>BaseItem.</returns>"
method_declaration (+119 nodes collapsed)
method_declaration (+89 nodes collapsed)
method_declaration (+35 nodes collapsed)
method_declaration (+193 nodes collapsed)
method_declaration (+58 nodes collapsed)
method_declaration (+468 nodes collapsed)
method_declaration (+47 nodes collapsed)
method_declaration (+284 nodes collapsed)
method_declaration (+69 nodes collapsed)
method_declaration (+303 nodes collapsed)
method_declaration (+194 nodes collapsed)
comment "/// <summary>"
comment "/// Creates the root media folder."
comment "/// </summary>"
comment "/// <returns>AggregateFolder.</returns>"
comment "/// <exception cref=\"InvalidOperationException\">Cannot creat"...
method_declaration (+463 nodes collapsed)
method_declaration (+341 nodes collapsed)
comment "/// <inheritdoc />"
method_declaration (+117 nodes collapsed)
comment "/// <inheritdoc />"
method_declaration (+81 nodes collapsed)
comment "/// <summary>"
comment "/// Gets the studio."
comment "/// </summary>"
comment "/// <param name=\"name\">The name.</param>"
comment "/// <returns>Task{Studio}.</returns>"
method_declaration (+46 nodes collapsed)
method_declaration (+38 nodes collapsed)
method_declaration (+38 nodes collapsed)
method_declaration (+38 nodes collapsed)
comment "/// <summary>"
comment "/// Gets the genre."
comment "/// </summary>"
comment "/// <param name=\"name\">The name.</param>"
comment "/// <returns>Task{Genre}.</returns>"
method_declaration (+46 nodes collapsed)
comment "/// <summary>"
comment "/// Gets the music genre."
comment "/// </summary>"
comment "/// <param name=\"name\">The name.</param>"
comment "/// <returns>Task{MusicGenre}.</returns>"
method_declaration (+46 nodes collapsed)
comment "/// <summary>"
comment "/// Gets the year."
comment "/// </summary>"
comment "/// <param name=\"value\">The value.</param>"
comment "/// <returns>Task{Year}.</returns>"
method_declaration (+101 nodes collapsed)
comment "/// <summary>"
comment "/// Gets a Genre."
comment "/// </summary>"
comment "/// <param name=\"name\">The name.</param>"
comment "/// <returns>Task{Genre}.</returns>"
method_declaration (+35 nodes collapsed)
method_declaration (+42 nodes collapsed)
method_declaration (+316 nodes collapsed)
method_declaration (+66 nodes collapsed)
comment "/// <inheritdoc />"
method_declaration (+71 nodes collapsed)
comment "/// <summary>"
comment "/// Reloads the root media folder."
comment "/// </summary>"
comment "/// <param name=\"progress\">The progress.</param>"
comment "/// <param name=\"cancellationToken\">The cancellation token.<"...
comment "/// <returns>Task.</returns>"
method_declaration (+46 nodes collapsed)
comment "/// <summary>"
comment "/// Validates the media library internal."
comment "/// </summary>"
comment "/// <param name=\"progress\">The progress.</param>"
comment "/// <param name=\"cancellationToken\">The cancellation token.<"...
comment "/// <returns>Task.</returns>"
method_declaration (+93 nodes collapsed)
method_declaration (+320 nodes collapsed)
method_declaration (+237 nodes collapsed)
comment "/// <summary>"
comment "/// Runs the post scan tasks."
comment "/// </summary>"
comment "/// <param name=\"progress\">The progress.</param>"
comment "/// <param name=\"cancellationToken\">The cancellation token.<"...
comment "/// <returns>Task.</returns>"
method_declaration (+338 nodes collapsed)
comment "/// <summary>"
comment "/// Gets the default view."
comment "/// </summary>"
comment "/// <returns>IEnumerable{VirtualFolderInfo}.</returns>"
method_declaration (+27 nodes collapsed)
method_declaration (+143 nodes collapsed)
method_declaration (+460 nodes collapsed)
method_declaration (+121 nodes collapsed)
comment "/// <inheritdoc />"
method_declaration (+121 nodes collapsed)
comment "/// <inheritdoc />"
method_declaration (+63 nodes collapsed)
comment "/// <inheritdoc />"
method_declaration (+79 nodes collapsed)
comment "/// <inheritdoc />"
method_declaration (+71 nodes collapsed)
method_declaration (+213 nodes collapsed)
method_declaration (+33 nodes collapsed)
method_declaration (+134 nodes collapsed)
method_declaration (+114 nodes collapsed)
method_declaration (+121 nodes collapsed)
method_declaration (+121 nodes collapsed)
method_declaration (+109 nodes collapsed)
method_declaration (+64 nodes collapsed)
method_declaration (+82 nodes collapsed)
method_declaration (+82 nodes collapsed)
method_declaration (+82 nodes collapsed)
method_declaration (+82 nodes collapsed)
method_declaration (+82 nodes collapsed)
method_declaration (+260 nodes collapsed)
method_declaration (+82 nodes collapsed)
method_declaration (+184 nodes collapsed)
method_declaration (+222 nodes collapsed)
method_declaration (+235 nodes collapsed)
method_declaration (+456 nodes collapsed)
comment "/// <summary>"
comment "/// Gets the intros."
comment "/// </summary>"
comment "/// <param name=\"item\">The item.</param>"
comment "/// <param name=\"user\">The user.</param>"
comment "/// <returns>IEnumerable{System.String}.</returns>"
method_declaration (+159 nodes collapsed)
comment "/// <summary>"
comment "/// Gets the intros."
comment "/// </summary>"
comment "/// <param name=\"provider\">The provider.</param>"
comment "/// <param name=\"item\">The item.</param>"
comment "/// <param name=\"user\">The user.</param>"
comment "/// <returns>Task&lt;IEnumerable&lt;IntroInfo&gt;&gt;.</retu"...
method_declaration (+101 nodes collapsed)
comment "/// <summary>"
comment "/// Resolves the intro."
comment "/// </summary>"
comment "/// <param name=\"info\">The info.</param>"
comment "/// <returns>Video.</returns>"
method_declaration (+298 nodes collapsed)
comment "/// <inheritdoc />"
method_declaration (+288 nodes collapsed)
comment "/// <inheritdoc />"
method_declaration (+292 nodes collapsed)
comment "/// <summary>"
comment "/// Gets the comparer."
comment "/// </summary>"
comment "/// <param name=\"name\">The name.</param>"
comment "/// <param name=\"user\">The user.</param>"
comment "/// <returns>IBaseItemComparer.</returns>"
method_declaration (+129 nodes collapsed)
comment "/// <inheritdoc />"
method_declaration (+43 nodes collapsed)
comment "/// <inheritdoc />"
method_declaration (+181 nodes collapsed)
method_declaration (+167 nodes collapsed)
comment "/// <inheritdoc />"
method_declaration
modifier
public "public"
modifier
async "async"
identifier "Task"
identifier "UpdateImagesAsync"
parameter_list
( "("
parameter
identifier "BaseItem"
identifier "item"
, ","
parameter
predefined_type "bool"
identifier "forceUpdate"
= "="
boolean_literal
false "false"
) ")"
block
{ "{"
expression_statement
invocation_expression
member_access_expression
identifier "ArgumentNullException"
. "."
identifier "ThrowIfNull"
argument_list
( "("
argument
identifier "item"
) ")"
; ";"
local_declaration_statement (+64 nodes collapsed)
comment "// Skip image processing if current or live tv source"
if_statement (+38 nodes collapsed)
foreach_statement
foreach "foreach"
( "("
implicit_type
var "var"
identifier "img"
in "in"
identifier "outdated"
) ")"
block
{ "{"
local_declaration_statement
variable_declaration
implicit_type
var "var"
variable_declarator
identifier "image"
= "="
identifier "img"
; ";"
if_statement (+196 nodes collapsed)
local_declaration_statement
variable_declaration
identifier "ImageDimensions"
variable_declarator
identifier "size"
; ";"
try_statement
try "try"
block
{ "{"
expression_statement
assignment_expression
identifier "size"
= "="
invocation_expression
member_access_expression
identifier "_imageProcessor"
. "."
identifier "GetImageDimensions"
argument_list
( "("
argument
identifier "item"
, ","
argument
identifier "image"
) ")"
; ";"
expression_statement
assignment_expression
member_access_expression
identifier "image"
. "."
identifier "Width"
= "="
member_access_expression
identifier "size"
. "."
identifier "Width"
; ";"
expression_statement
assignment_expression
member_access_expression
identifier "image"
. "."
identifier "Height"
= "="
member_access_expression
identifier "size"
. "."
identifier "Height"
; ";"
} "}"
catch_clause
catch "catch"
catch_declaration
( "("
identifier "Exception"
identifier "ex"
) ")"
block
{ "{"
expression_statement (+24 nodes collapsed)
expression_statement
assignment_expression
identifier "size"
= "="
default_expression
default "default"
; ";"
expression_statement
assignment_expression
member_access_expression
identifier "image"
. "."
identifier "Width"
= "="
integer_literal "0"
; ";"
expression_statement
assignment_expression
member_access_expression
identifier "image"
. "."
identifier "Height"
= "="
integer_literal "0"
; ";"
} "}"
try_statement
try "try"
block
{ "{"
expression_statement
assignment_expression
member_access_expression
identifier "image"
. "."
identifier "BlurHash"
= "="
invocation_expression
member_access_expression
identifier "_imageProcessor"
. "."
identifier "GetImageBlurHash"
argument_list
( "("
argument
member_access_expression
identifier "image"
. "."
identifier "Path"
, ","
argument
identifier "size"
) ")"
; ";"
} "}"
catch_clause
catch "catch"
catch_declaration
( "("
identifier "Exception"
identifier "ex"
) ")"
block
{ "{"
expression_statement (+24 nodes collapsed)
expression_statement
assignment_expression
member_access_expression
identifier "image"
. "."
identifier "BlurHash"
= "="
member_access_expression
predefined_type "string"
. "."
identifier "Empty"
; ";"
} "}"
try_statement
try "try"
block
{ "{"
expression_statement
assignment_expression
member_access_expression
identifier "image"
. "."
identifier "DateModified"
= "="
invocation_expression
member_access_expression
identifier "_fileSystem"
. "."
identifier "GetLastWriteTimeUtc"
argument_list
( "("
argument
member_access_expression
identifier "image"
. "."
identifier "Path"
) ")"
; ";"
} "}"
catch_clause (+34 nodes collapsed)
} "}"
expression_statement
invocation_expression
member_access_expression
identifier "_itemRepository"
. "."
identifier "SaveImages"
argument_list
( "("
argument
identifier "item"
) ")"
; ";"
expression_statement
invocation_expression
identifier "RegisterItem"
argument_list
( "("
argument
identifier "item"
) ")"
; ";"
} "}"
comment "/// <inheritdoc />"
method_declaration (+220 nodes collapsed)
comment "/// <inheritdoc />"
method_declaration (+47 nodes collapsed)
method_declaration (+88 nodes collapsed)
comment "/// <summary>"
comment "/// Reports the item removed."
comment "/// </summary>"
comment "/// <param name=\"item\">The item.</param>"
comment "/// <param name=\"parent\">The parent item.</param>"
method_declaration (+91 nodes collapsed)
comment "/// <summary>"
comment "/// Retrieves the item."
comment "/// </summary>"
comment "/// <param name=\"id\">The id.</param>"
comment "/// <returns>BaseItem.</returns>"
method_declaration (+27 nodes collapsed)
method_declaration (+51 nodes collapsed)
method_declaration (+171 nodes collapsed)
method_declaration (+108 nodes collapsed)
method_declaration (+87 nodes collapsed)
method_declaration (+97 nodes collapsed)
method_declaration (+87 nodes collapsed)
method_declaration (+30 nodes collapsed)
method_declaration (+30 nodes collapsed)
method_declaration (+56 nodes collapsed)
method_declaration (+145 nodes collapsed)
method_declaration (+206 nodes collapsed)
method_declaration (+53 nodes collapsed)
method_declaration (+341 nodes collapsed)
method_declaration (+513 nodes collapsed)
method_declaration (+422 nodes collapsed)
method_declaration (+576 nodes collapsed)
method_declaration (+98 nodes collapsed)
comment "/// <inheritdoc />"
method_declaration (+26 nodes collapsed)
comment "/// <inheritdoc />"
method_declaration (+80 nodes collapsed)
comment "/// <inheritdoc />"
method_declaration (+827 nodes collapsed)
method_declaration (+95 nodes collapsed)
method_declaration (+656 nodes collapsed)
method_declaration (+79 nodes collapsed)
method_declaration (+32 nodes collapsed)
method_declaration (+81 nodes collapsed)
method_declaration (+157 nodes collapsed)
method_declaration (+32 nodes collapsed)
method_declaration (+55 nodes collapsed)
comment "/// <inheritdoc />"
method_declaration (+132 nodes collapsed)
method_declaration (+335 nodes collapsed)
method_declaration (+528 nodes collapsed)
method_declaration (+540 nodes collapsed)
method_declaration (+56 nodes collapsed)
method_declaration (+34 nodes collapsed)
method_declaration (+346 nodes collapsed)
method_declaration (+111 nodes collapsed)
method_declaration (+209 nodes collapsed)
method_declaration (+251 nodes collapsed)
method_declaration (+217 nodes collapsed)
method_declaration (+345 nodes collapsed)
method_declaration (+78 nodes collapsed)
} "}"
} "}"

After

compilation_unit
preproc_pragma
#pragma "#pragma"
warning "warning"
disable "disable"
identifier "CS1591"
preproc_pragma
#pragma "#pragma"
warning "warning"
disable "disable"
identifier "CA5394"
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 "Globalization"
; ";"
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
qualified_name
identifier "System"
. "."
identifier "Net"
. "."
identifier "Http"
; ";"
using_directive
using "using"
qualified_name
identifier "System"
. "."
identifier "Threading"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "System"
. "."
identifier "Threading"
. "."
identifier "Tasks"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "BitFaster"
. "."
identifier "Caching"
. "."
identifier "Lru"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "Emby"
. "."
identifier "Naming"
. "."
identifier "Common"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "Emby"
. "."
identifier "Naming"
. "."
identifier "TV"
; ";"
using_directive
using "using"
qualified_name
qualified_name
qualified_name
qualified_name
identifier "Emby"
. "."
identifier "Server"
. "."
identifier "Implementations"
. "."
identifier "Library"
. "."
identifier "Resolvers"
; ";"
using_directive
using "using"
qualified_name
qualified_name
qualified_name
qualified_name
identifier "Emby"
. "."
identifier "Server"
. "."
identifier "Implementations"
. "."
identifier "Library"
. "."
identifier "Validators"
; ";"
using_directive
using "using"
qualified_name
qualified_name
qualified_name
identifier "Emby"
. "."
identifier "Server"
. "."
identifier "Implementations"
. "."
identifier "Playlists"
; ";"
using_directive
using "using"
qualified_name
qualified_name
qualified_name
qualified_name
identifier "Emby"
. "."
identifier "Server"
. "."
identifier "Implementations"
. "."
identifier "ScheduledTasks"
. "."
identifier "Tasks"
; ";"
using_directive
using "using"
qualified_name
qualified_name
qualified_name
identifier "Emby"
. "."
identifier "Server"
. "."
identifier "Implementations"
. "."
identifier "Sorting"
; ";"
using_directive
using "using"
qualified_name
identifier "Jellyfin"
. "."
identifier "Data"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "Jellyfin"
. "."
identifier "Data"
. "."
identifier "Enums"
; ";"
using_directive
using "using"
qualified_name
qualified_name
qualified_name
identifier "Jellyfin"
. "."
identifier "Database"
. "."
identifier "Implementations"
. "."
identifier "Entities"
; ";"
using_directive
using "using"
qualified_name
qualified_name
qualified_name
identifier "Jellyfin"
. "."
identifier "Database"
. "."
identifier "Implementations"
. "."
identifier "Enums"
; ";"
using_directive
using "using"
qualified_name
identifier "Jellyfin"
. "."
identifier "Extensions"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Common"
. "."
identifier "Extensions"
; ";"
using_directive
using "using"
qualified_name
identifier "MediaBrowser"
. "."
identifier "Controller"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Controller"
. "."
identifier "Configuration"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Controller"
. "."
identifier "Drawing"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Controller"
. "."
identifier "Dto"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Controller"
. "."
identifier "Entities"
; ";"
using_directive
using "using"
qualified_name
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Controller"
. "."
identifier "Entities"
. "."
identifier "Audio"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Controller"
. "."
identifier "IO"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Controller"
. "."
identifier "Library"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Controller"
. "."
identifier "LiveTv"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Controller"
. "."
identifier "MediaEncoding"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Controller"
. "."
identifier "MediaSegments"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Controller"
. "."
identifier "Persistence"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Controller"
. "."
identifier "Providers"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Controller"
. "."
identifier "Resolvers"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Controller"
. "."
identifier "Sorting"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Controller"
. "."
identifier "Trickplay"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Model"
. "."
identifier "Configuration"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Model"
. "."
identifier "Dlna"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Model"
. "."
identifier "Drawing"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Model"
. "."
identifier "Dto"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Model"
. "."
identifier "Entities"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Model"
. "."
identifier "IO"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Model"
. "."
identifier "Library"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Model"
. "."
identifier "Querying"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Model"
. "."
identifier "Tasks"
; ";"
using_directive
using "using"
qualified_name
qualified_name
identifier "Microsoft"
. "."
identifier "Extensions"
. "."
identifier "Logging"
; ";"
using_directive
using "using"
identifier "Episode"
= "="
qualified_name
qualified_name
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Controller"
. "."
identifier "Entities"
. "."
identifier "TV"
. "."
identifier "Episode"
; ";"
using_directive
using "using"
identifier "EpisodeInfo"
= "="
qualified_name
qualified_name
qualified_name
identifier "Emby"
. "."
identifier "Naming"
. "."
identifier "TV"
. "."
identifier "EpisodeInfo"
; ";"
using_directive
using "using"
identifier "Genre"
= "="
qualified_name
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Controller"
. "."
identifier "Entities"
. "."
identifier "Genre"
; ";"
using_directive
using "using"
identifier "Person"
= "="
qualified_name
qualified_name
qualified_name
identifier "MediaBrowser"
. "."
identifier "Controller"
. "."
identifier "Entities"
. "."
identifier "Person"
; ";"
using_directive
using "using"
identifier "VideoResolver"
= "="
qualified_name
qualified_name
qualified_name
identifier "Emby"
. "."
identifier "Naming"
. "."
identifier "Video"
. "."
identifier "VideoResolver"
; ";"
namespace_declaration
namespace "namespace"
qualified_name
qualified_name
qualified_name
identifier "Emby"
. "."
identifier "Server"
. "."
identifier "Implementations"
. "."
identifier "Library"
declaration_list
{ "{"
comment "/// <summary>"
comment "/// Class LibraryManager."
comment "/// </summary>"
class_declaration
modifier
public "public"
class "class"
identifier "LibraryManager"
base_list
: ":"
identifier "ILibraryManager"
declaration_list
{ "{"
field_declaration
modifier
private "private"
modifier
const "const"
variable_declaration
predefined_type "string"
variable_declarator
identifier "ShortcutFileExtension"
= "="
string_literal
" "\""
string_literal_content ".mblink"
" "\""
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
generic_name
identifier "ILogger"
type_argument_list
< "<"
identifier "LibraryManager"
> ">"
variable_declarator
identifier "_logger"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "ITaskManager"
variable_declarator
identifier "_taskManager"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "IUserManager"
variable_declarator
identifier "_userManager"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "IUserDataManager"
variable_declarator
identifier "_userDataManager"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "IServerConfigurationManager"
variable_declarator
identifier "_configurationManager"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
generic_name
identifier "Lazy"
type_argument_list
< "<"
identifier "ILibraryMonitor"
> ">"
variable_declarator
identifier "_libraryMonitorFactory"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
generic_name
identifier "Lazy"
type_argument_list
< "<"
identifier "IProviderManager"
> ">"
variable_declarator
identifier "_providerManagerFactory"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
generic_name
identifier "Lazy"
type_argument_list
< "<"
identifier "IUserViewManager"
> ">"
variable_declarator
identifier "_userViewManagerFactory"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "IServerApplicationHost"
variable_declarator
identifier "_appHost"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "IMediaEncoder"
variable_declarator
identifier "_mediaEncoder"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "IFileSystem"
variable_declarator
identifier "_fileSystem"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "IItemRepository"
variable_declarator
identifier "_itemRepository"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "IImageProcessor"
variable_declarator
identifier "_imageProcessor"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "NamingOptions"
variable_declarator
identifier "_namingOptions"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "IPeopleRepository"
variable_declarator
identifier "_peopleRepository"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "ExtraResolver"
variable_declarator
identifier "_extraResolver"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "IPathManager"
variable_declarator
identifier "_pathManager"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
generic_name
identifier "FastConcurrentLru"
type_argument_list
< "<"
identifier "Guid"
, ","
identifier "BaseItem"
> ">"
variable_declarator
identifier "_cache"
; ";"
comment "/// <summary>"
comment "/// The _root folder sync lock."
comment "/// </summary>"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "Lock"
variable_declarator
identifier "_rootFolderSyncLock"
= "="
implicit_object_creation_expression
new "new"
argument_list
( "("
) ")"
; ";"
field_declaration
modifier
private "private"
modifier
readonly "readonly"
variable_declaration
identifier "Lock"
variable_declarator
identifier "_userRootFolderSyncLock"
= "="
implicit_object_creation_expression
new "new"
argument_list
( "("
) ")"
; ";"
field_declaration (+21 nodes collapsed)
comment "/// <summary>"
comment "/// The _root folder."
comment "/// </summary>"
field_declaration
modifier
private "private"
modifier
volatile "volatile"
variable_declaration
nullable_type
identifier "AggregateFolder"
? "?"
variable_declarator
identifier "_rootFolder"
; ";"
field_declaration
modifier
private "private"
modifier
volatile "volatile"
variable_declaration
nullable_type
identifier "UserRootFolder"
? "?"
variable_declarator
identifier "_userRootFolder"
; ";"
field_declaration
modifier
private "private"
variable_declaration
predefined_type "bool"
variable_declarator
identifier "_wizardCompleted"
; ";"
comment "/// <summary>"
comment "/// Initializes a new instance of the <see cref=\"LibraryMana"...
comment "/// </summary>"
comment "/// <param name=\"appHost\">The application host.</param>"
comment "/// <param name=\"loggerFactory\">The logger factory.</param>"
comment "/// <param name=\"taskManager\">The task manager.</param>"
comment "/// <param name=\"userManager\">The user manager.</param>"
comment "/// <param name=\"configurationManager\">The configuration man"...
comment "/// <param name=\"userDataManager\">The user data manager.</pa"...
comment "/// <param name=\"libraryMonitorFactory\">The library monitor."...
comment "/// <param name=\"fileSystem\">The file system.</param>"
comment "/// <param name=\"providerManagerFactory\">The provider manage"...
comment "/// <param name=\"userViewManagerFactory\">The user view manag"...
comment "/// <param name=\"mediaEncoder\">The media encoder.</param>"
comment "/// <param name=\"itemRepository\">The item repository.</param"...
comment "/// <param name=\"imageProcessor\">The image processor.</param"...
comment "/// <param name=\"namingOptions\">The naming options.</param>"
comment "/// <param name=\"directoryService\">The directory service.</p"...
comment "/// <param name=\"peopleRepository\">The people repository.</p"...
comment "/// <param name=\"pathManager\">The path manager.</param>"
constructor_declaration (+278 nodes collapsed)
comment "/// <summary>"
comment "/// Occurs when [item added]."
comment "/// </summary>"
event_field_declaration
modifier
public "public"
event "event"
variable_declaration
nullable_type
generic_name
identifier "EventHandler"
type_argument_list
< "<"
identifier "ItemChangeEventArgs"
> ">"
? "?"
variable_declarator
identifier "ItemAdded"
; ";"
comment "/// <summary>"
comment "/// Occurs when [item updated]."
comment "/// </summary>"
event_field_declaration
modifier
public "public"
event "event"
variable_declaration
nullable_type
generic_name
identifier "EventHandler"
type_argument_list
< "<"
identifier "ItemChangeEventArgs"
> ">"
? "?"
variable_declarator
identifier "ItemUpdated"
; ";"
comment "/// <summary>"
comment "/// Occurs when [item removed]."
comment "/// </summary>"
event_field_declaration
modifier
public "public"
event "event"
variable_declaration
nullable_type
generic_name
identifier "EventHandler"
type_argument_list
< "<"
identifier "ItemChangeEventArgs"
> ">"
? "?"
variable_declarator
identifier "ItemRemoved"
; ";"
comment "/// <summary>"
comment "/// Gets the root folder."
comment "/// </summary>"
comment "/// <value>The root folder.</value>"
property_declaration (+47 nodes collapsed)
property_declaration
modifier
private "private"
identifier "ILibraryMonitor"
identifier "LibraryMonitor"
arrow_expression_clause
=> "=>"
member_access_expression
identifier "_libraryMonitorFactory"
. "."
identifier "Value"
; ";"
property_declaration
modifier
private "private"
identifier "IProviderManager"
identifier "ProviderManager"
arrow_expression_clause
=> "=>"
member_access_expression
identifier "_providerManagerFactory"
. "."
identifier "Value"
; ";"
property_declaration
modifier
private "private"
identifier "IUserViewManager"
identifier "UserViewManager"
arrow_expression_clause
=> "=>"
member_access_expression
identifier "_userViewManagerFactory"
. "."
identifier "Value"
; ";"
comment "/// <summary>"
comment "/// Gets or sets the postscan tasks."
comment "/// </summary>"
comment "/// <value>The postscan tasks.</value>"
property_declaration (+23 nodes collapsed)
comment "/// <summary>"
comment "/// Gets or sets the intro providers."
comment "/// </summary>"
comment "/// <value>The intro providers.</value>"
property_declaration (+23 nodes collapsed)
comment "/// <summary>"
comment "/// Gets or sets the list of entity resolution ignore rules."
comment "/// </summary>"
comment "/// <value>The entity resolution ignore rules.</value>"
property_declaration (+23 nodes collapsed)
comment "/// <summary>"
comment "/// Gets or sets the list of currently registered entity res"...
comment "/// </summary>"
comment "/// <value>The entity resolvers enumerable.</value>"
property_declaration (+23 nodes collapsed)
property_declaration (+23 nodes collapsed)
comment "/// <summary>"
comment "/// Gets or sets the comparers."
comment "/// </summary>"
comment "/// <value>The comparers.</value>"
property_declaration (+23 nodes collapsed)
property_declaration
modifier
public "public"
predefined_type "bool"
identifier "IsScanRunning"
accessor_list
{ "{"
accessor_declaration
get "get"
; ";"
accessor_declaration
modifier
private "private"
set "set"
; ";"
} "}"
comment "/// <summary>"
comment "/// Adds the parts."
comment "/// </summary>"
comment "/// <param name=\"rules\">The rules.</param>"
comment "/// <param name=\"resolvers\">The resolvers.</param>"
comment "/// <param name=\"introProviders\">The intro providers.</param"...
comment "/// <param name=\"itemComparers\">The item comparers.</param>"
comment "/// <param name=\"postScanTasks\">The post scan tasks.</param>"
method_declaration (+160 nodes collapsed)
comment "/// <summary>"
comment "/// Records the configuration values."
comment "/// </summary>"
comment "/// <param name=\"configuration\">The configuration.</param>"
method_declaration (+23 nodes collapsed)
comment "/// <summary>"
comment "/// Configurations the updated."
comment "/// </summary>"
comment "/// <param name=\"sender\">The sender.</param>"
comment "/// <param name=\"e\">The <see cref=\"EventArgs\" /> instance co"...
method_declaration (+79 nodes collapsed)
method_declaration (+113 nodes collapsed)
method_declaration (+34 nodes collapsed)
method_declaration (+78 nodes collapsed)
method_declaration (+906 nodes collapsed)
method_declaration (+226 nodes collapsed)
method_declaration (+77 nodes collapsed)
method_declaration (+202 nodes collapsed)
comment "/// <summary>"
comment "/// Resolves the item."
comment "/// </summary>"
comment "/// <param name=\"args\">The args.</param>"
comment "/// <param name=\"resolvers\">The resolvers.</param>"
comment "/// <returns>BaseItem.</returns>"
method_declaration (+119 nodes collapsed)
method_declaration (+89 nodes collapsed)
method_declaration (+35 nodes collapsed)
method_declaration (+193 nodes collapsed)
method_declaration (+58 nodes collapsed)
method_declaration (+468 nodes collapsed)
method_declaration (+47 nodes collapsed)
method_declaration (+284 nodes collapsed)
method_declaration (+69 nodes collapsed)
method_declaration (+303 nodes collapsed)
method_declaration (+194 nodes collapsed)
comment "/// <summary>"
comment "/// Creates the root media folder."
comment "/// </summary>"
comment "/// <returns>AggregateFolder.</returns>"
comment "/// <exception cref=\"InvalidOperationException\">Cannot creat"...
method_declaration (+463 nodes collapsed)
method_declaration (+341 nodes collapsed)
comment "/// <inheritdoc />"
method_declaration (+117 nodes collapsed)
comment "/// <inheritdoc />"
method_declaration (+81 nodes collapsed)
comment "/// <summary>"
comment "/// Gets the studio."
comment "/// </summary>"
comment "/// <param name=\"name\">The name.</param>"
comment "/// <returns>Task{Studio}.</returns>"
method_declaration (+46 nodes collapsed)
method_declaration (+38 nodes collapsed)
method_declaration (+38 nodes collapsed)
method_declaration (+38 nodes collapsed)
comment "/// <summary>"
comment "/// Gets the genre."
comment "/// </summary>"
comment "/// <param name=\"name\">The name.</param>"
comment "/// <returns>Task{Genre}.</returns>"
method_declaration (+46 nodes collapsed)
comment "/// <summary>"
comment "/// Gets the music genre."
comment "/// </summary>"
comment "/// <param name=\"name\">The name.</param>"
comment "/// <returns>Task{MusicGenre}.</returns>"
method_declaration (+46 nodes collapsed)
comment "/// <summary>"
comment "/// Gets the year."
comment "/// </summary>"
comment "/// <param name=\"value\">The value.</param>"
comment "/// <returns>Task{Year}.</returns>"
method_declaration (+101 nodes collapsed)
comment "/// <summary>"
comment "/// Gets a Genre."
comment "/// </summary>"
comment "/// <param name=\"name\">The name.</param>"
comment "/// <returns>Task{Genre}.</returns>"
method_declaration (+35 nodes collapsed)
method_declaration (+42 nodes collapsed)
method_declaration (+316 nodes collapsed)
method_declaration (+66 nodes collapsed)
comment "/// <inheritdoc />"
method_declaration (+71 nodes collapsed)
comment "/// <summary>"
comment "/// Reloads the root media folder."
comment "/// </summary>"
comment "/// <param name=\"progress\">The progress.</param>"
comment "/// <param name=\"cancellationToken\">The cancellation token.<"...
comment "/// <returns>Task.</returns>"
method_declaration (+46 nodes collapsed)
comment "/// <summary>"
comment "/// Validates the media library internal."
comment "/// </summary>"
comment "/// <param name=\"progress\">The progress.</param>"
comment "/// <param name=\"cancellationToken\">The cancellation token.<"...
comment "/// <returns>Task.</returns>"
method_declaration (+93 nodes collapsed)
method_declaration (+320 nodes collapsed)
method_declaration (+237 nodes collapsed)
comment "/// <summary>"
comment "/// Runs the post scan tasks."
comment "/// </summary>"
comment "/// <param name=\"progress\">The progress.</param>"
comment "/// <param name=\"cancellationToken\">The cancellation token.<"...
comment "/// <returns>Task.</returns>"
method_declaration (+338 nodes collapsed)
comment "/// <summary>"
comment "/// Gets the default view."
comment "/// </summary>"
comment "/// <returns>IEnumerable{VirtualFolderInfo}.</returns>"
method_declaration (+27 nodes collapsed)
method_declaration (+143 nodes collapsed)
method_declaration (+460 nodes collapsed)
method_declaration (+121 nodes collapsed)
comment "/// <inheritdoc />"
method_declaration (+121 nodes collapsed)
comment "/// <inheritdoc />"
method_declaration (+63 nodes collapsed)
comment "/// <inheritdoc />"
method_declaration (+79 nodes collapsed)
comment "/// <inheritdoc />"
method_declaration (+71 nodes collapsed)
method_declaration (+213 nodes collapsed)
method_declaration (+33 nodes collapsed)
method_declaration (+134 nodes collapsed)
method_declaration (+114 nodes collapsed)
method_declaration (+121 nodes collapsed)
method_declaration (+121 nodes collapsed)
method_declaration (+109 nodes collapsed)
method_declaration (+64 nodes collapsed)
method_declaration (+82 nodes collapsed)
method_declaration (+82 nodes collapsed)
method_declaration (+82 nodes collapsed)
method_declaration (+82 nodes collapsed)
method_declaration (+82 nodes collapsed)
method_declaration (+260 nodes collapsed)
method_declaration (+82 nodes collapsed)
method_declaration (+184 nodes collapsed)
method_declaration (+222 nodes collapsed)
method_declaration (+235 nodes collapsed)
method_declaration (+456 nodes collapsed)
comment "/// <summary>"
comment "/// Gets the intros."
comment "/// </summary>"
comment "/// <param name=\"item\">The item.</param>"
comment "/// <param name=\"user\">The user.</param>"
comment "/// <returns>IEnumerable{System.String}.</returns>"
method_declaration (+159 nodes collapsed)
comment "/// <summary>"
comment "/// Gets the intros."
comment "/// </summary>"
comment "/// <param name=\"provider\">The provider.</param>"
comment "/// <param name=\"item\">The item.</param>"
comment "/// <param name=\"user\">The user.</param>"
comment "/// <returns>Task&lt;IEnumerable&lt;IntroInfo&gt;&gt;.</retu"...
method_declaration (+101 nodes collapsed)
comment "/// <summary>"
comment "/// Resolves the intro."
comment "/// </summary>"
comment "/// <param name=\"info\">The info.</param>"
comment "/// <returns>Video.</returns>"
method_declaration (+298 nodes collapsed)
comment "/// <inheritdoc />"
method_declaration (+288 nodes collapsed)
comment "/// <inheritdoc />"
method_declaration (+292 nodes collapsed)
comment "/// <summary>"
comment "/// Gets the comparer."
comment "/// </summary>"
comment "/// <param name=\"name\">The name.</param>"
comment "/// <param name=\"user\">The user.</param>"
comment "/// <returns>IBaseItemComparer.</returns>"
method_declaration (+129 nodes collapsed)
comment "/// <inheritdoc />"
method_declaration (+43 nodes collapsed)
comment "/// <inheritdoc />"
method_declaration (+181 nodes collapsed)
method_declaration (+167 nodes collapsed)
comment "/// <inheritdoc />"
method_declaration
modifier
public "public"
modifier
async "async"
identifier "Task"
identifier "UpdateImagesAsync"
parameter_list
( "("
parameter
identifier "BaseItem"
identifier "item"
, ","
parameter
predefined_type "bool"
identifier "forceUpdate"
= "="
boolean_literal
false "false"
) ")"
block
{ "{"
expression_statement
invocation_expression
member_access_expression
identifier "ArgumentNullException"
. "."
identifier "ThrowIfNull"
argument_list
( "("
argument
identifier "item"
) ")"
; ";"
local_declaration_statement (+64 nodes collapsed)
comment "// Skip image processing if current or live tv source"
if_statement (+38 nodes collapsed)
local_declaration_statement
variable_declaration
implicit_type
var "var"
variable_declarator
identifier "anyChange"
= "="
boolean_literal
false "false"
; ";"
foreach_statement
foreach "foreach"
( "("
implicit_type
var "var"
identifier "img"
in "in"
identifier "outdated"
) ")"
block
{ "{"
local_declaration_statement
variable_declaration
implicit_type
var "var"
variable_declarator
identifier "image"
= "="
identifier "img"
; ";"
if_statement (+196 nodes collapsed)
local_declaration_statement
variable_declaration
identifier "ImageDimensions"
variable_declarator
identifier "size"
; ";"
try_statement
try "try"
block
{ "{"
expression_statement
assignment_expression
identifier "size"
= "="
invocation_expression
member_access_expression
identifier "_imageProcessor"
. "."
identifier "GetImageDimensions"
argument_list
( "("
argument
identifier "item"
, ","
argument
identifier "image"
) ")"
; ";"
expression_statement
assignment_expression
identifier "anyChange"
= "="
binary_expression
binary_expression
member_access_expression
identifier "image"
. "."
identifier "Width"
!= "!="
member_access_expression
identifier "size"
. "."
identifier "Width"
|| "||"
binary_expression
member_access_expression
identifier "image"
. "."
identifier "Height"
!= "!="
member_access_expression
identifier "size"
. "."
identifier "Height"
; ";"
expression_statement
assignment_expression
member_access_expression
identifier "image"
. "."
identifier "Width"
= "="
member_access_expression
identifier "size"
. "."
identifier "Width"
; ";"
expression_statement
assignment_expression
member_access_expression
identifier "image"
. "."
identifier "Height"
= "="
member_access_expression
identifier "size"
. "."
identifier "Height"
; ";"
} "}"
catch_clause
catch "catch"
catch_declaration
( "("
identifier "Exception"
identifier "ex"
) ")"
block
{ "{"
expression_statement (+24 nodes collapsed)
expression_statement
assignment_expression
identifier "size"
= "="
default_expression
default "default"
; ";"
expression_statement
assignment_expression
identifier "anyChange"
= "="
binary_expression
binary_expression
member_access_expression
identifier "image"
. "."
identifier "Width"
!= "!="
member_access_expression
identifier "size"
. "."
identifier "Width"
|| "||"
binary_expression
member_access_expression
identifier "image"
. "."
identifier "Height"
!= "!="
member_access_expression
identifier "size"
. "."
identifier "Height"
; ";"
expression_statement
assignment_expression
member_access_expression
identifier "image"
. "."
identifier "Width"
= "="
integer_literal "0"
; ";"
expression_statement
assignment_expression
member_access_expression
identifier "image"
. "."
identifier "Height"
= "="
integer_literal "0"
; ";"
} "}"
try_statement
try "try"
block
{ "{"
local_declaration_statement
variable_declaration
implicit_type
var "var"
variable_declarator
identifier "blurhash"
= "="
invocation_expression
member_access_expression
identifier "_imageProcessor"
. "."
identifier "GetImageBlurHash"
argument_list
( "("
argument
member_access_expression
identifier "image"
. "."
identifier "Path"
, ","
argument
identifier "size"
) ")"
; ";"
expression_statement
assignment_expression
identifier "anyChange"
= "="
binary_expression
identifier "anyChange"
|| "||"
prefix_unary_expression
! "!"
invocation_expression
member_access_expression
identifier "blurhash"
. "."
identifier "Equals"
argument_list
( "("
argument
member_access_expression
identifier "image"
. "."
identifier "BlurHash"
, ","
argument
member_access_expression
identifier "StringComparison"
. "."
identifier "Ordinal"
) ")"
; ";"
expression_statement
assignment_expression
member_access_expression
identifier "image"
. "."
identifier "BlurHash"
= "="
identifier "blurhash"
; ";"
} "}"
catch_clause
catch "catch"
catch_declaration
( "("
identifier "Exception"
identifier "ex"
) ")"
block
{ "{"
expression_statement (+24 nodes collapsed)
expression_statement
assignment_expression
identifier "anyChange"
= "="
binary_expression
identifier "anyChange"
|| "||"
prefix_unary_expression
! "!"
invocation_expression
member_access_expression
predefined_type "string"
. "."
identifier "IsNullOrEmpty"
argument_list
( "("
argument
member_access_expression
identifier "image"
. "."
identifier "BlurHash"
) ")"
; ";"
expression_statement
assignment_expression
member_access_expression
identifier "image"
. "."
identifier "BlurHash"
= "="
member_access_expression
predefined_type "string"
. "."
identifier "Empty"
; ";"
} "}"
try_statement
try "try"
block
{ "{"
local_declaration_statement
variable_declaration
implicit_type
var "var"
variable_declarator
identifier "modifiedDate"
= "="
invocation_expression
member_access_expression
identifier "_fileSystem"
. "."
identifier "GetLastWriteTimeUtc"
argument_list
( "("
argument
member_access_expression
identifier "image"
. "."
identifier "Path"
) ")"
; ";"
expression_statement
assignment_expression
identifier "anyChange"
= "="
binary_expression
identifier "anyChange"
|| "||"
binary_expression
identifier "modifiedDate"
!= "!="
member_access_expression
identifier "image"
. "."
identifier "DateModified"
; ";"
expression_statement
assignment_expression
member_access_expression
identifier "image"
. "."
identifier "DateModified"
= "="
identifier "modifiedDate"
; ";"
} "}"
catch_clause (+34 nodes collapsed)
} "}"
if_statement
if "if"
( "("
identifier "anyChange"
) ")"
block
{ "{"
expression_statement
invocation_expression
member_access_expression
identifier "_itemRepository"
. "."
identifier "SaveImages"
argument_list
( "("
argument
identifier "item"
) ")"
; ";"
} "}"
expression_statement
invocation_expression
identifier "RegisterItem"
argument_list
( "("
argument
identifier "item"
) ")"
; ";"
} "}"
comment "/// <inheritdoc />"
method_declaration (+220 nodes collapsed)
comment "/// <inheritdoc />"
method_declaration (+47 nodes collapsed)
method_declaration (+88 nodes collapsed)
comment "/// <summary>"
comment "/// Reports the item removed."
comment "/// </summary>"
comment "/// <param name=\"item\">The item.</param>"
comment "/// <param name=\"parent\">The parent item.</param>"
method_declaration (+91 nodes collapsed)
comment "/// <summary>"
comment "/// Retrieves the item."
comment "/// </summary>"
comment "/// <param name=\"id\">The id.</param>"
comment "/// <returns>BaseItem.</returns>"
method_declaration (+27 nodes collapsed)
method_declaration (+51 nodes collapsed)
method_declaration (+171 nodes collapsed)
method_declaration (+108 nodes collapsed)
method_declaration (+87 nodes collapsed)
method_declaration (+97 nodes collapsed)
method_declaration (+87 nodes collapsed)
method_declaration (+30 nodes collapsed)
method_declaration (+30 nodes collapsed)
method_declaration (+56 nodes collapsed)
method_declaration (+145 nodes collapsed)
method_declaration (+206 nodes collapsed)
method_declaration (+53 nodes collapsed)
method_declaration (+341 nodes collapsed)
method_declaration (+513 nodes collapsed)
method_declaration (+422 nodes collapsed)
method_declaration (+576 nodes collapsed)
method_declaration (+98 nodes collapsed)
comment "/// <inheritdoc />"
method_declaration (+26 nodes collapsed)
comment "/// <inheritdoc />"
method_declaration (+80 nodes collapsed)
comment "/// <inheritdoc />"
method_declaration (+827 nodes collapsed)
method_declaration (+95 nodes collapsed)
method_declaration (+656 nodes collapsed)
method_declaration (+79 nodes collapsed)
method_declaration (+32 nodes collapsed)
method_declaration (+81 nodes collapsed)
method_declaration (+157 nodes collapsed)
method_declaration (+32 nodes collapsed)
method_declaration (+55 nodes collapsed)
comment "/// <inheritdoc />"
method_declaration (+132 nodes collapsed)
method_declaration (+335 nodes collapsed)
method_declaration (+528 nodes collapsed)
method_declaration (+540 nodes collapsed)
method_declaration (+56 nodes collapsed)
method_declaration (+34 nodes collapsed)
method_declaration (+346 nodes collapsed)
method_declaration (+111 nodes collapsed)
method_declaration (+209 nodes collapsed)
method_declaration (+251 nodes collapsed)
method_declaration (+217 nodes collapsed)
method_declaration (+345 nodes collapsed)
method_declaration (+78 nodes collapsed)
} "}"
} "}"