| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 | 
							- using MediaBrowser.Model.Events;
 
- using MediaBrowser.Model.FileOrganization;
 
- using MediaBrowser.Model.Querying;
 
- using System;
 
- using System.Threading;
 
- using System.Threading.Tasks;
 
- namespace MediaBrowser.Controller.FileOrganization
 
- {
 
-     public interface IFileOrganizationService
 
-     {
 
-         event EventHandler<GenericEventArgs<FileOrganizationResult>> ItemAdded;
 
-         event EventHandler<GenericEventArgs<FileOrganizationResult>> ItemUpdated;
 
-         event EventHandler<GenericEventArgs<FileOrganizationResult>> ItemRemoved;
 
-         event EventHandler LogReset;
 
-         /// <summary>
 
-         /// Processes the new files.
 
-         /// </summary>
 
-         void BeginProcessNewFiles();
 
-         /// <summary>
 
-         /// Deletes the original file.
 
-         /// </summary>
 
-         /// <param name="resultId">The result identifier.</param>
 
-         /// <returns>Task.</returns>
 
-         Task DeleteOriginalFile(string resultId);
 
-         /// <summary>
 
-         /// Clears the log.
 
-         /// </summary>
 
-         /// <returns>Task.</returns>
 
-         Task ClearLog();
 
-         
 
-         /// <summary>
 
-         /// Performs the organization.
 
-         /// </summary>
 
-         /// <param name="resultId">The result identifier.</param>
 
-         /// <returns>Task.</returns>
 
-         Task PerformOrganization(string resultId);
 
-         /// <summary>
 
-         /// Performs the episode organization.
 
-         /// </summary>
 
-         /// <param name="request">The request.</param>
 
-         /// <returns>Task.</returns>
 
-         Task PerformEpisodeOrganization(EpisodeFileOrganizationRequest request);
 
-         
 
-         /// <summary>
 
-         /// Gets the results.
 
-         /// </summary>
 
-         /// <param name="query">The query.</param>
 
-         /// <returns>IEnumerable{FileOrganizationResult}.</returns>
 
-         QueryResult<FileOrganizationResult> GetResults(FileOrganizationResultQuery query);
 
-         /// <summary>
 
-         /// Gets the result.
 
-         /// </summary>
 
-         /// <param name="id">The identifier.</param>
 
-         /// <returns>FileOrganizationResult.</returns>
 
-         FileOrganizationResult GetResult(string id);
 
-         /// <summary>
 
-         /// Gets the result by source path.
 
-         /// </summary>
 
-         /// <param name="path">The path.</param>
 
-         /// <returns>FileOrganizationResult.</returns>
 
-         FileOrganizationResult GetResultBySourcePath(string path);
 
-         
 
-         /// <summary>
 
-         /// Saves the result.
 
-         /// </summary>
 
-         /// <param name="result">The result.</param>
 
-         /// <param name="cancellationToken">The cancellation token.</param>
 
-         /// <returns>Task.</returns>
 
-         Task SaveResult(FileOrganizationResult result, CancellationToken cancellationToken);
 
-         /// <summary>
 
-         /// Returns a list of smart match entries
 
-         /// </summary>
 
-         /// <param name="query">The query.</param>
 
-         /// <returns>IEnumerable{SmartMatchInfo}.</returns>
 
-         QueryResult<SmartMatchInfo> GetSmartMatchInfos(FileOrganizationResultQuery query);
 
-         /// <summary>
 
-         /// Deletes a smart match entry.
 
-         /// </summary>
 
-         /// <param name="ItemName">Item name.</param>
 
-         /// <param name="matchString">The match string to delete.</param>
 
-         void DeleteSmartMatchEntry(string ItemName, string matchString);
 
-         /// <summary>
 
-         /// Attempts to add a an item to the list of currently processed items.
 
-         /// </summary>
 
-         /// <param name="result">The result item.</param>
 
-         /// <param name="fullClientRefresh">Passing true will notify the client to reload all items, otherwise only a single item will be refreshed.</param>
 
-         /// <returns>True if the item was added, False if the item is already contained in the list.</returns>
 
-         bool AddToInProgressList(FileOrganizationResult result, bool fullClientRefresh);
 
-         /// <summary>
 
-         /// Removes an item from the list of currently processed items.
 
-         /// </summary>
 
-         /// <param name="result">The result item.</param>
 
-         /// <returns>True if the item was removed, False if the item was not contained in the list.</returns>
 
-         bool RemoveFromInprogressList(FileOrganizationResult result);
 
-     }
 
- }
 
 
  |