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–452 unchanged (452 lines)
453 _itemRepository.DeleteItem([item.Id, .. children.Select(f => f.Id)]);
454 _cache.TryRemove(item.Id, out _);
455 foreach (var child in children)
456 {
457 _cache.TryRemove(child.Id, out _);
458 }
459
460 ReportItemRemoved(item, parent);
461 }
462
463 private void DeleteItemPath(BaseItem item, bool isRequiredForDelete, FileSystemMetadata fileSystemInfo)
464 {
465 if (Directory.Exists(fileSystemInfo.FullName) || File.Exists(fileSystemInfo.FullName))
…lines 466–1988 unchanged (1523 lines)
1989 _itemRepository.SaveItems(items, cancellationToken);
1990
1991 foreach (var item in items)
1992 {
1993 RegisterItem(item);
1994 }
1995
1996 if (ItemAdded is not null)
1997 {
1998 foreach (var item in items)
1999 {
2000 // With the live tv guide this just creates too much noise
2001 if (item.SourceType != SourceType.Library)
…lines 2002–2145 unchanged (144 lines)
2146
2147 // Modify again, so saved value is after write time of externally saved metadata
2148 item.DateLastSaved = DateTime.UtcNow;
2149 }
2150
2151 _itemRepository.SaveItems(items, cancellationToken);
2152
2153 if (ItemUpdated is not null)
2154 {
2155 foreach (var item in items)
2156 {
2157 // With the live tv guide this just creates too much noise
2158 if (item.SourceType != SourceType.Library)
…lines 2159–3358 unchanged (1200 lines)

After

…lines 1–453 unchanged (453 lines)
454 _cache.TryRemove(item.Id, out _);
455 foreach (var child in children)
456 {
457 _cache.TryRemove(child.Id, out _);
458 }
459
460 if (parent is Folder folder)
461 {
462 folder.Children = null;
463 folder.UserData = null;
464 }
465
466 ReportItemRemoved(item, parent);
467 }
468
469 private void DeleteItemPath(BaseItem item, bool isRequiredForDelete, FileSystemMetadata fileSystemInfo)
470 {
…lines 471–1995 unchanged (1525 lines)
1996
1997 foreach (var item in items)
1998 {
1999 RegisterItem(item);
2000 }
2001
2002 if (parent is Folder folder)
2003 {
2004 folder.Children = null;
2005 folder.UserData = null;
2006 }
2007
2008 if (ItemAdded is not null)
2009 {
2010 foreach (var item in items)
2011 {
2012 // With the live tv guide this just creates too much noise
…lines 2013–2158 unchanged (146 lines)
2159 // Modify again, so saved value is after write time of externally saved metadata
2160 item.DateLastSaved = DateTime.UtcNow;
2161 }
2162
2163 _itemRepository.SaveItems(items, cancellationToken);
2164
2165 if (parent is Folder folder)
2166 {
2167 folder.Children = null;
2168 folder.UserData = null;
2169 }
2170
2171 if (ItemUpdated is not null)
2172 {
2173 foreach (var item in items)
2174 {
2175 // With the live tv guide this just creates too much noise
…lines 2176–3376 unchanged (1201 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 (+294 nodes collapsed)
method_declaration
modifier
public "public"
predefined_type "void"
identifier "DeleteItem"
parameter_list
( "("
parameter
identifier "BaseItem"
identifier "item"
, ","
parameter
identifier "DeleteOptions"
identifier "options"
, ","
parameter
identifier "BaseItem"
identifier "parent"
, ","
parameter
predefined_type "bool"
identifier "notifyParentItem"
) ")"
block
{ "{"
expression_statement
invocation_expression
member_access_expression
identifier "ArgumentNullException"
. "."
identifier "ThrowIfNull"
argument_list
( "("
argument
identifier "item"
) ")"
; ";"
if_statement (+82 nodes collapsed)
if_statement (+132 nodes collapsed)
local_declaration_statement (+36 nodes collapsed)
foreach_statement (+144 nodes collapsed)
if_statement (+82 nodes collapsed)
expression_statement
invocation_expression
member_access_expression
identifier "item"
. "."
identifier "SetParent"
argument_list
( "("
argument
null_literal "null"
) ")"
; ";"
expression_statement (+40 nodes collapsed)
expression_statement
invocation_expression
member_access_expression
identifier "_cache"
. "."
identifier "TryRemove"
argument_list
( "("
argument
member_access_expression
identifier "item"
. "."
identifier "Id"
, ","
argument
out "out"
identifier "_"
) ")"
; ";"
foreach_statement (+31 nodes collapsed)
expression_statement
invocation_expression
identifier "ReportItemRemoved"
argument_list
( "("
argument
identifier "item"
, ","
argument
identifier "parent"
) ")"
; ";"
} "}"
method_declaration (+325 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 (+498 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 (+43 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 (+393 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 (+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
modifier
public "public"
predefined_type "void"
identifier "CreateItems"
parameter_list (+21 nodes collapsed)
block
{ "{"
expression_statement
invocation_expression
member_access_expression
identifier "_itemRepository"
. "."
identifier "SaveItems"
argument_list
( "("
argument
identifier "items"
, ","
argument
identifier "cancellationToken"
) ")"
; ";"
foreach_statement (+21 nodes collapsed)
if_statement (+116 nodes collapsed)
} "}"
method_declaration (+186 nodes collapsed)
comment "/// <inheritdoc />"
method_declaration (+697 nodes collapsed)
comment "/// <inheritdoc />"
method_declaration
modifier
public "public"
modifier
async "async"
identifier "Task"
identifier "UpdateItemsAsync"
parameter_list (+23 nodes collapsed)
block
{ "{"
foreach_statement (+61 nodes collapsed)
expression_statement
invocation_expression
member_access_expression
identifier "_itemRepository"
. "."
identifier "SaveItems"
argument_list
( "("
argument
identifier "items"
, ","
argument
identifier "cancellationToken"
) ")"
; ";"
if_statement (+111 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 (+552 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 (+294 nodes collapsed)
method_declaration
modifier
public "public"
predefined_type "void"
identifier "DeleteItem"
parameter_list
( "("
parameter
identifier "BaseItem"
identifier "item"
, ","
parameter
identifier "DeleteOptions"
identifier "options"
, ","
parameter
identifier "BaseItem"
identifier "parent"
, ","
parameter
predefined_type "bool"
identifier "notifyParentItem"
) ")"
block
{ "{"
expression_statement
invocation_expression
member_access_expression
identifier "ArgumentNullException"
. "."
identifier "ThrowIfNull"
argument_list
( "("
argument
identifier "item"
) ")"
; ";"
if_statement (+82 nodes collapsed)
if_statement (+132 nodes collapsed)
local_declaration_statement (+36 nodes collapsed)
foreach_statement (+144 nodes collapsed)
if_statement (+82 nodes collapsed)
expression_statement
invocation_expression
member_access_expression
identifier "item"
. "."
identifier "SetParent"
argument_list
( "("
argument
null_literal "null"
) ")"
; ";"
expression_statement (+40 nodes collapsed)
expression_statement
invocation_expression
member_access_expression
identifier "_cache"
. "."
identifier "TryRemove"
argument_list
( "("
argument
member_access_expression
identifier "item"
. "."
identifier "Id"
, ","
argument
out "out"
identifier "_"
) ")"
; ";"
foreach_statement (+31 nodes collapsed)
if_statement
if "if"
( "("
is_pattern_expression
identifier "parent"
is "is"
declaration_pattern
identifier "Folder"
identifier "folder"
) ")"
block
{ "{"
expression_statement
assignment_expression
member_access_expression
identifier "folder"
. "."
identifier "Children"
= "="
null_literal "null"
; ";"
expression_statement
assignment_expression
member_access_expression
identifier "folder"
. "."
identifier "UserData"
= "="
null_literal "null"
; ";"
} "}"
expression_statement
invocation_expression
identifier "ReportItemRemoved"
argument_list
( "("
argument
identifier "item"
, ","
argument
identifier "parent"
) ")"
; ";"
} "}"
method_declaration (+325 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 (+498 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 (+43 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 (+393 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 (+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
modifier
public "public"
predefined_type "void"
identifier "CreateItems"
parameter_list (+21 nodes collapsed)
block
{ "{"
expression_statement
invocation_expression
member_access_expression
identifier "_itemRepository"
. "."
identifier "SaveItems"
argument_list
( "("
argument
identifier "items"
, ","
argument
identifier "cancellationToken"
) ")"
; ";"
foreach_statement (+21 nodes collapsed)
if_statement
if "if"
( "("
is_pattern_expression
identifier "parent"
is "is"
declaration_pattern
identifier "Folder"
identifier "folder"
) ")"
block
{ "{"
expression_statement
assignment_expression
member_access_expression
identifier "folder"
. "."
identifier "Children"
= "="
null_literal "null"
; ";"
expression_statement
assignment_expression
member_access_expression
identifier "folder"
. "."
identifier "UserData"
= "="
null_literal "null"
; ";"
} "}"
if_statement (+116 nodes collapsed)
} "}"
method_declaration (+186 nodes collapsed)
comment "/// <inheritdoc />"
method_declaration (+697 nodes collapsed)
comment "/// <inheritdoc />"
method_declaration
modifier
public "public"
modifier
async "async"
identifier "Task"
identifier "UpdateItemsAsync"
parameter_list (+23 nodes collapsed)
block
{ "{"
foreach_statement (+61 nodes collapsed)
expression_statement
invocation_expression
member_access_expression
identifier "_itemRepository"
. "."
identifier "SaveItems"
argument_list
( "("
argument
identifier "items"
, ","
argument
identifier "cancellationToken"
) ")"
; ";"
if_statement
if "if"
( "("
is_pattern_expression
identifier "parent"
is "is"
declaration_pattern
identifier "Folder"
identifier "folder"
) ")"
block
{ "{"
expression_statement
assignment_expression
member_access_expression
identifier "folder"
. "."
identifier "Children"
= "="
null_literal "null"
; ";"
expression_statement
assignment_expression
member_access_expression
identifier "folder"
. "."
identifier "UserData"
= "="
null_literal "null"
; ";"
} "}"
if_statement (+111 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 (+552 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)
} "}"
} "}"