diff --git a/.editorconfig b/.editorconfig
index 5f04c144..01763e5f 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -1,7 +1,7 @@
root = true
[*]
-charset = us-ascii
+charset = utf-8
end_of_line = lf
trim_trailing_whitespace = true
insert_final_newline = true
diff --git a/Kyoo.Abstractions/Controllers/IRepository.cs b/Kyoo.Abstractions/Controllers/IRepository.cs
index 60cd6343..db3e73f5 100644
--- a/Kyoo.Abstractions/Controllers/IRepository.cs
+++ b/Kyoo.Abstractions/Controllers/IRepository.cs
@@ -248,6 +248,7 @@ namespace Kyoo.Abstractions.Controllers
///
/// The ID of the resource
/// If the item is not found
+ /// A representing the asynchronous operation.
Task Delete(int id);
///
@@ -255,6 +256,7 @@ namespace Kyoo.Abstractions.Controllers
///
/// The slug of the resource
/// If the item is not found
+ /// A representing the asynchronous operation.
Task Delete(string slug);
///
@@ -262,6 +264,7 @@ namespace Kyoo.Abstractions.Controllers
///
/// The resource to delete
/// If the item is not found
+ /// A representing the asynchronous operation.
Task Delete([NotNull] T obj);
///
@@ -269,6 +272,7 @@ namespace Kyoo.Abstractions.Controllers
///
/// A predicate to filter resources to delete. Every resource that match this will be deleted.
/// If the item is not found
+ /// A representing the asynchronous operation.
Task DeleteAll([NotNull] Expression> where);
}
@@ -284,6 +288,7 @@ namespace Kyoo.Abstractions.Controllers
/// The ID of the show
/// The ID of the library (optional)
/// The ID of the collection (optional)
+ /// A representing the asynchronous operation.
Task AddShowLink(int showID, int? libraryID, int? collectionID);
///
@@ -624,7 +629,8 @@ namespace Kyoo.Abstractions.Controllers
Task> GetMetadataID([Optional] Expression> where,
Expression> sort,
Pagination limit = default
- ) where T : class, IMetadata
+ )
+ where T : class, IMetadata
=> GetMetadataID(where, new Sort(sort), limit);
}
diff --git a/Kyoo.Abstractions/Controllers/ITask.cs b/Kyoo.Abstractions/Controllers/ITask.cs
index b6d33fc5..17f5d66a 100644
--- a/Kyoo.Abstractions/Controllers/ITask.cs
+++ b/Kyoo.Abstractions/Controllers/ITask.cs
@@ -9,6 +9,43 @@ using Kyoo.Abstractions.Models.Exceptions;
namespace Kyoo.Abstractions.Controllers
{
+ ///
+ /// A common interface that tasks should implement.
+ ///
+ public interface ITask
+ {
+ ///
+ /// The list of parameters
+ ///
+ ///
+ /// All parameters that this task as. Every one of them will be given to the run function with a value.
+ ///
+ public TaskParameters GetParameters();
+
+ ///
+ /// Start this task.
+ ///
+ ///
+ /// The list of parameters.
+ ///
+ ///
+ /// The progress reporter. Used to inform the sender the percentage of completion of this task
+ /// .
+ /// A token to request the task's cancellation.
+ /// If this task is not cancelled quickly, it might be killed by the runner.
+ ///
+ ///
+ /// An exception meaning that the task has failed for handled reasons like invalid arguments,
+ /// invalid environment, missing plugins or failures not related to a default in the code.
+ /// This exception allow the task to display a failure message to the end user while others exceptions
+ /// will be displayed as unhandled exceptions and display a stack trace.
+ ///
+ /// A representing the asynchronous operation.
+ public Task Run([NotNull] TaskParameters arguments,
+ [NotNull] IProgress progress,
+ CancellationToken cancellationToken);
+ }
+
///
/// A single task parameter. This struct contains metadata to display and utility functions to get them in the task.
///
@@ -43,7 +80,7 @@ namespace Kyoo.Abstractions.Controllers
///
/// The value of the parameter.
///
- private object Value { get; init; }
+ private object _Value { get; init; }
///
/// Create a new task parameter.
@@ -93,7 +130,7 @@ namespace Kyoo.Abstractions.Controllers
{
Name = name,
Type = typeof(T),
- Value = value
+ _Value = value
};
}
@@ -104,7 +141,7 @@ namespace Kyoo.Abstractions.Controllers
/// A new parameter's value for this current parameter
public TaskParameter CreateValue(object value)
{
- return this with { Value = value };
+ return this with { _Value = value };
}
///
@@ -115,9 +152,9 @@ namespace Kyoo.Abstractions.Controllers
public T As()
{
if (typeof(T) == typeof(object))
- return (T)Value;
+ return (T)_Value;
- if (Value is IResource resource)
+ if (_Value is IResource resource)
{
if (typeof(T) == typeof(string))
return (T)(object)resource.Slug;
@@ -125,7 +162,7 @@ namespace Kyoo.Abstractions.Controllers
return (T)(object)resource.ID;
}
- return (T)Convert.ChangeType(Value, typeof(T));
+ return (T)Convert.ChangeType(_Value, typeof(T));
}
}
@@ -146,7 +183,7 @@ namespace Kyoo.Abstractions.Controllers
public TaskParameters() { }
///
- /// Create a with an initial parameters content
+ /// Create a with an initial parameters content.
///
/// The list of parameters
public TaskParameters(IEnumerable parameters)
@@ -154,40 +191,4 @@ namespace Kyoo.Abstractions.Controllers
AddRange(parameters);
}
}
-
- ///
- /// A common interface that tasks should implement.
- ///
- public interface ITask
- {
- ///
- /// The list of parameters
- ///
- ///
- /// All parameters that this task as. Every one of them will be given to the run function with a value.
- ///
- public TaskParameters GetParameters();
-
- ///
- /// Start this task.
- ///
- ///
- /// The list of parameters.
- ///
- ///
- /// The progress reporter. Used to inform the sender the percentage of completion of this task
- /// .
- /// A token to request the task's cancellation.
- /// If this task is not cancelled quickly, it might be killed by the runner.
- ///
- ///
- /// An exception meaning that the task has failed for handled reasons like invalid arguments,
- /// invalid environment, missing plugins or failures not related to a default in the code.
- /// This exception allow the task to display a failure message to the end user while others exceptions
- /// will be displayed as unhandled exceptions and display a stack trace.
- ///
- public Task Run([NotNull] TaskParameters arguments,
- [NotNull] IProgress progress,
- CancellationToken cancellationToken);
- }
}
diff --git a/Kyoo.Abstractions/Controllers/ITaskManager.cs b/Kyoo.Abstractions/Controllers/ITaskManager.cs
index 01eaeb19..acce9286 100644
--- a/Kyoo.Abstractions/Controllers/ITaskManager.cs
+++ b/Kyoo.Abstractions/Controllers/ITaskManager.cs
@@ -79,4 +79,4 @@ namespace Kyoo.Abstractions.Controllers
/// A list of every tasks that this instance know.
ICollection GetAllTasks();
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Abstractions/Controllers/StartupAction.cs b/Kyoo.Abstractions/Controllers/StartupAction.cs
index f2f52866..dda1780e 100644
--- a/Kyoo.Abstractions/Controllers/StartupAction.cs
+++ b/Kyoo.Abstractions/Controllers/StartupAction.cs
@@ -217,4 +217,4 @@ namespace Kyoo.Abstractions.Controllers
);
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Abstractions/Models/AsyncRef.cs b/Kyoo.Abstractions/Models/AsyncRef.cs
index 26885f56..d34ab0d9 100644
--- a/Kyoo.Abstractions/Models/AsyncRef.cs
+++ b/Kyoo.Abstractions/Models/AsyncRef.cs
@@ -14,4 +14,4 @@ namespace Kyoo.Abstractions.Models
///
public T Value { get; set; }
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Abstractions/Models/Attributes/ComputedAttribute.cs b/Kyoo.Abstractions/Models/Attributes/ComputedAttribute.cs
index dbdfa09b..7910ad71 100644
--- a/Kyoo.Abstractions/Models/Attributes/ComputedAttribute.cs
+++ b/Kyoo.Abstractions/Models/Attributes/ComputedAttribute.cs
@@ -7,4 +7,4 @@ namespace Kyoo.Abstractions.Models.Attributes
///
[AttributeUsage(AttributeTargets.Property)]
public class ComputedAttribute : NotMergeableAttribute { }
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Abstractions/Models/Attributes/FileSystemMetadataAttribute.cs b/Kyoo.Abstractions/Models/Attributes/FileSystemMetadataAttribute.cs
index 1303ab60..8a6ebda1 100644
--- a/Kyoo.Abstractions/Models/Attributes/FileSystemMetadataAttribute.cs
+++ b/Kyoo.Abstractions/Models/Attributes/FileSystemMetadataAttribute.cs
@@ -49,4 +49,4 @@ namespace Kyoo.Abstractions.Models.Attributes
StripScheme = (bool)metadata[nameof(StripScheme)];
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Abstractions/Models/Attributes/MergeAttributes.cs b/Kyoo.Abstractions/Models/Attributes/MergeAttributes.cs
index 1cfc8e13..c01f9396 100644
--- a/Kyoo.Abstractions/Models/Attributes/MergeAttributes.cs
+++ b/Kyoo.Abstractions/Models/Attributes/MergeAttributes.cs
@@ -19,4 +19,4 @@ namespace Kyoo.Abstractions.Models.Attributes
/// The object that has been merged with this.
void OnMerge(object merged);
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Abstractions/Models/Attributes/RelationAttributes.cs b/Kyoo.Abstractions/Models/Attributes/RelationAttributes.cs
index 31b5fa87..d8d2c0ec 100644
--- a/Kyoo.Abstractions/Models/Attributes/RelationAttributes.cs
+++ b/Kyoo.Abstractions/Models/Attributes/RelationAttributes.cs
@@ -34,4 +34,4 @@ namespace Kyoo.Abstractions.Models.Attributes
RelationID = relationID;
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Abstractions/Models/Attributes/SerializeAttribute.cs b/Kyoo.Abstractions/Models/Attributes/SerializeAttribute.cs
index ae3f3f16..4bed3ab6 100644
--- a/Kyoo.Abstractions/Models/Attributes/SerializeAttribute.cs
+++ b/Kyoo.Abstractions/Models/Attributes/SerializeAttribute.cs
@@ -42,4 +42,4 @@ namespace Kyoo.Abstractions.Models.Attributes
Format = format;
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Abstractions/Models/Attributes/TaskMetadataAttribute.cs b/Kyoo.Abstractions/Models/Attributes/TaskMetadataAttribute.cs
index 55ff7cf3..1f5e6db5 100644
--- a/Kyoo.Abstractions/Models/Attributes/TaskMetadataAttribute.cs
+++ b/Kyoo.Abstractions/Models/Attributes/TaskMetadataAttribute.cs
@@ -73,4 +73,4 @@ namespace Kyoo.Abstractions.Models.Attributes
IsHidden = (bool)metadata[nameof(IsHidden)];
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Abstractions/Models/ConfigurationReference.cs b/Kyoo.Abstractions/Models/ConfigurationReference.cs
index 39842543..b6a488e5 100644
--- a/Kyoo.Abstractions/Models/ConfigurationReference.cs
+++ b/Kyoo.Abstractions/Models/ConfigurationReference.cs
@@ -92,4 +92,4 @@ namespace Kyoo.Abstractions.Models
return new(path, null);
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Abstractions/Models/Exceptions/DuplicatedItemException.cs b/Kyoo.Abstractions/Models/Exceptions/DuplicatedItemException.cs
index 539fbe27..74ceb38c 100644
--- a/Kyoo.Abstractions/Models/Exceptions/DuplicatedItemException.cs
+++ b/Kyoo.Abstractions/Models/Exceptions/DuplicatedItemException.cs
@@ -33,4 +33,4 @@ namespace Kyoo.Abstractions.Models.Exceptions
: base(info, context)
{ }
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Abstractions/Models/Exceptions/TaskFailedException.cs b/Kyoo.Abstractions/Models/Exceptions/TaskFailedException.cs
index 7bac57e3..be032386 100644
--- a/Kyoo.Abstractions/Models/Exceptions/TaskFailedException.cs
+++ b/Kyoo.Abstractions/Models/Exceptions/TaskFailedException.cs
@@ -42,4 +42,4 @@ namespace Kyoo.Abstractions.Models.Exceptions
: base(info, context)
{ }
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Abstractions/Models/LibraryItem.cs b/Kyoo.Abstractions/Models/LibraryItem.cs
index 5b8e9ee5..00302bf4 100644
--- a/Kyoo.Abstractions/Models/LibraryItem.cs
+++ b/Kyoo.Abstractions/Models/LibraryItem.cs
@@ -141,4 +141,4 @@ namespace Kyoo.Abstractions.Models
Type = ItemType.Collection
};
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Abstractions/Models/MetadataID.cs b/Kyoo.Abstractions/Models/MetadataID.cs
index 5cdf08ea..87c71bfd 100644
--- a/Kyoo.Abstractions/Models/MetadataID.cs
+++ b/Kyoo.Abstractions/Models/MetadataID.cs
@@ -42,4 +42,4 @@ namespace Kyoo.Abstractions.Models
get { return x => new { First = x.ResourceID, Second = x.ProviderID }; }
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Abstractions/Models/Page.cs b/Kyoo.Abstractions/Models/Page.cs
index dd3cc4e3..710f5a49 100644
--- a/Kyoo.Abstractions/Models/Page.cs
+++ b/Kyoo.Abstractions/Models/Page.cs
@@ -76,4 +76,4 @@ namespace Kyoo.Abstractions.Models
First = new Uri(url + query.ToQueryString());
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Abstractions/Models/PeopleRole.cs b/Kyoo.Abstractions/Models/PeopleRole.cs
index b552a622..f959883a 100644
--- a/Kyoo.Abstractions/Models/PeopleRole.cs
+++ b/Kyoo.Abstractions/Models/PeopleRole.cs
@@ -54,4 +54,4 @@ namespace Kyoo.Abstractions.Models
///
public string Role { get; set; }
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Abstractions/Models/Resources/Interfaces/IMetadata.cs b/Kyoo.Abstractions/Models/Resources/Interfaces/IMetadata.cs
index 6f8c9b46..4b37c686 100644
--- a/Kyoo.Abstractions/Models/Resources/Interfaces/IMetadata.cs
+++ b/Kyoo.Abstractions/Models/Resources/Interfaces/IMetadata.cs
@@ -77,4 +77,4 @@ namespace Kyoo.Abstractions.Models
return true;
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Abstractions/Models/Resources/Interfaces/IResource.cs b/Kyoo.Abstractions/Models/Resources/Interfaces/IResource.cs
index c7606d64..b7f03c4c 100644
--- a/Kyoo.Abstractions/Models/Resources/Interfaces/IResource.cs
+++ b/Kyoo.Abstractions/Models/Resources/Interfaces/IResource.cs
@@ -26,4 +26,4 @@ namespace Kyoo.Abstractions.Models
///
public string Slug { get; }
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Abstractions/Models/Resources/Interfaces/IThumbnails.cs b/Kyoo.Abstractions/Models/Resources/Interfaces/IThumbnails.cs
index b693dea9..ef545a69 100644
--- a/Kyoo.Abstractions/Models/Resources/Interfaces/IThumbnails.cs
+++ b/Kyoo.Abstractions/Models/Resources/Interfaces/IThumbnails.cs
@@ -46,4 +46,4 @@ namespace Kyoo.Abstractions.Models
///
public const int Trailer = 3;
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Abstractions/Models/Resources/Provider.cs b/Kyoo.Abstractions/Models/Resources/Provider.cs
index f32fbad0..ff2de000 100644
--- a/Kyoo.Abstractions/Models/Resources/Provider.cs
+++ b/Kyoo.Abstractions/Models/Resources/Provider.cs
@@ -61,4 +61,4 @@ namespace Kyoo.Abstractions.Models
};
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Abstractions/Models/Resources/User.cs b/Kyoo.Abstractions/Models/Resources/User.cs
index cad4fd73..482a579c 100644
--- a/Kyoo.Abstractions/Models/Resources/User.cs
+++ b/Kyoo.Abstractions/Models/Resources/User.cs
@@ -77,4 +77,4 @@ namespace Kyoo.Abstractions.Models
///
public int WatchedPercentage { get; set; }
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Abstractions/Module.cs b/Kyoo.Abstractions/Module.cs
index 442a1070..2a2ef88f 100644
--- a/Kyoo.Abstractions/Module.cs
+++ b/Kyoo.Abstractions/Module.cs
@@ -83,4 +83,4 @@ namespace Kyoo.Abstractions
return configuration["basics:publicUrl"]?.TrimEnd('/') ?? "http://localhost:5000";
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Abstractions/Utility/EnumerableExtensions.cs b/Kyoo.Abstractions/Utility/EnumerableExtensions.cs
index 7b13bc11..51c50c86 100644
--- a/Kyoo.Abstractions/Utility/EnumerableExtensions.cs
+++ b/Kyoo.Abstractions/Utility/EnumerableExtensions.cs
@@ -276,4 +276,4 @@ namespace Kyoo.Utils
yield return ret;
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Abstractions/Utility/MethodOfUtils.cs b/Kyoo.Abstractions/Utility/MethodOfUtils.cs
index 21e65919..462249dd 100644
--- a/Kyoo.Abstractions/Utility/MethodOfUtils.cs
+++ b/Kyoo.Abstractions/Utility/MethodOfUtils.cs
@@ -88,4 +88,4 @@ namespace Kyoo.Utils
return action.Method;
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Abstractions/Utility/TaskUtils.cs b/Kyoo.Abstractions/Utility/TaskUtils.cs
index 91413f2c..79609de4 100644
--- a/Kyoo.Abstractions/Utility/TaskUtils.cs
+++ b/Kyoo.Abstractions/Utility/TaskUtils.cs
@@ -66,4 +66,4 @@ namespace Kyoo.Utils
return value ?? Task.FromResult(default);
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Authentication/Controllers/Certificates.cs b/Kyoo.Authentication/Controllers/Certificates.cs
index 26edbaf1..fa01204d 100644
--- a/Kyoo.Authentication/Controllers/Certificates.cs
+++ b/Kyoo.Authentication/Controllers/Certificates.cs
@@ -117,4 +117,4 @@ namespace Kyoo.Authentication
return certificate;
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Authentication/Controllers/PasswordUtils.cs b/Kyoo.Authentication/Controllers/PasswordUtils.cs
index d28aaa99..ceeb88d0 100644
--- a/Kyoo.Authentication/Controllers/PasswordUtils.cs
+++ b/Kyoo.Authentication/Controllers/PasswordUtils.cs
@@ -51,4 +51,4 @@ namespace Kyoo.Authentication
return hash.SequenceEqual(validHash.Skip(16));
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Authentication/Extensions.cs b/Kyoo.Authentication/Extensions.cs
index 2a6b734b..5e3f42c6 100644
--- a/Kyoo.Authentication/Extensions.cs
+++ b/Kyoo.Authentication/Extensions.cs
@@ -51,4 +51,4 @@ namespace Kyoo.Authentication
return user.Claims.FirstOrDefault(x => x.Type == "permissions")?.Value.Split(',');
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Authentication/Models/DTO/AccountUpdateRequest.cs b/Kyoo.Authentication/Models/DTO/AccountUpdateRequest.cs
index 0ad32d47..8e194a0d 100644
--- a/Kyoo.Authentication/Models/DTO/AccountUpdateRequest.cs
+++ b/Kyoo.Authentication/Models/DTO/AccountUpdateRequest.cs
@@ -25,4 +25,4 @@ namespace Kyoo.Authentication.Models.DTO
///
public IFormFile Picture { get; set; }
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Authentication/Models/DTO/LoginRequest.cs b/Kyoo.Authentication/Models/DTO/LoginRequest.cs
index 14f1badf..13d41df1 100644
--- a/Kyoo.Authentication/Models/DTO/LoginRequest.cs
+++ b/Kyoo.Authentication/Models/DTO/LoginRequest.cs
@@ -25,4 +25,4 @@ namespace Kyoo.Authentication.Models.DTO
///
public string ReturnURL { get; set; }
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Authentication/Models/DTO/OtacRequest.cs b/Kyoo.Authentication/Models/DTO/OtacRequest.cs
index 36eb4e56..47c24b15 100644
--- a/Kyoo.Authentication/Models/DTO/OtacRequest.cs
+++ b/Kyoo.Authentication/Models/DTO/OtacRequest.cs
@@ -15,4 +15,4 @@ namespace Kyoo.Authentication.Models.DTO
///
public bool StayLoggedIn { get; set; }
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Authentication/Models/DTO/RegisterRequest.cs b/Kyoo.Authentication/Models/DTO/RegisterRequest.cs
index bf1d5ce8..fad5fd7a 100644
--- a/Kyoo.Authentication/Models/DTO/RegisterRequest.cs
+++ b/Kyoo.Authentication/Models/DTO/RegisterRequest.cs
@@ -44,4 +44,4 @@ namespace Kyoo.Authentication.Models.DTO
};
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Authentication/Models/IdentityContext.cs b/Kyoo.Authentication/Models/IdentityContext.cs
index 013fa6e5..5422f5e3 100644
--- a/Kyoo.Authentication/Models/IdentityContext.cs
+++ b/Kyoo.Authentication/Models/IdentityContext.cs
@@ -100,4 +100,4 @@ namespace Kyoo.Authentication
};
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Authentication/Models/Options/AuthenticationOption.cs b/Kyoo.Authentication/Models/Options/AuthenticationOption.cs
index df22a323..3b730ad8 100644
--- a/Kyoo.Authentication/Models/Options/AuthenticationOption.cs
+++ b/Kyoo.Authentication/Models/Options/AuthenticationOption.cs
@@ -25,4 +25,4 @@ namespace Kyoo.Authentication.Models
///
public string ProfilePicturePath { get; set; }
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Authentication/Models/Options/CertificateOption.cs b/Kyoo.Authentication/Models/Options/CertificateOption.cs
index 6ffec41c..7efd7411 100644
--- a/Kyoo.Authentication/Models/Options/CertificateOption.cs
+++ b/Kyoo.Authentication/Models/Options/CertificateOption.cs
@@ -25,4 +25,4 @@ namespace Kyoo.Authentication.Models
///
public string Password { get; set; }
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Authentication/Models/Options/PermissionOption.cs b/Kyoo.Authentication/Models/Options/PermissionOption.cs
index f6098110..cf6e09d0 100644
--- a/Kyoo.Authentication/Models/Options/PermissionOption.cs
+++ b/Kyoo.Authentication/Models/Options/PermissionOption.cs
@@ -20,4 +20,4 @@ namespace Kyoo.Authentication.Models
///
public string[] NewUser { get; set; }
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Authentication/Views/AccountApi.cs b/Kyoo.Authentication/Views/AccountApi.cs
index 1574d15e..20996a0c 100644
--- a/Kyoo.Authentication/Views/AccountApi.cs
+++ b/Kyoo.Authentication/Views/AccountApi.cs
@@ -223,4 +223,4 @@ namespace Kyoo.Authentication.Views
return _options.Value.Permissions.Default ?? Array.Empty();
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Core/Controllers/FileSystems/FileSystemComposite.cs b/Kyoo.Core/Controllers/FileSystems/FileSystemComposite.cs
index 84ee1072..3b5578ac 100644
--- a/Kyoo.Core/Controllers/FileSystems/FileSystemComposite.cs
+++ b/Kyoo.Core/Controllers/FileSystems/FileSystemComposite.cs
@@ -197,4 +197,4 @@ namespace Kyoo.Core.Controllers
return await CreateDirectory(path);
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Core/Controllers/FileSystems/HttpFileSystem.cs b/Kyoo.Core/Controllers/FileSystems/HttpFileSystem.cs
index 6a51d443..d4df77dc 100644
--- a/Kyoo.Core/Controllers/FileSystems/HttpFileSystem.cs
+++ b/Kyoo.Core/Controllers/FileSystems/HttpFileSystem.cs
@@ -135,4 +135,4 @@ namespace Kyoo.Core.Controllers
throw new NotImplementedException();
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Core/Controllers/FileSystems/LocalFileSystem.cs b/Kyoo.Core/Controllers/FileSystems/LocalFileSystem.cs
index d70a1f0c..536ac542 100644
--- a/Kyoo.Core/Controllers/FileSystems/LocalFileSystem.cs
+++ b/Kyoo.Core/Controllers/FileSystems/LocalFileSystem.cs
@@ -138,4 +138,4 @@ namespace Kyoo.Core.Controllers
});
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Core/Controllers/PluginManager.cs b/Kyoo.Core/Controllers/PluginManager.cs
index 649bdffa..1e5f020d 100644
--- a/Kyoo.Core/Controllers/PluginManager.cs
+++ b/Kyoo.Core/Controllers/PluginManager.cs
@@ -174,4 +174,4 @@ namespace Kyoo.Core.Controllers
}
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Core/Controllers/RegexIdentifier.cs b/Kyoo.Core/Controllers/RegexIdentifier.cs
index 046fb991..0337d6c0 100644
--- a/Kyoo.Core/Controllers/RegexIdentifier.cs
+++ b/Kyoo.Core/Controllers/RegexIdentifier.cs
@@ -140,4 +140,4 @@ namespace Kyoo.Core.Controllers
});
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Core/Controllers/Repositories/CollectionRepository.cs b/Kyoo.Core/Controllers/Repositories/CollectionRepository.cs
index d10b862c..e38ae6a7 100644
--- a/Kyoo.Core/Controllers/Repositories/CollectionRepository.cs
+++ b/Kyoo.Core/Controllers/Repositories/CollectionRepository.cs
@@ -103,4 +103,4 @@ namespace Kyoo.Core.Controllers
await _database.SaveChangesAsync();
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Core/Controllers/Repositories/GenreRepository.cs b/Kyoo.Core/Controllers/Repositories/GenreRepository.cs
index 1747b6b5..34cac2a2 100644
--- a/Kyoo.Core/Controllers/Repositories/GenreRepository.cs
+++ b/Kyoo.Core/Controllers/Repositories/GenreRepository.cs
@@ -62,4 +62,4 @@ namespace Kyoo.Core.Controllers
await _database.SaveChangesAsync();
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Core/Controllers/Repositories/LibraryItemRepository.cs b/Kyoo.Core/Controllers/Repositories/LibraryItemRepository.cs
index f307b8db..8528b140 100644
--- a/Kyoo.Core/Controllers/Repositories/LibraryItemRepository.cs
+++ b/Kyoo.Core/Controllers/Repositories/LibraryItemRepository.cs
@@ -152,4 +152,4 @@ namespace Kyoo.Core.Controllers
return items;
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Core/Controllers/Repositories/LibraryRepository.cs b/Kyoo.Core/Controllers/Repositories/LibraryRepository.cs
index 38f0e0b7..fd8bea2a 100644
--- a/Kyoo.Core/Controllers/Repositories/LibraryRepository.cs
+++ b/Kyoo.Core/Controllers/Repositories/LibraryRepository.cs
@@ -103,4 +103,4 @@ namespace Kyoo.Core.Controllers
await _database.SaveChangesAsync();
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Core/Controllers/Repositories/LocalRepository.cs b/Kyoo.Core/Controllers/Repositories/LocalRepository.cs
index 79a528aa..b2dcfa62 100644
--- a/Kyoo.Core/Controllers/Repositories/LocalRepository.cs
+++ b/Kyoo.Core/Controllers/Repositories/LocalRepository.cs
@@ -313,4 +313,4 @@ namespace Kyoo.Core.Controllers
await Delete(resource);
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Core/Controllers/Repositories/PeopleRepository.cs b/Kyoo.Core/Controllers/Repositories/PeopleRepository.cs
index 8deb8f76..89ecb709 100644
--- a/Kyoo.Core/Controllers/Repositories/PeopleRepository.cs
+++ b/Kyoo.Core/Controllers/Repositories/PeopleRepository.cs
@@ -209,4 +209,4 @@ namespace Kyoo.Core.Controllers
return roles;
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Core/Controllers/Repositories/ProviderRepository.cs b/Kyoo.Core/Controllers/Repositories/ProviderRepository.cs
index b1dca378..68835f71 100644
--- a/Kyoo.Core/Controllers/Repositories/ProviderRepository.cs
+++ b/Kyoo.Core/Controllers/Repositories/ProviderRepository.cs
@@ -78,4 +78,4 @@ namespace Kyoo.Core.Controllers
limit);
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Core/Controllers/Repositories/ShowRepository.cs b/Kyoo.Core/Controllers/Repositories/ShowRepository.cs
index bb1e98ea..1d0a3a5b 100644
--- a/Kyoo.Core/Controllers/Repositories/ShowRepository.cs
+++ b/Kyoo.Core/Controllers/Repositories/ShowRepository.cs
@@ -196,4 +196,4 @@ namespace Kyoo.Core.Controllers
await _database.SaveChangesAsync();
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Core/Controllers/Repositories/StudioRepository.cs b/Kyoo.Core/Controllers/Repositories/StudioRepository.cs
index 57cf1b95..b6f313be 100644
--- a/Kyoo.Core/Controllers/Repositories/StudioRepository.cs
+++ b/Kyoo.Core/Controllers/Repositories/StudioRepository.cs
@@ -97,4 +97,4 @@ namespace Kyoo.Core.Controllers
await _database.SaveChangesAsync();
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Core/Controllers/Repositories/UserRepository.cs b/Kyoo.Core/Controllers/Repositories/UserRepository.cs
index 0f12145e..6b9c2bc2 100644
--- a/Kyoo.Core/Controllers/Repositories/UserRepository.cs
+++ b/Kyoo.Core/Controllers/Repositories/UserRepository.cs
@@ -62,4 +62,4 @@ namespace Kyoo.Core.Controllers
await _database.SaveChangesAsync();
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Core/Controllers/TaskManager.cs b/Kyoo.Core/Controllers/TaskManager.cs
index 4ba9ee25..962084ff 100644
--- a/Kyoo.Core/Controllers/TaskManager.cs
+++ b/Kyoo.Core/Controllers/TaskManager.cs
@@ -321,4 +321,4 @@ namespace Kyoo.Core.Controllers
return _tasks.Select(x => x.Metadata).ToArray();
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Core/CoreModule.cs b/Kyoo.Core/CoreModule.cs
index d2ec5f66..9dc2528f 100644
--- a/Kyoo.Core/CoreModule.cs
+++ b/Kyoo.Core/CoreModule.cs
@@ -156,4 +156,4 @@ namespace Kyoo.Core
SA.New(app => app.UseEndpoints(x => x.MapControllers()), SA.Endpoint)
};
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Core/Helper.cs b/Kyoo.Core/Helper.cs
index 570e22d6..71f2a1be 100644
--- a/Kyoo.Core/Helper.cs
+++ b/Kyoo.Core/Helper.cs
@@ -23,4 +23,4 @@ namespace Kyoo.Core
return JsonConvert.DeserializeObject(content);
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Core/Models/FileExtensions.cs b/Kyoo.Core/Models/FileExtensions.cs
index b8d9f0ee..e481406b 100644
--- a/Kyoo.Core/Models/FileExtensions.cs
+++ b/Kyoo.Core/Models/FileExtensions.cs
@@ -68,4 +68,4 @@ namespace Kyoo.Core.Models.Watch
return SubtitleExtensions.ContainsKey(Path.GetExtension(filePath));
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Core/Models/Options/BasicOptions.cs b/Kyoo.Core/Models/Options/BasicOptions.cs
index 81dd50df..4355f12e 100644
--- a/Kyoo.Core/Models/Options/BasicOptions.cs
+++ b/Kyoo.Core/Models/Options/BasicOptions.cs
@@ -55,4 +55,4 @@ namespace Kyoo.Core.Models.Options
///
public string MetadataPath { get; set; } = "metadata/";
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Core/Models/Options/MediaOptions.cs b/Kyoo.Core/Models/Options/MediaOptions.cs
index 9f2aba26..3224d2e4 100644
--- a/Kyoo.Core/Models/Options/MediaOptions.cs
+++ b/Kyoo.Core/Models/Options/MediaOptions.cs
@@ -20,4 +20,4 @@ namespace Kyoo.Core.Models.Options
///
public string[] SubtitleRegex { get; set; }
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Core/Models/Options/TaskOptions.cs b/Kyoo.Core/Models/Options/TaskOptions.cs
index abd49a1a..01e2c6e3 100644
--- a/Kyoo.Core/Models/Options/TaskOptions.cs
+++ b/Kyoo.Core/Models/Options/TaskOptions.cs
@@ -25,4 +25,4 @@ namespace Kyoo.Core.Models.Options
[UsedImplicitly]
public Dictionary Scheduled { get; set; } = new();
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Core/Models/Stream.cs b/Kyoo.Core/Models/Stream.cs
index 5d1a25dc..6d7e927a 100644
--- a/Kyoo.Core/Models/Stream.cs
+++ b/Kyoo.Core/Models/Stream.cs
@@ -64,4 +64,4 @@ namespace Kyoo.Core.Models.Watch
};
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Core/Tasks/ExtractMetadata.cs b/Kyoo.Core/Tasks/ExtractMetadata.cs
index d3e339cb..f1b56a22 100644
--- a/Kyoo.Core/Tasks/ExtractMetadata.cs
+++ b/Kyoo.Core/Tasks/ExtractMetadata.cs
@@ -117,4 +117,4 @@
// return null;
// }
// }
-// }
\ No newline at end of file
+// }
diff --git a/Kyoo.Core/Tasks/Housekeeping.cs b/Kyoo.Core/Tasks/Housekeeping.cs
index 43d6a585..544e54ce 100644
--- a/Kyoo.Core/Tasks/Housekeeping.cs
+++ b/Kyoo.Core/Tasks/Housekeeping.cs
@@ -82,4 +82,4 @@ namespace Kyoo.Core.Tasks
progress.Report(100);
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Core/Tasks/MetadataProviderLoader.cs b/Kyoo.Core/Tasks/MetadataProviderLoader.cs
index 88f0a255..5def6702 100644
--- a/Kyoo.Core/Tasks/MetadataProviderLoader.cs
+++ b/Kyoo.Core/Tasks/MetadataProviderLoader.cs
@@ -75,4 +75,4 @@ namespace Kyoo.Core.Tasks
progress.Report(100);
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Core/Tasks/PluginInitializer.cs b/Kyoo.Core/Tasks/PluginInitializer.cs
index 0694671d..33a5447c 100644
--- a/Kyoo.Core/Tasks/PluginInitializer.cs
+++ b/Kyoo.Core/Tasks/PluginInitializer.cs
@@ -60,4 +60,4 @@ namespace Kyoo.Core.Tasks
return Task.CompletedTask;
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Core/Tasks/ReScan.cs b/Kyoo.Core/Tasks/ReScan.cs
index a4a62786..8e8fedb5 100644
--- a/Kyoo.Core/Tasks/ReScan.cs
+++ b/Kyoo.Core/Tasks/ReScan.cs
@@ -124,4 +124,4 @@
// return null;
// }
// }
-// }
\ No newline at end of file
+// }
diff --git a/Kyoo.Core/Tasks/RegisterEpisode.cs b/Kyoo.Core/Tasks/RegisterEpisode.cs
index 21b62321..656322a6 100644
--- a/Kyoo.Core/Tasks/RegisterEpisode.cs
+++ b/Kyoo.Core/Tasks/RegisterEpisode.cs
@@ -191,4 +191,4 @@ namespace Kyoo.Core.Tasks
return await _libraryManager.CreateIfNotExists(item);
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Core/Tasks/RegisterSubtitle.cs b/Kyoo.Core/Tasks/RegisterSubtitle.cs
index 1b598d46..a3f3b408 100644
--- a/Kyoo.Core/Tasks/RegisterSubtitle.cs
+++ b/Kyoo.Core/Tasks/RegisterSubtitle.cs
@@ -81,4 +81,4 @@ namespace Kyoo.Core.Tasks
}
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Core/Views/CollectionApi.cs b/Kyoo.Core/Views/CollectionApi.cs
index e195ce48..77de65e9 100644
--- a/Kyoo.Core/Views/CollectionApi.cs
+++ b/Kyoo.Core/Views/CollectionApi.cs
@@ -180,4 +180,4 @@ namespace Kyoo.Core.Api
}
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Core/Views/ConfigurationApi.cs b/Kyoo.Core/Views/ConfigurationApi.cs
index 0b20df11..8c1a689d 100644
--- a/Kyoo.Core/Views/ConfigurationApi.cs
+++ b/Kyoo.Core/Views/ConfigurationApi.cs
@@ -77,4 +77,4 @@ namespace Kyoo.Core.Api
}
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Core/Views/GenreApi.cs b/Kyoo.Core/Views/GenreApi.cs
index aa74aded..67f8d8e9 100644
--- a/Kyoo.Core/Views/GenreApi.cs
+++ b/Kyoo.Core/Views/GenreApi.cs
@@ -77,4 +77,4 @@ namespace Kyoo.Core.Api
}
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Core/Views/Helper/ApiHelper.cs b/Kyoo.Core/Views/Helper/ApiHelper.cs
index 35d9cd88..f471cee8 100644
--- a/Kyoo.Core/Views/Helper/ApiHelper.cs
+++ b/Kyoo.Core/Views/Helper/ApiHelper.cs
@@ -134,4 +134,4 @@ namespace Kyoo.Core.Api
return ret;
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Core/Views/Helper/CrudApi.cs b/Kyoo.Core/Views/Helper/CrudApi.cs
index 9a64bb14..4838be44 100644
--- a/Kyoo.Core/Views/Helper/CrudApi.cs
+++ b/Kyoo.Core/Views/Helper/CrudApi.cs
@@ -203,4 +203,4 @@ namespace Kyoo.Core.Api
return Ok();
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Core/Views/Helper/JsonSerializer.cs b/Kyoo.Core/Views/Helper/JsonSerializer.cs
index 1cd78e05..e35551fa 100644
--- a/Kyoo.Core/Views/Helper/JsonSerializer.cs
+++ b/Kyoo.Core/Views/Helper/JsonSerializer.cs
@@ -153,4 +153,4 @@ namespace Kyoo.Core.Api
// Values are ignored and should not be editable, except if the internal value is set.
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Core/Views/Helper/ResourceViewAttribute.cs b/Kyoo.Core/Views/Helper/ResourceViewAttribute.cs
index 951b402e..6a89c8d8 100644
--- a/Kyoo.Core/Views/Helper/ResourceViewAttribute.cs
+++ b/Kyoo.Core/Views/Helper/ResourceViewAttribute.cs
@@ -105,4 +105,4 @@ namespace Kyoo.Core.Api
}
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Core/Views/LibraryItemApi.cs b/Kyoo.Core/Views/LibraryItemApi.cs
index 61014616..718b108e 100644
--- a/Kyoo.Core/Views/LibraryItemApi.cs
+++ b/Kyoo.Core/Views/LibraryItemApi.cs
@@ -56,4 +56,4 @@ namespace Kyoo.Core.Api
}
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Core/Views/PeopleApi.cs b/Kyoo.Core/Views/PeopleApi.cs
index 508229fd..6b70c21d 100644
--- a/Kyoo.Core/Views/PeopleApi.cs
+++ b/Kyoo.Core/Views/PeopleApi.cs
@@ -105,4 +105,4 @@ namespace Kyoo.Core.Api
return _files.FileResult(await _thumbs.GetImagePath(people, Images.Poster));
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Core/Views/ProviderApi.cs b/Kyoo.Core/Views/ProviderApi.cs
index 1e6a297c..2e88e276 100644
--- a/Kyoo.Core/Views/ProviderApi.cs
+++ b/Kyoo.Core/Views/ProviderApi.cs
@@ -47,4 +47,4 @@ namespace Kyoo.Core.Api
return _files.FileResult(await _thumbnails.GetImagePath(provider, Images.Logo));
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Core/Views/SearchApi.cs b/Kyoo.Core/Views/SearchApi.cs
index ce65c861..102d9979 100644
--- a/Kyoo.Core/Views/SearchApi.cs
+++ b/Kyoo.Core/Views/SearchApi.cs
@@ -86,4 +86,4 @@ namespace Kyoo.Core.Api
return _libraryManager.Search(query);
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Core/Views/StudioApi.cs b/Kyoo.Core/Views/StudioApi.cs
index 453c8ba2..197edc02 100644
--- a/Kyoo.Core/Views/StudioApi.cs
+++ b/Kyoo.Core/Views/StudioApi.cs
@@ -77,4 +77,4 @@ namespace Kyoo.Core.Api
}
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Core/Views/TrackApi.cs b/Kyoo.Core/Views/TrackApi.cs
index 4127f3ba..92dadc83 100644
--- a/Kyoo.Core/Views/TrackApi.cs
+++ b/Kyoo.Core/Views/TrackApi.cs
@@ -52,4 +52,4 @@ namespace Kyoo.Core.Api
}
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Database/Extensions.cs b/Kyoo.Database/Extensions.cs
index b8396294..33f2c3d9 100644
--- a/Kyoo.Database/Extensions.cs
+++ b/Kyoo.Database/Extensions.cs
@@ -33,4 +33,4 @@ namespace Kyoo.Database
return config.GetValue("database:enabled");
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Postgresql/Migrations/20210801171641_Triggers.cs b/Kyoo.Postgresql/Migrations/20210801171641_Triggers.cs
index 9d7bd2e5..01a5a3a7 100644
--- a/Kyoo.Postgresql/Migrations/20210801171641_Triggers.cs
+++ b/Kyoo.Postgresql/Migrations/20210801171641_Triggers.cs
@@ -180,4 +180,4 @@ namespace Kyoo.Postgresql.Migrations
migrationBuilder.Sql(@"DROP VIEW library_items;");
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Postgresql/PostgresContext.cs b/Kyoo.Postgresql/PostgresContext.cs
index a6a5b679..a7552b72 100644
--- a/Kyoo.Postgresql/PostgresContext.cs
+++ b/Kyoo.Postgresql/PostgresContext.cs
@@ -166,4 +166,4 @@ namespace Kyoo.Postgresql
return Expression.Lambda>(call, query.Parameters);
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.Postgresql/PostgresModule.cs b/Kyoo.Postgresql/PostgresModule.cs
index ebda866c..5c5f50e9 100644
--- a/Kyoo.Postgresql/PostgresModule.cs
+++ b/Kyoo.Postgresql/PostgresModule.cs
@@ -74,4 +74,4 @@ namespace Kyoo.Postgresql
conn.ReloadTypes();
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.SqLite/Migrations/20210801171544_Triggers.cs b/Kyoo.SqLite/Migrations/20210801171544_Triggers.cs
index dfe24c54..a872dbed 100644
--- a/Kyoo.SqLite/Migrations/20210801171544_Triggers.cs
+++ b/Kyoo.SqLite/Migrations/20210801171544_Triggers.cs
@@ -182,4 +182,4 @@ namespace Kyoo.SqLite.Migrations
migrationBuilder.Sql("DROP TRIGGER ShowSlugUpdate;");
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.SqLite/SqLiteModule.cs b/Kyoo.SqLite/SqLiteModule.cs
index ecb0b62f..6a62e409 100644
--- a/Kyoo.SqLite/SqLiteModule.cs
+++ b/Kyoo.SqLite/SqLiteModule.cs
@@ -69,4 +69,4 @@ namespace Kyoo.SqLite
context.Database.Migrate();
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.TheMovieDb/Convertors/CollectionConvertors.cs b/Kyoo.TheMovieDb/Convertors/CollectionConvertors.cs
index d5854163..5f26031b 100644
--- a/Kyoo.TheMovieDb/Convertors/CollectionConvertors.cs
+++ b/Kyoo.TheMovieDb/Convertors/CollectionConvertors.cs
@@ -77,4 +77,4 @@ namespace Kyoo.TheMovieDb
};
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.TheMovieDb/Convertors/EpisodeConvertors.cs b/Kyoo.TheMovieDb/Convertors/EpisodeConvertors.cs
index ddc43eff..1597babf 100644
--- a/Kyoo.TheMovieDb/Convertors/EpisodeConvertors.cs
+++ b/Kyoo.TheMovieDb/Convertors/EpisodeConvertors.cs
@@ -44,4 +44,4 @@ namespace Kyoo.TheMovieDb
};
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.TheMovieDb/Convertors/MovieConvertors.cs b/Kyoo.TheMovieDb/Convertors/MovieConvertors.cs
index 9e29f655..afdf1b9e 100644
--- a/Kyoo.TheMovieDb/Convertors/MovieConvertors.cs
+++ b/Kyoo.TheMovieDb/Convertors/MovieConvertors.cs
@@ -99,4 +99,4 @@ namespace Kyoo.TheMovieDb
};
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.TheMovieDb/Convertors/SeasonConvertors.cs b/Kyoo.TheMovieDb/Convertors/SeasonConvertors.cs
index cdaf5bc6..364d2745 100644
--- a/Kyoo.TheMovieDb/Convertors/SeasonConvertors.cs
+++ b/Kyoo.TheMovieDb/Convertors/SeasonConvertors.cs
@@ -42,4 +42,4 @@ namespace Kyoo.TheMovieDb
};
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.TheTvdb/PluginTvdb.cs b/Kyoo.TheTvdb/PluginTvdb.cs
index 75feee76..341f4a5a 100644
--- a/Kyoo.TheTvdb/PluginTvdb.cs
+++ b/Kyoo.TheTvdb/PluginTvdb.cs
@@ -58,4 +58,4 @@ namespace Kyoo.TheTvdb
builder.RegisterProvider();
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.TheTvdb/ProviderTvdb.cs b/Kyoo.TheTvdb/ProviderTvdb.cs
index b0c6540f..61293dc2 100644
--- a/Kyoo.TheTvdb/ProviderTvdb.cs
+++ b/Kyoo.TheTvdb/ProviderTvdb.cs
@@ -144,4 +144,4 @@ namespace Kyoo.TheTvdb
}
}
}
-}
\ No newline at end of file
+}
diff --git a/Kyoo.TheTvdb/TvdbOption.cs b/Kyoo.TheTvdb/TvdbOption.cs
index 9a884b24..dab8d00c 100644
--- a/Kyoo.TheTvdb/TvdbOption.cs
+++ b/Kyoo.TheTvdb/TvdbOption.cs
@@ -15,4 +15,4 @@ namespace Kyoo.TheTvdb.Models
///
public string ApiKey { get; set; }
}
-}
\ No newline at end of file
+}
diff --git a/tests/Kyoo.Tests/Database/RepositoryActivator.cs b/tests/Kyoo.Tests/Database/RepositoryActivator.cs
index 6dfa8ed1..f7ad8dca 100644
--- a/tests/Kyoo.Tests/Database/RepositoryActivator.cs
+++ b/tests/Kyoo.Tests/Database/RepositoryActivator.cs
@@ -74,4 +74,4 @@ namespace Kyoo.Tests
await Context.DisposeAsync();
}
}
-}
\ No newline at end of file
+}
diff --git a/tests/Kyoo.Tests/Database/RepositoryTests.cs b/tests/Kyoo.Tests/Database/RepositoryTests.cs
index 3d6b1b39..25e44a5e 100644
--- a/tests/Kyoo.Tests/Database/RepositoryTests.cs
+++ b/tests/Kyoo.Tests/Database/RepositoryTests.cs
@@ -190,4 +190,4 @@ namespace Kyoo.Tests
Assert.Equal(0, await _repository.GetCount());
}
}
-}
\ No newline at end of file
+}
diff --git a/tests/Kyoo.Tests/Database/SpecificTests/CollectionsTests.cs b/tests/Kyoo.Tests/Database/SpecificTests/CollectionsTests.cs
index 9a9f0597..7be629a3 100644
--- a/tests/Kyoo.Tests/Database/SpecificTests/CollectionsTests.cs
+++ b/tests/Kyoo.Tests/Database/SpecificTests/CollectionsTests.cs
@@ -196,4 +196,4 @@ namespace Kyoo.Tests.Database
KAssert.DeepEqual(value, ret.First());
}
}
-}
\ No newline at end of file
+}
diff --git a/tests/Kyoo.Tests/Database/SpecificTests/EpisodeTests.cs b/tests/Kyoo.Tests/Database/SpecificTests/EpisodeTests.cs
index 7bda71ae..0722b6dc 100644
--- a/tests/Kyoo.Tests/Database/SpecificTests/EpisodeTests.cs
+++ b/tests/Kyoo.Tests/Database/SpecificTests/EpisodeTests.cs
@@ -323,4 +323,4 @@ namespace Kyoo.Tests.Database
KAssert.DeepEqual(value, ret.First());
}
}
-}
\ No newline at end of file
+}
diff --git a/tests/Kyoo.Tests/Database/SpecificTests/GenreTests.cs b/tests/Kyoo.Tests/Database/SpecificTests/GenreTests.cs
index 0b5d8489..0e4e655d 100644
--- a/tests/Kyoo.Tests/Database/SpecificTests/GenreTests.cs
+++ b/tests/Kyoo.Tests/Database/SpecificTests/GenreTests.cs
@@ -34,4 +34,4 @@ namespace Kyoo.Tests.Database
_repository = Repositories.LibraryManager.GenreRepository;
}
}
-}
\ No newline at end of file
+}
diff --git a/tests/Kyoo.Tests/Database/SpecificTests/LibraryItemTest.cs b/tests/Kyoo.Tests/Database/SpecificTests/LibraryItemTest.cs
index 1d6b5dd0..24375fc1 100644
--- a/tests/Kyoo.Tests/Database/SpecificTests/LibraryItemTest.cs
+++ b/tests/Kyoo.Tests/Database/SpecificTests/LibraryItemTest.cs
@@ -86,4 +86,4 @@ namespace Kyoo.Tests.Database
await Assert.ThrowsAsync(() => _repository.Get(TestSample.Get().Slug));
}
}
-}
\ No newline at end of file
+}
diff --git a/tests/Kyoo.Tests/Database/SpecificTests/LibraryTests.cs b/tests/Kyoo.Tests/Database/SpecificTests/LibraryTests.cs
index d6a4ea37..19ac1e6f 100644
--- a/tests/Kyoo.Tests/Database/SpecificTests/LibraryTests.cs
+++ b/tests/Kyoo.Tests/Database/SpecificTests/LibraryTests.cs
@@ -157,4 +157,4 @@ namespace Kyoo.Tests.Database
KAssert.DeepEqual(value, ret.First());
}
}
-}
\ No newline at end of file
+}
diff --git a/tests/Kyoo.Tests/Database/SpecificTests/PeopleTests.cs b/tests/Kyoo.Tests/Database/SpecificTests/PeopleTests.cs
index cb020c38..20cdeb23 100644
--- a/tests/Kyoo.Tests/Database/SpecificTests/PeopleTests.cs
+++ b/tests/Kyoo.Tests/Database/SpecificTests/PeopleTests.cs
@@ -168,4 +168,4 @@ namespace Kyoo.Tests.Database
KAssert.DeepEqual(value, ret.First());
}
}
-}
\ No newline at end of file
+}
diff --git a/tests/Kyoo.Tests/Database/SpecificTests/ProviderTests.cs b/tests/Kyoo.Tests/Database/SpecificTests/ProviderTests.cs
index 06edde1b..1737fa62 100644
--- a/tests/Kyoo.Tests/Database/SpecificTests/ProviderTests.cs
+++ b/tests/Kyoo.Tests/Database/SpecificTests/ProviderTests.cs
@@ -34,4 +34,4 @@ namespace Kyoo.Tests.Database
_repository = Repositories.LibraryManager.ProviderRepository;
}
}
-}
\ No newline at end of file
+}
diff --git a/tests/Kyoo.Tests/Database/SpecificTests/SanityTests.cs b/tests/Kyoo.Tests/Database/SpecificTests/SanityTests.cs
index c172fb75..275fbf8e 100644
--- a/tests/Kyoo.Tests/Database/SpecificTests/SanityTests.cs
+++ b/tests/Kyoo.Tests/Database/SpecificTests/SanityTests.cs
@@ -34,4 +34,4 @@ namespace Kyoo.Tests.Database
Assert.False(ReferenceEquals(TestSample.Get(), TestSample.Get()));
}
}
-}
\ No newline at end of file
+}
diff --git a/tests/Kyoo.Tests/Database/SpecificTests/SeasonTests.cs b/tests/Kyoo.Tests/Database/SpecificTests/SeasonTests.cs
index 676cbd5d..ad116a47 100644
--- a/tests/Kyoo.Tests/Database/SpecificTests/SeasonTests.cs
+++ b/tests/Kyoo.Tests/Database/SpecificTests/SeasonTests.cs
@@ -211,4 +211,4 @@ namespace Kyoo.Tests.Database
KAssert.DeepEqual(value, ret.First());
}
}
-}
\ No newline at end of file
+}
diff --git a/tests/Kyoo.Tests/Database/SpecificTests/StudioTests.cs b/tests/Kyoo.Tests/Database/SpecificTests/StudioTests.cs
index 8b64bded..57dae105 100644
--- a/tests/Kyoo.Tests/Database/SpecificTests/StudioTests.cs
+++ b/tests/Kyoo.Tests/Database/SpecificTests/StudioTests.cs
@@ -34,4 +34,4 @@ namespace Kyoo.Tests.Database
_repository = Repositories.LibraryManager.StudioRepository;
}
}
-}
\ No newline at end of file
+}
diff --git a/tests/Kyoo.Tests/Database/SpecificTests/TrackTests.cs b/tests/Kyoo.Tests/Database/SpecificTests/TrackTests.cs
index af3f9603..4c025d19 100644
--- a/tests/Kyoo.Tests/Database/SpecificTests/TrackTests.cs
+++ b/tests/Kyoo.Tests/Database/SpecificTests/TrackTests.cs
@@ -62,4 +62,4 @@ namespace Kyoo.Tests.Database
Assert.Equal("anohana-s1e1.und.video", track.Slug);
}
}
-}
\ No newline at end of file
+}
diff --git a/tests/Kyoo.Tests/Database/SpecificTests/UserTests.cs b/tests/Kyoo.Tests/Database/SpecificTests/UserTests.cs
index a9f7b0bc..802236d6 100644
--- a/tests/Kyoo.Tests/Database/SpecificTests/UserTests.cs
+++ b/tests/Kyoo.Tests/Database/SpecificTests/UserTests.cs
@@ -34,4 +34,4 @@ namespace Kyoo.Tests.Database
_repository = Repositories.LibraryManager.UserRepository;
}
}
-}
\ No newline at end of file
+}
diff --git a/tests/Kyoo.Tests/Identifier/IdentifierTests.cs b/tests/Kyoo.Tests/Identifier/IdentifierTests.cs
index 9eedb89e..8271d809 100644
--- a/tests/Kyoo.Tests/Identifier/IdentifierTests.cs
+++ b/tests/Kyoo.Tests/Identifier/IdentifierTests.cs
@@ -189,4 +189,4 @@ namespace Kyoo.Tests.Identifier
await Assert.ThrowsAsync(() => _identifier.IdentifyTrack("/invalid/path"));
}
}
-}
\ No newline at end of file
+}
diff --git a/tests/Kyoo.Tests/Identifier/ProviderTests.cs b/tests/Kyoo.Tests/Identifier/ProviderTests.cs
index e7a6bac9..411e962f 100644
--- a/tests/Kyoo.Tests/Identifier/ProviderTests.cs
+++ b/tests/Kyoo.Tests/Identifier/ProviderTests.cs
@@ -122,4 +122,4 @@ namespace Kyoo.Tests.Identifier
Assert.Contains("tomerge", ret.Genres.Select(x => x.Slug));
}
}
-}
\ No newline at end of file
+}
diff --git a/tests/Kyoo.Tests/Identifier/Tvdb/ConvertorTests.cs b/tests/Kyoo.Tests/Identifier/Tvdb/ConvertorTests.cs
index 87510e79..6c006b00 100644
--- a/tests/Kyoo.Tests/Identifier/Tvdb/ConvertorTests.cs
+++ b/tests/Kyoo.Tests/Identifier/Tvdb/ConvertorTests.cs
@@ -156,4 +156,4 @@ namespace Kyoo.Tests.Identifier.Tvdb
Assert.Equal("https://www.thetvdb.com/banners/thumb", episode.Images[Images.Thumbnail]);
}
}
-}
\ No newline at end of file
+}
diff --git a/tests/Kyoo.Tests/KAssert.cs b/tests/Kyoo.Tests/KAssert.cs
index 594f2561..1c2ffd21 100644
--- a/tests/Kyoo.Tests/KAssert.cs
+++ b/tests/Kyoo.Tests/KAssert.cs
@@ -40,4 +40,4 @@ namespace Kyoo.Tests
throw new XunitException(message);
}
}
-}
\ No newline at end of file
+}
diff --git a/tests/Kyoo.Tests/Utility/EnumerableTests.cs b/tests/Kyoo.Tests/Utility/EnumerableTests.cs
index 1a4c8a31..9a8f2ffd 100644
--- a/tests/Kyoo.Tests/Utility/EnumerableTests.cs
+++ b/tests/Kyoo.Tests/Utility/EnumerableTests.cs
@@ -69,4 +69,4 @@ namespace Kyoo.Tests.Utility
Assert.Empty(list.IfEmpty(() => { }));
}
}
-}
\ No newline at end of file
+}
diff --git a/tests/Kyoo.Tests/Utility/TaskTests.cs b/tests/Kyoo.Tests/Utility/TaskTests.cs
index 4596d102..1fa5938c 100644
--- a/tests/Kyoo.Tests/Utility/TaskTests.cs
+++ b/tests/Kyoo.Tests/Utility/TaskTests.cs
@@ -74,4 +74,4 @@ namespace Kyoo.Tests.Utility
.Map(x => x));
}
}
-}
\ No newline at end of file
+}
diff --git a/tests/Kyoo.Tests/Utility/UtilityTests.cs b/tests/Kyoo.Tests/Utility/UtilityTests.cs
index f8f7553c..202e3ed0 100644
--- a/tests/Kyoo.Tests/Utility/UtilityTests.cs
+++ b/tests/Kyoo.Tests/Utility/UtilityTests.cs
@@ -78,4 +78,4 @@ namespace Kyoo.Tests.Utility
Assert.Equal(nameof(Merger.MergeLists), method.Name);
}
}
-}
\ No newline at end of file
+}