diff --git a/Exadel.Compreface/Clients/ApiClient/ApiClient.cs b/Exadel.Compreface/Clients/ApiClient/ApiClient.cs index 564537e5..bbb8e3f9 100644 --- a/Exadel.Compreface/Clients/ApiClient/ApiClient.cs +++ b/Exadel.Compreface/Clients/ApiClient/ApiClient.cs @@ -1,4 +1,8 @@ -using Exadel.Compreface.Configuration; +using System; +using System.Net.Http; +using System.Threading; +using System.Threading.Tasks; +using Exadel.Compreface.Configuration; using Flurl.Http.Content; using Flurl.Http; using Flurl; diff --git a/Exadel.Compreface/Clients/ApiClient/IApiClient.cs b/Exadel.Compreface/Clients/ApiClient/IApiClient.cs index 0a7560b2..e7295bb6 100644 --- a/Exadel.Compreface/Clients/ApiClient/IApiClient.cs +++ b/Exadel.Compreface/Clients/ApiClient/IApiClient.cs @@ -1,4 +1,8 @@ -using Flurl; +using System; +using System.Net.Http; +using System.Threading; +using System.Threading.Tasks; +using Flurl; using Flurl.Http.Content; namespace Exadel.Compreface.Clients.ApiClient diff --git a/Exadel.Compreface/Clients/CompreFaceClient/CompreFaceClient.cs b/Exadel.Compreface/Clients/CompreFaceClient/CompreFaceClient.cs index dc1e177d..0ecf8d26 100644 --- a/Exadel.Compreface/Clients/CompreFaceClient/CompreFaceClient.cs +++ b/Exadel.Compreface/Clients/CompreFaceClient/CompreFaceClient.cs @@ -1,126 +1,136 @@ -using Exadel.Compreface.Configuration; +using System; +using System.Collections.Generic; +using Exadel.Compreface.Configuration; using Exadel.Compreface.Exceptions; using Exadel.Compreface.Services.Attributes; using Microsoft.Extensions.Configuration; using System.Reflection; +using Exadel.Compreface.Helpers; -namespace Exadel.Compreface.Clients.CompreFaceClient; - -/// -/// Global CompreFace provider. -/// -public class CompreFaceClient : ICompreFaceClient +namespace Exadel.Compreface.Clients.CompreFaceClient { - private readonly string _domain; - private readonly string _port; - - private readonly Dictionary _services = new(); - /// - /// Constructor for string parameters. + /// Global CompreFace provider. /// - /// Domain with protocol where CompreFace is located. - /// CompreFace port. - /// Is throwed if one of the parameters is null. - public CompreFaceClient(string? domain, string? port) + public class CompreFaceClient : ICompreFaceClient { - _domain = domain ?? throw new ArgumentNullException($"{nameof(domain)} cannot be null!"); - _port = port ?? throw new ArgumentNullException($"{nameof(port)} cannot be null!"); - } + private readonly string _domain; + private readonly string _port; + + private readonly Dictionary + _services = new Dictionary(); + + /// + /// Constructor for string parameters. + /// + /// Domain with protocol where CompreFace is located. + /// CompreFace port. + /// Is throwed if one of the parameters is null. + public CompreFaceClient(string domain, string port) + { + _domain = domain ?? throw new ArgumentNullException($"{nameof(domain)} cannot be null!"); + _port = port ?? throw new ArgumentNullException($"{nameof(port)} cannot be null!"); + } - /// - /// Constructor allows to setup CompreFaceClient from appsettings.json. - /// - /// IConfiguration object. - /// Name of the section for domain parameter in an appsetting.json file. - /// Name of the section for port parameter in an appsetting.json file. - /// Is throwed if one of the sections in appseting.json doesn't have a value. - public CompreFaceClient(IConfiguration configuration, string? domainSection, string? portSection) - { - _domain = configuration.GetSection(domainSection).Value ?? throw new ArgumentNullException($"{nameof(domainSection)} cannot be null!"); - _port = configuration.GetSection(portSection).Value ?? throw new ArgumentNullException($"{nameof(portSection)} cannot be null!"); - } + /// + /// Constructor allows to setup CompreFaceClient from appsettings.json. + /// + /// IConfiguration object. + /// Name of the section for domain parameter in an appsetting.json file. + /// Name of the section for port parameter in an appsetting.json file. + /// Is throwed if one of the sections in appseting.json doesn't have a value. + public CompreFaceClient(IConfiguration configuration, string domainSection, string portSection) + { + _domain = configuration.GetSection(domainSection).Value ?? + throw new ArgumentNullException($"{nameof(domainSection)} cannot be null!"); + _port = configuration.GetSection(portSection).Value ?? + throw new ArgumentNullException($"{nameof(portSection)} cannot be null!"); + } - /// - /// Creates instance of the service. - /// - /// Type of the service. - /// Api key string from CompreFace. - /// Is throwed if T doesn't belong to CompreFace services. - /// var faceVerificationService = client.GetCompreFaceService("00000000-0000-0000-0000-000000000004") - /// Service instance. - public T GetCompreFaceService(string apiKey) where T : class - { - var compreFaceService = GetService(apiKey, typeof(T)); + /// + /// Creates instance of the service. + /// + /// Type of the service. + /// Api key string from CompreFace. + /// Is throwed if T doesn't belong to CompreFace services. + /// var faceVerificationService = client.GetCompreFaceService("00000000-0000-0000-0000-000000000004") + /// Service instance. + public T GetCompreFaceService(string apiKey) where T : class + { + var compreFaceService = GetService(apiKey, typeof(T)); - return (T)compreFaceService; - } + return (T)compreFaceService; + } - /// - /// Creates instance of the service with api key from appsettings.json file. - /// - /// - /// IConfiguration object. - /// Name of the section for api key parameter in an appsetting.json file. - /// Is throwed if T doesn't belong to CompreFace services. - /// Is throwed if api key section in appseting.json doesn't have a value. - /// Service instance. - public T GetCompreFaceService(IConfiguration configuration, string apiKeySection) where T : class - { + /// + /// Creates instance of the service with api key from appsettings.json file. + /// + /// + /// IConfiguration object. + /// Name of the section for api key parameter in an appsetting.json file. + /// Is throwed if T doesn't belong to CompreFace services. + /// Is throwed if api key section in appseting.json doesn't have a value. + /// Service instance. + public T GetCompreFaceService(IConfiguration configuration, string apiKeySection) where T : class + { - var apiKey = configuration.GetSection(apiKeySection).Value ?? throw new ArgumentNullException($"{nameof(apiKeySection)} cannot be null!"); - var compreFaceService = GetService(apiKey, typeof(T)); + var apiKey = configuration.GetSection(apiKeySection).Value ?? + throw new ArgumentNullException($"{nameof(apiKeySection)} cannot be null!"); + var compreFaceService = GetService(apiKey, typeof(T)); - return (T)compreFaceService; - } + return (T)compreFaceService; + } - private object GetService(string apiKey, Type type) - { - try + private object GetService(string apiKey, Type type) { - var key = new ServiceDictionaryKey(apiKey, type); - var baseService = _services.GetValueOrDefault(key); - - if (baseService == null) + try { - var config = new ComprefaceConfiguration(apiKey, _domain, _port); - var apiClient = new ApiClient.ApiClient(config); - baseService = ReturnServiceIfTypeIsValid(type, config, apiClient); + var key = new ServiceDictionaryKey(apiKey, type); + var baseService = _services.GetValueOrDefault(key); - _services.Add(key, baseService!); - } + if (baseService == null) + { + var config = new ComprefaceConfiguration(apiKey, _domain, _port); + var apiClient = new ApiClient.ApiClient(config); + baseService = ReturnServiceIfTypeIsValid(type, config, apiClient); - return baseService; - } - catch (Exception) - { - throw; + _services.Add(key, baseService); + } + + return baseService; + } + catch (Exception) + { + throw; + } } - } - private object ReturnServiceIfTypeIsValid(Type type, ComprefaceConfiguration config, ApiClient.ApiClient apiClient) - { - object baseService = null; + private object ReturnServiceIfTypeIsValid(Type type, ComprefaceConfiguration config, + ApiClient.ApiClient apiClient) + { + object baseService = null; - if (type.GetCustomAttribute(typeof(CompreFaceService)) != null) - baseService = Activator.CreateInstance(type, config, apiClient); + if (type.GetCustomAttribute(typeof(CompreFaceService)) != null) + baseService = Activator.CreateInstance(type, config, apiClient); - if (baseService == null) - throw new TypeNotBelongCompreFaceException("Type doesn't belong to CompreFace services. Class should be covered by CompreFaceService attribute."); + if (baseService == null) + throw new TypeNotBelongCompreFaceException( + "Type doesn't belong to CompreFace services. Class should be covered by CompreFaceService attribute."); - return baseService; - } + return baseService; + } - private class ServiceDictionaryKey - { - public string ApiKey { get; set; } + private class ServiceDictionaryKey + { + public string ApiKey { get; set; } - public Type Type { get; set; } + public Type Type { get; set; } - public ServiceDictionaryKey(string apiKey, Type type) - { - ApiKey = apiKey; - Type = type; + public ServiceDictionaryKey(string apiKey, Type type) + { + ApiKey = apiKey; + Type = type; + } } } } \ No newline at end of file diff --git a/Exadel.Compreface/Clients/CompreFaceClient/ICompreFaceClient.cs b/Exadel.Compreface/Clients/CompreFaceClient/ICompreFaceClient.cs index 95cac260..3c217148 100644 --- a/Exadel.Compreface/Clients/CompreFaceClient/ICompreFaceClient.cs +++ b/Exadel.Compreface/Clients/CompreFaceClient/ICompreFaceClient.cs @@ -4,8 +4,8 @@ namespace Exadel.Compreface.Clients.CompreFaceClient { public interface ICompreFaceClient { - public T GetCompreFaceService(string apiKey) where T : class; + T GetCompreFaceService(string apiKey) where T : class; - public T GetCompreFaceService(IConfiguration configuration, string apiKeySection) where T : class; + T GetCompreFaceService(IConfiguration configuration, string apiKeySection) where T : class; } } \ No newline at end of file diff --git a/Exadel.Compreface/Configuration/ComprefaceConfiguration.cs b/Exadel.Compreface/Configuration/ComprefaceConfiguration.cs index a61957db..959cf1e6 100644 --- a/Exadel.Compreface/Configuration/ComprefaceConfiguration.cs +++ b/Exadel.Compreface/Configuration/ComprefaceConfiguration.cs @@ -1,27 +1,30 @@ -namespace Exadel.Compreface.Configuration; +using System; -/// -/// Setups main parameters for the CompreFace API. -/// -public class ComprefaceConfiguration : IComprefaceConfiguration +namespace Exadel.Compreface.Configuration { - public string Domain { get; set; } - - public string Port { get; set; } - - public string ApiKey { get; set; } - /// - /// + /// Setups main parameters for the CompreFace API. /// - /// Api key of a service from CompreFace. - /// Domain with protocol where CompreFace is located. - /// CompreFace port. - /// Is throwed if one of the parameters is null. - public ComprefaceConfiguration(string apiKey, string domain, string port) + public class ComprefaceConfiguration : IComprefaceConfiguration { - Domain = domain ?? throw new ArgumentNullException($"{nameof(domain)} cannot be null!"); - Port = port ?? throw new ArgumentNullException($"{nameof(port)} cannot be null!"); - ApiKey = apiKey ?? throw new ArgumentNullException($"{nameof(apiKey)} cannot be null!"); + public string Domain { get; set; } + + public string Port { get; set; } + + public string ApiKey { get; set; } + + /// + /// + /// + /// Api key of a service from CompreFace. + /// Domain with protocol where CompreFace is located. + /// CompreFace port. + /// Is throwed if one of the parameters is null. + public ComprefaceConfiguration(string apiKey, string domain, string port) + { + Domain = domain ?? throw new ArgumentNullException($"{nameof(domain)} cannot be null!"); + Port = port ?? throw new ArgumentNullException($"{nameof(port)} cannot be null!"); + ApiKey = apiKey ?? throw new ArgumentNullException($"{nameof(apiKey)} cannot be null!"); + } } } \ No newline at end of file diff --git a/Exadel.Compreface/Configuration/IComprefaceConfiguration.cs b/Exadel.Compreface/Configuration/IComprefaceConfiguration.cs index 9c9a3a1f..068d4712 100644 --- a/Exadel.Compreface/Configuration/IComprefaceConfiguration.cs +++ b/Exadel.Compreface/Configuration/IComprefaceConfiguration.cs @@ -1,10 +1,11 @@ -namespace Exadel.Compreface.Configuration; - -public interface IComprefaceConfiguration +namespace Exadel.Compreface.Configuration { - public string Domain { get; } + public interface IComprefaceConfiguration + { + string Domain { get; } - public string Port { get; } + string Port { get; } - public string ApiKey { get; } + string ApiKey { get; } + } } \ No newline at end of file diff --git a/Exadel.Compreface/DTOs/FaceCollectionDTOs/AddSubjectExample/AddSubjectExampleRequestByFilePath.cs b/Exadel.Compreface/DTOs/FaceCollectionDTOs/AddSubjectExample/AddSubjectExampleRequestByFilePath.cs index 8d204e80..74cffa00 100644 --- a/Exadel.Compreface/DTOs/FaceCollectionDTOs/AddSubjectExample/AddSubjectExampleRequestByFilePath.cs +++ b/Exadel.Compreface/DTOs/FaceCollectionDTOs/AddSubjectExample/AddSubjectExampleRequestByFilePath.cs @@ -1,14 +1,15 @@ using Exadel.Compreface.DTOs.HelperDTOs.BaseDTOs; -namespace Exadel.Compreface.DTOs.FaceCollectionDTOs.AddSubjectExample; - -/// -/// DTO helps to create an example of the subject by saving images. -/// -public class AddSubjectExampleRequestByFilePath : BaseExampleRequest +namespace Exadel.Compreface.DTOs.FaceCollectionDTOs.AddSubjectExample { /// - /// Full file path. + /// DTO helps to create an example of the subject by saving images. /// - public string FilePath { get; set; } + public class AddSubjectExampleRequestByFilePath : BaseExampleRequest + { + /// + /// Full file path. + /// + public string FilePath { get; set; } + } } \ No newline at end of file diff --git a/Exadel.Compreface/DTOs/FaceCollectionDTOs/AddSubjectExample/AddSubjectExampleResponse.cs b/Exadel.Compreface/DTOs/FaceCollectionDTOs/AddSubjectExample/AddSubjectExampleResponse.cs index 41fddcb1..1464a8bc 100644 --- a/Exadel.Compreface/DTOs/FaceCollectionDTOs/AddSubjectExample/AddSubjectExampleResponse.cs +++ b/Exadel.Compreface/DTOs/FaceCollectionDTOs/AddSubjectExample/AddSubjectExampleResponse.cs @@ -1,8 +1,11 @@ -namespace Exadel.Compreface.DTOs.FaceCollectionDTOs.AddSubjectExample; +using System; -public class AddSubjectExampleResponse +namespace Exadel.Compreface.DTOs.FaceCollectionDTOs.AddSubjectExample { - public Guid ImageId { get; set; } + public class AddSubjectExampleResponse + { + public Guid ImageId { get; set; } - public string Subject { get; set; } + public string Subject { get; set; } + } } \ No newline at end of file diff --git a/Exadel.Compreface/DTOs/FaceCollectionDTOs/DeleteImageById/DeleteImageByIdRequest.cs b/Exadel.Compreface/DTOs/FaceCollectionDTOs/DeleteImageById/DeleteImageByIdRequest.cs index 86dfe22c..a0d1f1c2 100644 --- a/Exadel.Compreface/DTOs/FaceCollectionDTOs/DeleteImageById/DeleteImageByIdRequest.cs +++ b/Exadel.Compreface/DTOs/FaceCollectionDTOs/DeleteImageById/DeleteImageByIdRequest.cs @@ -1,4 +1,6 @@ -namespace Exadel.Compreface.DTOs.FaceCollectionDTOs.DeleteImageById +using System; + +namespace Exadel.Compreface.DTOs.FaceCollectionDTOs.DeleteImageById { public class DeleteImageByIdRequest { diff --git a/Exadel.Compreface/DTOs/FaceCollectionDTOs/DeleteImageById/DeleteImageByIdResponse.cs b/Exadel.Compreface/DTOs/FaceCollectionDTOs/DeleteImageById/DeleteImageByIdResponse.cs index e9b99ba6..e33c3b1c 100644 --- a/Exadel.Compreface/DTOs/FaceCollectionDTOs/DeleteImageById/DeleteImageByIdResponse.cs +++ b/Exadel.Compreface/DTOs/FaceCollectionDTOs/DeleteImageById/DeleteImageByIdResponse.cs @@ -1,4 +1,6 @@ -namespace Exadel.Compreface.DTOs.FaceCollectionDTOs.DeleteImageById +using System; + +namespace Exadel.Compreface.DTOs.FaceCollectionDTOs.DeleteImageById { public class DeleteImageByIdResponse { diff --git a/Exadel.Compreface/DTOs/FaceCollectionDTOs/DeleteMultipleExamples/DeleteMultipleExamplesRequest.cs b/Exadel.Compreface/DTOs/FaceCollectionDTOs/DeleteMultipleExamples/DeleteMultipleExamplesRequest.cs index b911e83d..1358d63e 100644 --- a/Exadel.Compreface/DTOs/FaceCollectionDTOs/DeleteMultipleExamples/DeleteMultipleExamplesRequest.cs +++ b/Exadel.Compreface/DTOs/FaceCollectionDTOs/DeleteMultipleExamples/DeleteMultipleExamplesRequest.cs @@ -1,4 +1,7 @@ -namespace Exadel.Compreface.DTOs.FaceCollectionDTOs.DeleteMultipleExamples +using System; +using System.Collections.Generic; + +namespace Exadel.Compreface.DTOs.FaceCollectionDTOs.DeleteMultipleExamples { public class DeleteMultipleExampleRequest { diff --git a/Exadel.Compreface/DTOs/FaceCollectionDTOs/DeleteMultipleExamples/DeleteMultipleExamplesResponse.cs b/Exadel.Compreface/DTOs/FaceCollectionDTOs/DeleteMultipleExamples/DeleteMultipleExamplesResponse.cs index 832ed9c5..95d8ffe1 100644 --- a/Exadel.Compreface/DTOs/FaceCollectionDTOs/DeleteMultipleExamples/DeleteMultipleExamplesResponse.cs +++ b/Exadel.Compreface/DTOs/FaceCollectionDTOs/DeleteMultipleExamples/DeleteMultipleExamplesResponse.cs @@ -1,4 +1,5 @@ -using Exadel.Compreface.DTOs.HelperDTOs; +using System.Collections.Generic; +using Exadel.Compreface.DTOs.HelperDTOs; namespace Exadel.Compreface.DTOs.FaceCollectionDTOs.DeleteMultipleExamples { diff --git a/Exadel.Compreface/DTOs/FaceCollectionDTOs/DownloadImageById/DownloadImageByIdDirectlyRequest.cs b/Exadel.Compreface/DTOs/FaceCollectionDTOs/DownloadImageById/DownloadImageByIdDirectlyRequest.cs index 7f25019b..045cf62d 100644 --- a/Exadel.Compreface/DTOs/FaceCollectionDTOs/DownloadImageById/DownloadImageByIdDirectlyRequest.cs +++ b/Exadel.Compreface/DTOs/FaceCollectionDTOs/DownloadImageById/DownloadImageByIdDirectlyRequest.cs @@ -1,4 +1,6 @@ -namespace Exadel.Compreface.DTOs.FaceCollectionDTOs.DownloadImageById +using System; + +namespace Exadel.Compreface.DTOs.FaceCollectionDTOs.DownloadImageById { /// /// DTO for direct example downloading from recognition service. diff --git a/Exadel.Compreface/DTOs/FaceCollectionDTOs/DownloadImageByIdFromSubject/DownloadImageByIdFromSubjectRequest.cs b/Exadel.Compreface/DTOs/FaceCollectionDTOs/DownloadImageByIdFromSubject/DownloadImageByIdFromSubjectRequest.cs index f0246d9e..b6567356 100644 --- a/Exadel.Compreface/DTOs/FaceCollectionDTOs/DownloadImageByIdFromSubject/DownloadImageByIdFromSubjectRequest.cs +++ b/Exadel.Compreface/DTOs/FaceCollectionDTOs/DownloadImageByIdFromSubject/DownloadImageByIdFromSubjectRequest.cs @@ -1,4 +1,6 @@ -namespace Exadel.Compreface.DTOs.FaceCollectionDTOs.DownloadImageByIdFromSubject +using System; + +namespace Exadel.Compreface.DTOs.FaceCollectionDTOs.DownloadImageByIdFromSubject { /// /// DTO for downloading of example from subject. diff --git a/Exadel.Compreface/DTOs/FaceCollectionDTOs/ListAllSubjectExamples/ListAllSubjectExamplesRequest.cs b/Exadel.Compreface/DTOs/FaceCollectionDTOs/ListAllSubjectExamples/ListAllSubjectExamplesRequest.cs index f937e0f7..f55e49f0 100644 --- a/Exadel.Compreface/DTOs/FaceCollectionDTOs/ListAllSubjectExamples/ListAllSubjectExamplesRequest.cs +++ b/Exadel.Compreface/DTOs/FaceCollectionDTOs/ListAllSubjectExamples/ListAllSubjectExamplesRequest.cs @@ -1,22 +1,23 @@ -namespace Exadel.Compreface.DTOs.FaceCollectionDTOs.ListAllExampleSubject; - -/// -/// DTO helps to retrieve a list of subjects saved in a Face Collection. -/// -public class ListAllSubjectExamplesRequest +namespace Exadel.Compreface.DTOs.FaceCollectionDTOs.ListAllExampleSubject { /// - /// Page number of examples to return. Can be used for pagination. Default value is 0. + /// DTO helps to retrieve a list of subjects saved in a Face Collection. /// - public int? Page { get; set; } + public class ListAllSubjectExamplesRequest + { + /// + /// Page number of examples to return. Can be used for pagination. Default value is 0. + /// + public int? Page { get; set; } - /// - /// Faces on page (page size). Can be used for pagination. Default value is 20. - /// - public int? Size { get; set; } + /// + /// Faces on page (page size). Can be used for pagination. Default value is 20. + /// + public int? Size { get; set; } - /// - /// What subject examples endpoint should return. If empty, return examples for all subjects. - /// - public string Subject { get; set; } + /// + /// What subject examples endpoint should return. If empty, return examples for all subjects. + /// + public string Subject { get; set; } + } } \ No newline at end of file diff --git a/Exadel.Compreface/DTOs/FaceCollectionDTOs/ListAllSubjectExamples/ListAllSubjectExamplesResponse.cs b/Exadel.Compreface/DTOs/FaceCollectionDTOs/ListAllSubjectExamples/ListAllSubjectExamplesResponse.cs index 7b869a14..e64962ab 100644 --- a/Exadel.Compreface/DTOs/FaceCollectionDTOs/ListAllSubjectExamples/ListAllSubjectExamplesResponse.cs +++ b/Exadel.Compreface/DTOs/FaceCollectionDTOs/ListAllSubjectExamples/ListAllSubjectExamplesResponse.cs @@ -1,16 +1,18 @@ -using Exadel.Compreface.DTOs.HelperDTOs; +using System.Collections.Generic; +using Exadel.Compreface.DTOs.HelperDTOs; -namespace Exadel.Compreface.DTOs.FaceCollectionDTOs.ListAllExampleSubject; - -public class ListAllSubjectExamplesResponse +namespace Exadel.Compreface.DTOs.FaceCollectionDTOs.ListAllExampleSubject { - public IList Faces { get; set; } + public class ListAllSubjectExamplesResponse + { + public IList Faces { get; set; } + + public int PageNumber { get; set; } + + public int PageSize { get; set; } - public int PageNumber { get; set; } + public int TotalPages { get; set; } - public int PageSize { get; set; } - - public int TotalPages { get; set; } - - public int TotalElements { get; set; } + public int TotalElements { get; set; } + } } \ No newline at end of file diff --git a/Exadel.Compreface/DTOs/FaceDetectionDTOs/FaceDetection/FaceDetectionResponse.cs b/Exadel.Compreface/DTOs/FaceDetectionDTOs/FaceDetection/FaceDetectionResponse.cs index 9cede2e7..8bb2a958 100644 --- a/Exadel.Compreface/DTOs/FaceDetectionDTOs/FaceDetection/FaceDetectionResponse.cs +++ b/Exadel.Compreface/DTOs/FaceDetectionDTOs/FaceDetection/FaceDetectionResponse.cs @@ -1,4 +1,5 @@ -using Exadel.Compreface.DTOs.HelperDTOs; +using System.Collections.Generic; +using Exadel.Compreface.DTOs.HelperDTOs; using Exadel.Compreface.DTOs.HelperDTOs.BaseDTOs; namespace Exadel.Compreface.DTOs.FaceDetectionDTOs.FaceDetection diff --git a/Exadel.Compreface/DTOs/FaceVerificationDTOs/FaceVerification/FaceVerificationRequestByFilePath.cs b/Exadel.Compreface/DTOs/FaceVerificationDTOs/FaceVerification/FaceVerificationRequestByFilePath.cs index 7ff5027f..2ac902ec 100644 --- a/Exadel.Compreface/DTOs/FaceVerificationDTOs/FaceVerification/FaceVerificationRequestByFilePath.cs +++ b/Exadel.Compreface/DTOs/FaceVerificationDTOs/FaceVerification/FaceVerificationRequestByFilePath.cs @@ -1,10 +1,11 @@ using Exadel.Compreface.DTOs.HelperDTOs.BaseDTOs; -namespace Exadel.Compreface.DTOs.FaceVerificationDTOs.FaceVerification; - -public class FaceVerificationRequestByFilePath : BaseFaceRequest +namespace Exadel.Compreface.DTOs.FaceVerificationDTOs.FaceVerification { - public string SourceImageFilePath { get; set; } + public class FaceVerificationRequestByFilePath : BaseFaceRequest + { + public string SourceImageFilePath { get; set; } - public string TargetImageFilePath { get; set; } + public string TargetImageFilePath { get; set; } + } } \ No newline at end of file diff --git a/Exadel.Compreface/DTOs/FaceVerificationDTOs/FaceVerification/FaceVerificationResponse.cs b/Exadel.Compreface/DTOs/FaceVerificationDTOs/FaceVerification/FaceVerificationResponse.cs index e7ae6d04..8271b4fb 100644 --- a/Exadel.Compreface/DTOs/FaceVerificationDTOs/FaceVerification/FaceVerificationResponse.cs +++ b/Exadel.Compreface/DTOs/FaceVerificationDTOs/FaceVerification/FaceVerificationResponse.cs @@ -1,26 +1,30 @@ +using System.Collections.Generic; using Exadel.Compreface.DTOs.HelperDTOs; using Exadel.Compreface.DTOs.HelperDTOs.BaseDTOs; -namespace Exadel.Compreface.DTOs.FaceVerificationDTOs.FaceVerification; - -public class FaceVerificationResponse +namespace Exadel.Compreface.DTOs.FaceVerificationDTOs.FaceVerification { - public IList Result { get; set; } -} -public class Result -{ - public SourceImageFace SourceImageFace { get; set; } + public class FaceVerificationResponse + { + public IList Result { get; set; } + } - public IList FaceMatches { get; set; } + public class Result + { + public SourceImageFace SourceImageFace { get; set; } - public PluginVersions PluginsVersions { get; set; } -} + public IList FaceMatches { get; set; } -public class SourceImageFace : BaseResult -{ } + public PluginVersions PluginsVersions { get; set; } + } -public class FaceMatches : BaseResult -{ - public decimal Similarity { get; set; } + public class SourceImageFace : BaseResult + { + } + + public class FaceMatches : BaseResult + { + public decimal Similarity { get; set; } + } } \ No newline at end of file diff --git a/Exadel.Compreface/DTOs/FaceVerificationDTOs/FaceVerification/FaceVerificationWithBase64Request.cs b/Exadel.Compreface/DTOs/FaceVerificationDTOs/FaceVerification/FaceVerificationWithBase64Request.cs index f5364a9f..ee012a90 100644 --- a/Exadel.Compreface/DTOs/FaceVerificationDTOs/FaceVerification/FaceVerificationWithBase64Request.cs +++ b/Exadel.Compreface/DTOs/FaceVerificationDTOs/FaceVerification/FaceVerificationWithBase64Request.cs @@ -1,10 +1,12 @@ using Exadel.Compreface.DTOs.HelperDTOs.BaseDTOs; -namespace Exadel.Compreface.DTOs.FaceVerificationDTOs.FaceVerification; - -public class FaceVerificationWithBase64Request : BaseFaceRequest +namespace Exadel.Compreface.DTOs.FaceVerificationDTOs.FaceVerification { - public string SourceImageWithBase64 { get; set; } - public string TargetImageWithBase64 { get; set; } + public class FaceVerificationWithBase64Request : BaseFaceRequest + { + public string SourceImageWithBase64 { get; set; } + + public string TargetImageWithBase64 { get; set; } + } } \ No newline at end of file diff --git a/Exadel.Compreface/DTOs/HelperDTOs/Age.cs b/Exadel.Compreface/DTOs/HelperDTOs/Age.cs index f4f1d397..20332b8b 100644 --- a/Exadel.Compreface/DTOs/HelperDTOs/Age.cs +++ b/Exadel.Compreface/DTOs/HelperDTOs/Age.cs @@ -1,10 +1,12 @@ -namespace Exadel.Compreface.DTOs.HelperDTOs; - -public class Age +namespace Exadel.Compreface.DTOs.HelperDTOs { - public decimal Probability { get; set; } - public int High { get; set; } + public class Age + { + public decimal Probability { get; set; } + + public int High { get; set; } - public int Low { get; set; } + public int Low { get; set; } + } } \ No newline at end of file diff --git a/Exadel.Compreface/DTOs/HelperDTOs/BaseDTOs/BaseFaceRequest.cs b/Exadel.Compreface/DTOs/HelperDTOs/BaseDTOs/BaseFaceRequest.cs index 9a3d04c7..f5716e2a 100644 --- a/Exadel.Compreface/DTOs/HelperDTOs/BaseDTOs/BaseFaceRequest.cs +++ b/Exadel.Compreface/DTOs/HelperDTOs/BaseDTOs/BaseFaceRequest.cs @@ -1,27 +1,31 @@ -namespace Exadel.Compreface.DTOs.HelperDTOs.BaseDTOs; +using System.Collections.Generic; -/// -/// Base class with several common properties. -/// -public class BaseFaceRequest +namespace Exadel.Compreface.DTOs.HelperDTOs.BaseDTOs { - /// - /// Optional property: maximum number of faces on the image to be recognized. It recognizes the biggest faces first. Value of 0 represents no limit. Default value: 0. - /// - public int? Limit { get; set; } /// - /// Optional property: minimum required confidence that a recognized face is actually a face. Value is between 0.0 and 1.0. + /// Base class with several common properties. /// - public decimal DetProbThreshold { get; set; } + public class BaseFaceRequest + { + /// + /// Optional property: maximum number of faces on the image to be recognized. It recognizes the biggest faces first. Value of 0 represents no limit. Default value: 0. + /// + public int? Limit { get; set; } - /// - /// Optional property: comma-separated slugs of face plugins. If empty, no additional information is returned. - /// - public IList FacePlugins { get; set; } = new List(); + /// + /// Optional property: minimum required confidence that a recognized face is actually a face. Value is between 0.0 and 1.0. + /// + public decimal DetProbThreshold { get; set; } - /// - /// Optional property: if true includes system information like execution_time and plugin_version fields. Default value is false - /// - public bool Status { get; set; } + /// + /// Optional property: comma-separated slugs of face plugins. If empty, no additional information is returned. + /// + public IList FacePlugins { get; set; } = new List(); + + /// + /// Optional property: if true includes system information like execution_time and plugin_version fields. Default value is false + /// + public bool Status { get; set; } + } } \ No newline at end of file diff --git a/Exadel.Compreface/DTOs/HelperDTOs/BaseDTOs/BaseResult.cs b/Exadel.Compreface/DTOs/HelperDTOs/BaseDTOs/BaseResult.cs index b7f3562a..4cb2cfd7 100644 --- a/Exadel.Compreface/DTOs/HelperDTOs/BaseDTOs/BaseResult.cs +++ b/Exadel.Compreface/DTOs/HelperDTOs/BaseDTOs/BaseResult.cs @@ -1,18 +1,22 @@ -namespace Exadel.Compreface.DTOs.HelperDTOs.BaseDTOs; +using System.Collections.Generic; -public class BaseResult +namespace Exadel.Compreface.DTOs.HelperDTOs.BaseDTOs { - public Age Age { get; set; } - public Gender Gender { get; set; } + public class BaseResult + { + public Age Age { get; set; } - public Mask Mask { get; set; } + public Gender Gender { get; set; } - public Box Box { get; set; } + public Mask Mask { get; set; } - public IList> Landmarks { get; set; } + public Box Box { get; set; } - public ExecutionTime ExecutionTime { get; set; } + public IList> Landmarks { get; set; } - public IList Embedding { get; set; } + public ExecutionTime ExecutionTime { get; set; } + + public IList Embedding { get; set; } + } } \ No newline at end of file diff --git a/Exadel.Compreface/DTOs/HelperDTOs/Box.cs b/Exadel.Compreface/DTOs/HelperDTOs/Box.cs index a7e2591c..0372306d 100644 --- a/Exadel.Compreface/DTOs/HelperDTOs/Box.cs +++ b/Exadel.Compreface/DTOs/HelperDTOs/Box.cs @@ -1,14 +1,16 @@ -namespace Exadel.Compreface.DTOs.HelperDTOs; - -public class Box +namespace Exadel.Compreface.DTOs.HelperDTOs { - public decimal Probability { get; set; } - public int XMax { get; set; } - - public int YMax { get; set; } + public class Box + { + public decimal Probability { get; set; } + + public int XMax { get; set; } + + public int YMax { get; set; } + + public int XMin { get; set; } - public int XMin { get; set; } - - public int YMin { get; set; } + public int YMin { get; set; } + } } \ No newline at end of file diff --git a/Exadel.Compreface/DTOs/HelperDTOs/ExecutionTime.cs b/Exadel.Compreface/DTOs/HelperDTOs/ExecutionTime.cs index 676900a1..be3e2f18 100644 --- a/Exadel.Compreface/DTOs/HelperDTOs/ExecutionTime.cs +++ b/Exadel.Compreface/DTOs/HelperDTOs/ExecutionTime.cs @@ -1,14 +1,16 @@ -namespace Exadel.Compreface.DTOs.HelperDTOs; - -public class ExecutionTime +namespace Exadel.Compreface.DTOs.HelperDTOs { - public decimal Age { get; set; } - public decimal Gender { get; set; } + public class ExecutionTime + { + public decimal Age { get; set; } + + public decimal Gender { get; set; } - public decimal Detector { get; set; } + public decimal Detector { get; set; } - public decimal Calculator { get; set; } + public decimal Calculator { get; set; } - public decimal Mask { get; set; } + public decimal Mask { get; set; } + } } \ No newline at end of file diff --git a/Exadel.Compreface/DTOs/HelperDTOs/Face.cs b/Exadel.Compreface/DTOs/HelperDTOs/Face.cs index e2e2e8f2..2d973c07 100644 --- a/Exadel.Compreface/DTOs/HelperDTOs/Face.cs +++ b/Exadel.Compreface/DTOs/HelperDTOs/Face.cs @@ -1,8 +1,11 @@ -namespace Exadel.Compreface.DTOs.HelperDTOs; +using System; -public class Face +namespace Exadel.Compreface.DTOs.HelperDTOs { - public Guid ImageId { get; set; } - - public string Subject{ get; set; } + public class Face + { + public Guid ImageId { get; set; } + + public string Subject { get; set; } + } } \ No newline at end of file diff --git a/Exadel.Compreface/DTOs/HelperDTOs/Gender.cs b/Exadel.Compreface/DTOs/HelperDTOs/Gender.cs index 40129d65..8ae79c17 100644 --- a/Exadel.Compreface/DTOs/HelperDTOs/Gender.cs +++ b/Exadel.Compreface/DTOs/HelperDTOs/Gender.cs @@ -1,8 +1,10 @@ -namespace Exadel.Compreface.DTOs.HelperDTOs; - -public class Gender +namespace Exadel.Compreface.DTOs.HelperDTOs { - public decimal Probability { get; set; } - public string Value { get; set; } + public class Gender + { + public decimal Probability { get; set; } + + public string Value { get; set; } + } } \ No newline at end of file diff --git a/Exadel.Compreface/DTOs/HelperDTOs/Mask.cs b/Exadel.Compreface/DTOs/HelperDTOs/Mask.cs index 78b298ef..88ffc9b3 100644 --- a/Exadel.Compreface/DTOs/HelperDTOs/Mask.cs +++ b/Exadel.Compreface/DTOs/HelperDTOs/Mask.cs @@ -1,8 +1,10 @@ -namespace Exadel.Compreface.DTOs.HelperDTOs; - -public class Mask +namespace Exadel.Compreface.DTOs.HelperDTOs { - public decimal Probability { get; set; } - public string Value { get; set; } + public class Mask + { + public decimal Probability { get; set; } + + public string Value { get; set; } + } } \ No newline at end of file diff --git a/Exadel.Compreface/DTOs/HelperDTOs/PluginVersions.cs b/Exadel.Compreface/DTOs/HelperDTOs/PluginVersions.cs index b244ee56..6e439409 100644 --- a/Exadel.Compreface/DTOs/HelperDTOs/PluginVersions.cs +++ b/Exadel.Compreface/DTOs/HelperDTOs/PluginVersions.cs @@ -1,14 +1,16 @@ -namespace Exadel.Compreface.DTOs.HelperDTOs; - -public class PluginVersions +namespace Exadel.Compreface.DTOs.HelperDTOs { - public string Age { get; set; } - - public string Gender { get; set; } - - public string Detector { get; set; } - - public string Calculator { get; set; } - - public string Mask { get; set; } + + public class PluginVersions + { + public string Age { get; set; } + + public string Gender { get; set; } + + public string Detector { get; set; } + + public string Calculator { get; set; } + + public string Mask { get; set; } + } } \ No newline at end of file diff --git a/Exadel.Compreface/DTOs/HelperDTOs/SimilarSubject.cs b/Exadel.Compreface/DTOs/HelperDTOs/SimilarSubject.cs index 0f8ac24e..17c0a965 100644 --- a/Exadel.Compreface/DTOs/HelperDTOs/SimilarSubject.cs +++ b/Exadel.Compreface/DTOs/HelperDTOs/SimilarSubject.cs @@ -1,8 +1,10 @@ -namespace Exadel.Compreface.DTOs.HelperDTOs; - -public class SimilarSubject +namespace Exadel.Compreface.DTOs.HelperDTOs { - public decimal Similarity { get; set; } - public string Subject { get; set; } + public class SimilarSubject + { + public decimal Similarity { get; set; } + + public string Subject { get; set; } + } } \ No newline at end of file diff --git a/Exadel.Compreface/DTOs/RecognizeFaceFromImageDTOs/BaseRequests/BaseRecognizeFaceFromImageRequest.cs b/Exadel.Compreface/DTOs/RecognizeFaceFromImageDTOs/BaseRequests/BaseRecognizeFaceFromImageRequest.cs index 2a227448..1e94c4be 100644 --- a/Exadel.Compreface/DTOs/RecognizeFaceFromImageDTOs/BaseRequests/BaseRecognizeFaceFromImageRequest.cs +++ b/Exadel.Compreface/DTOs/RecognizeFaceFromImageDTOs/BaseRequests/BaseRecognizeFaceFromImageRequest.cs @@ -1,14 +1,16 @@ using Exadel.Compreface.DTOs.HelperDTOs.BaseDTOs; -namespace Exadel.Compreface.DTOs.RecognitionDTOs.BaseRequests; - -/// -/// Base class with several common properties. -/// -public class BaseRecognizeFaceFromImageRequest : BaseFaceRequest +namespace Exadel.Compreface.DTOs.RecognitionDTOs.BaseRequests { + /// - /// Optional property: maximum number of subject predictions per face. It returns the most similar subjects. Default value: 1 + /// Base class with several common properties. /// - public int? PredictionCount { get; set; } + public class BaseRecognizeFaceFromImageRequest : BaseFaceRequest + { + /// + /// Optional property: maximum number of subject predictions per face. It returns the most similar subjects. Default value: 1 + /// + public int? PredictionCount { get; set; } + } } \ No newline at end of file diff --git a/Exadel.Compreface/DTOs/RecognizeFaceFromImageDTOs/BaseRequests/BaseVerifyFacesFromImageRequest.cs b/Exadel.Compreface/DTOs/RecognizeFaceFromImageDTOs/BaseRequests/BaseVerifyFacesFromImageRequest.cs index 7f18498a..0876897c 100644 --- a/Exadel.Compreface/DTOs/RecognizeFaceFromImageDTOs/BaseRequests/BaseVerifyFacesFromImageRequest.cs +++ b/Exadel.Compreface/DTOs/RecognizeFaceFromImageDTOs/BaseRequests/BaseVerifyFacesFromImageRequest.cs @@ -1,8 +1,11 @@ -using Exadel.Compreface.DTOs.HelperDTOs.BaseDTOs; +using System; +using Exadel.Compreface.DTOs.HelperDTOs.BaseDTOs; -namespace Exadel.Compreface.DTOs.RecognitionDTOs.BaseRequests; - -public class BaseVerifyFacesFromImageRequest : BaseFaceRequest +namespace Exadel.Compreface.DTOs.RecognitionDTOs.BaseRequests { - public Guid ImageId { get; set; } + + public class BaseVerifyFacesFromImageRequest : BaseFaceRequest + { + public Guid ImageId { get; set; } + } } \ No newline at end of file diff --git a/Exadel.Compreface/DTOs/RecognizeFaceFromImageDTOs/RecognizeFaceFromImage/RecognizeFaceFromImageRequestByFilePath.cs b/Exadel.Compreface/DTOs/RecognizeFaceFromImageDTOs/RecognizeFaceFromImage/RecognizeFaceFromImageRequestByFilePath.cs index ea143c97..5809c7c7 100644 --- a/Exadel.Compreface/DTOs/RecognizeFaceFromImageDTOs/RecognizeFaceFromImage/RecognizeFaceFromImageRequestByFilePath.cs +++ b/Exadel.Compreface/DTOs/RecognizeFaceFromImageDTOs/RecognizeFaceFromImage/RecognizeFaceFromImageRequestByFilePath.cs @@ -1,8 +1,10 @@ using Exadel.Compreface.DTOs.RecognitionDTOs.BaseRequests; -namespace Exadel.Compreface.DTOs.RecognitionDTOs.RecognizeFaceFromImage; - -public class RecognizeFaceFromImageRequestByFilePath : BaseRecognizeFaceFromImageRequest +namespace Exadel.Compreface.DTOs.RecognitionDTOs.RecognizeFaceFromImage { - public string FilePath { get; set; } + + public class RecognizeFaceFromImageRequestByFilePath : BaseRecognizeFaceFromImageRequest + { + public string FilePath { get; set; } + } } \ No newline at end of file diff --git a/Exadel.Compreface/DTOs/RecognizeFaceFromImageDTOs/RecognizeFaceFromImage/RecognizeFaceFromImageResponse.cs b/Exadel.Compreface/DTOs/RecognizeFaceFromImageDTOs/RecognizeFaceFromImage/RecognizeFaceFromImageResponse.cs index 5c09f6ae..77af244f 100644 --- a/Exadel.Compreface/DTOs/RecognizeFaceFromImageDTOs/RecognizeFaceFromImage/RecognizeFaceFromImageResponse.cs +++ b/Exadel.Compreface/DTOs/RecognizeFaceFromImageDTOs/RecognizeFaceFromImage/RecognizeFaceFromImageResponse.cs @@ -1,16 +1,19 @@ -using Exadel.Compreface.DTOs.HelperDTOs; +using System.Collections.Generic; +using Exadel.Compreface.DTOs.HelperDTOs; using Exadel.Compreface.DTOs.HelperDTOs.BaseDTOs; -namespace Exadel.Compreface.DTOs.RecognitionDTOs.RecognizeFaceFromImage; - -public class RecognizeFaceFromImageResponse +namespace Exadel.Compreface.DTOs.RecognitionDTOs.RecognizeFaceFromImage { - public IList Result { get; set; } - public PluginVersions PluginsVersions { get; set; } -} + public class RecognizeFaceFromImageResponse + { + public IList Result { get; set; } -public class Result : BaseResult -{ - public IList Subjects { get; set; } + public PluginVersions PluginsVersions { get; set; } + } + + public class Result : BaseResult + { + public IList Subjects { get; set; } + } } \ No newline at end of file diff --git a/Exadel.Compreface/DTOs/RecognizeFaceFromImageDTOs/RecognizeFaceFromImage/RecognizeFacesFromImageWithBase64Request.cs b/Exadel.Compreface/DTOs/RecognizeFaceFromImageDTOs/RecognizeFaceFromImage/RecognizeFacesFromImageWithBase64Request.cs index 30238fe2..b7c55bba 100644 --- a/Exadel.Compreface/DTOs/RecognizeFaceFromImageDTOs/RecognizeFaceFromImage/RecognizeFacesFromImageWithBase64Request.cs +++ b/Exadel.Compreface/DTOs/RecognizeFaceFromImageDTOs/RecognizeFaceFromImage/RecognizeFacesFromImageWithBase64Request.cs @@ -1,8 +1,10 @@ using Exadel.Compreface.DTOs.RecognitionDTOs.BaseRequests; -namespace Exadel.Compreface.DTOs.RecognizeFaceFromImageDTOs.RecognizeFaceFromImage; - -public class RecognizeFacesFromImageWithBase64Request : BaseRecognizeFaceFromImageRequest +namespace Exadel.Compreface.DTOs.RecognizeFaceFromImageDTOs.RecognizeFaceFromImage { - public string FileBase64Value { get; set; } + + public class RecognizeFacesFromImageWithBase64Request : BaseRecognizeFaceFromImageRequest + { + public string FileBase64Value { get; set; } + } } \ No newline at end of file diff --git a/Exadel.Compreface/DTOs/RecognizeFaceFromImageDTOs/VerifyFacesFromImage/VerifyFacesFromImageByFilePathRequest.cs b/Exadel.Compreface/DTOs/RecognizeFaceFromImageDTOs/VerifyFacesFromImage/VerifyFacesFromImageByFilePathRequest.cs index e71c0ad9..e3112145 100644 --- a/Exadel.Compreface/DTOs/RecognizeFaceFromImageDTOs/VerifyFacesFromImage/VerifyFacesFromImageByFilePathRequest.cs +++ b/Exadel.Compreface/DTOs/RecognizeFaceFromImageDTOs/VerifyFacesFromImage/VerifyFacesFromImageByFilePathRequest.cs @@ -1,8 +1,10 @@ using Exadel.Compreface.DTOs.RecognitionDTOs.BaseRequests; -namespace Exadel.Compreface.DTOs.RecognitionDTOs.VerifyFacesFromImage; - -public class VerifyFacesFromImageByFilePathRequest : BaseVerifyFacesFromImageRequest +namespace Exadel.Compreface.DTOs.RecognitionDTOs.VerifyFacesFromImage { - public string FilePath { get; set; } + + public class VerifyFacesFromImageByFilePathRequest : BaseVerifyFacesFromImageRequest + { + public string FilePath { get; set; } + } } \ No newline at end of file diff --git a/Exadel.Compreface/DTOs/RecognizeFaceFromImageDTOs/VerifyFacesFromImage/VerifyFacesFromImageResponse.cs b/Exadel.Compreface/DTOs/RecognizeFaceFromImageDTOs/VerifyFacesFromImage/VerifyFacesFromImageResponse.cs index dc6df133..b21e39ae 100644 --- a/Exadel.Compreface/DTOs/RecognizeFaceFromImageDTOs/VerifyFacesFromImage/VerifyFacesFromImageResponse.cs +++ b/Exadel.Compreface/DTOs/RecognizeFaceFromImageDTOs/VerifyFacesFromImage/VerifyFacesFromImageResponse.cs @@ -1,18 +1,21 @@ -using Exadel.Compreface.DTOs.HelperDTOs; +using System.Collections.Generic; +using Exadel.Compreface.DTOs.HelperDTOs; using Exadel.Compreface.DTOs.HelperDTOs.BaseDTOs; -namespace Exadel.Compreface.DTOs.RecognitionDTOs.VerifyFacesFromImage; - -public class VerifyFacesFromImageResponse +namespace Exadel.Compreface.DTOs.RecognitionDTOs.VerifyFacesFromImage { - public IList Result { get; set; } - public PluginVersions PluginsVersions { get; set; } -} + public class VerifyFacesFromImageResponse + { + public IList Result { get; set; } -public class Result : BaseResult -{ - public string Subject { get; set; } - - public decimal Similarity { get; set; } + public PluginVersions PluginsVersions { get; set; } + } + + public class Result : BaseResult + { + public string Subject { get; set; } + + public decimal Similarity { get; set; } + } } \ No newline at end of file diff --git a/Exadel.Compreface/DTOs/RecognizeFaceFromImageDTOs/VerifyFacesFromImage/VerifyFacesFromImageWithBase64Request.cs b/Exadel.Compreface/DTOs/RecognizeFaceFromImageDTOs/VerifyFacesFromImage/VerifyFacesFromImageWithBase64Request.cs index b1a94137..1fe4b111 100644 --- a/Exadel.Compreface/DTOs/RecognizeFaceFromImageDTOs/VerifyFacesFromImage/VerifyFacesFromImageWithBase64Request.cs +++ b/Exadel.Compreface/DTOs/RecognizeFaceFromImageDTOs/VerifyFacesFromImage/VerifyFacesFromImageWithBase64Request.cs @@ -1,8 +1,10 @@ using Exadel.Compreface.DTOs.RecognitionDTOs.BaseRequests; -namespace Exadel.Compreface.DTOs.RecognizeFaceFromImageDTOs.VerifyFacesFromImage; - -public class VerifyFacesFromImageWithBase64Request : BaseVerifyFacesFromImageRequest +namespace Exadel.Compreface.DTOs.RecognizeFaceFromImageDTOs.VerifyFacesFromImage { - public string FileBase64Value { get; set; } + + public class VerifyFacesFromImageWithBase64Request : BaseVerifyFacesFromImageRequest + { + public string FileBase64Value { get; set; } + } } \ No newline at end of file diff --git a/Exadel.Compreface/DTOs/SubjectDTOs/AddSubject/AddSubjectRequest.cs b/Exadel.Compreface/DTOs/SubjectDTOs/AddSubject/AddSubjectRequest.cs index 5362cc95..edc528f1 100644 --- a/Exadel.Compreface/DTOs/SubjectDTOs/AddSubject/AddSubjectRequest.cs +++ b/Exadel.Compreface/DTOs/SubjectDTOs/AddSubject/AddSubjectRequest.cs @@ -1,6 +1,8 @@ -namespace Exadel.Compreface.DTOs.SubjectDTOs.AddSubject; - -public class AddSubjectRequest +namespace Exadel.Compreface.DTOs.SubjectDTOs.AddSubject { - public string Subject { get; set; } + + public class AddSubjectRequest + { + public string Subject { get; set; } + } } \ No newline at end of file diff --git a/Exadel.Compreface/DTOs/SubjectDTOs/AddSubject/AddSubjectResponse.cs b/Exadel.Compreface/DTOs/SubjectDTOs/AddSubject/AddSubjectResponse.cs index 48dada0b..afefb7a1 100644 --- a/Exadel.Compreface/DTOs/SubjectDTOs/AddSubject/AddSubjectResponse.cs +++ b/Exadel.Compreface/DTOs/SubjectDTOs/AddSubject/AddSubjectResponse.cs @@ -1,6 +1,8 @@ -namespace Exadel.Compreface.DTOs.SubjectDTOs.AddSubject; - -public class AddSubjectResponse +namespace Exadel.Compreface.DTOs.SubjectDTOs.AddSubject { - public string Subject { get; set; } + + public class AddSubjectResponse + { + public string Subject { get; set; } + } } \ No newline at end of file diff --git a/Exadel.Compreface/DTOs/SubjectDTOs/DeleteAllSubjects/DeleteAllSubjectsResponse.cs b/Exadel.Compreface/DTOs/SubjectDTOs/DeleteAllSubjects/DeleteAllSubjectsResponse.cs index 716f5367..df27c17b 100644 --- a/Exadel.Compreface/DTOs/SubjectDTOs/DeleteAllSubjects/DeleteAllSubjectsResponse.cs +++ b/Exadel.Compreface/DTOs/SubjectDTOs/DeleteAllSubjects/DeleteAllSubjectsResponse.cs @@ -1,6 +1,8 @@ -namespace Exadel.Compreface.DTOs.SubjectDTOs.DeleteAllSubjects; - -public class DeleteAllSubjectsResponse +namespace Exadel.Compreface.DTOs.SubjectDTOs.DeleteAllSubjects { - public int Deleted { get; set; } + + public class DeleteAllSubjectsResponse + { + public int Deleted { get; set; } + } } \ No newline at end of file diff --git a/Exadel.Compreface/DTOs/SubjectDTOs/DeleteSubject/DeleteSubjectRequest.cs b/Exadel.Compreface/DTOs/SubjectDTOs/DeleteSubject/DeleteSubjectRequest.cs index d02909db..74666bba 100644 --- a/Exadel.Compreface/DTOs/SubjectDTOs/DeleteSubject/DeleteSubjectRequest.cs +++ b/Exadel.Compreface/DTOs/SubjectDTOs/DeleteSubject/DeleteSubjectRequest.cs @@ -1,6 +1,8 @@ -namespace Exadel.Compreface.DTOs.SubjectDTOs.DeleteSubject; - -public class DeleteSubjectRequest +namespace Exadel.Compreface.DTOs.SubjectDTOs.DeleteSubject { - public string ActualSubject { get; set; } + + public class DeleteSubjectRequest + { + public string ActualSubject { get; set; } + } } \ No newline at end of file diff --git a/Exadel.Compreface/DTOs/SubjectDTOs/DeleteSubject/DeleteSubjectResponse.cs b/Exadel.Compreface/DTOs/SubjectDTOs/DeleteSubject/DeleteSubjectResponse.cs index f8d79417..dfc869a8 100644 --- a/Exadel.Compreface/DTOs/SubjectDTOs/DeleteSubject/DeleteSubjectResponse.cs +++ b/Exadel.Compreface/DTOs/SubjectDTOs/DeleteSubject/DeleteSubjectResponse.cs @@ -1,6 +1,8 @@ -namespace Exadel.Compreface.DTOs.SubjectDTOs.DeleteSubject; - -public class DeleteSubjectResponse +namespace Exadel.Compreface.DTOs.SubjectDTOs.DeleteSubject { - public string Subject { get; set; } + + public class DeleteSubjectResponse + { + public string Subject { get; set; } + } } \ No newline at end of file diff --git a/Exadel.Compreface/DTOs/SubjectDTOs/GetSubjectList/GetAllSubjectResponse.cs b/Exadel.Compreface/DTOs/SubjectDTOs/GetSubjectList/GetAllSubjectResponse.cs index e0f970a5..7aa0dc8d 100644 --- a/Exadel.Compreface/DTOs/SubjectDTOs/GetSubjectList/GetAllSubjectResponse.cs +++ b/Exadel.Compreface/DTOs/SubjectDTOs/GetSubjectList/GetAllSubjectResponse.cs @@ -1,6 +1,10 @@ -namespace Exadel.Compreface.DTOs.SubjectDTOs.GetSubjectList; +using System.Collections.Generic; -public class GetAllSubjectResponse +namespace Exadel.Compreface.DTOs.SubjectDTOs.GetSubjectList { - public IList Subjects { get; set; } + + public class GetAllSubjectResponse + { + public IList Subjects { get; set; } + } } \ No newline at end of file diff --git a/Exadel.Compreface/DTOs/SubjectDTOs/RenameSubject/RenameSubjectRequest.cs b/Exadel.Compreface/DTOs/SubjectDTOs/RenameSubject/RenameSubjectRequest.cs index 300b31c8..7f9bc247 100644 --- a/Exadel.Compreface/DTOs/SubjectDTOs/RenameSubject/RenameSubjectRequest.cs +++ b/Exadel.Compreface/DTOs/SubjectDTOs/RenameSubject/RenameSubjectRequest.cs @@ -1,8 +1,10 @@ -namespace Exadel.Compreface.DTOs.SubjectDTOs.RenameSubject; - -public class RenameSubjectRequest +namespace Exadel.Compreface.DTOs.SubjectDTOs.RenameSubject { - public string CurrentSubject { get; set; } - public string Subject { get; set; } + public class RenameSubjectRequest + { + public string CurrentSubject { get; set; } + + public string Subject { get; set; } + } } \ No newline at end of file diff --git a/Exadel.Compreface/DTOs/SubjectDTOs/RenameSubject/RenameSubjectResponse.cs b/Exadel.Compreface/DTOs/SubjectDTOs/RenameSubject/RenameSubjectResponse.cs index 34f337cc..4825de3d 100644 --- a/Exadel.Compreface/DTOs/SubjectDTOs/RenameSubject/RenameSubjectResponse.cs +++ b/Exadel.Compreface/DTOs/SubjectDTOs/RenameSubject/RenameSubjectResponse.cs @@ -1,6 +1,8 @@ -namespace Exadel.Compreface.DTOs.SubjectDTOs.RenameSubject; - -public class RenameSubjectResponse +namespace Exadel.Compreface.DTOs.SubjectDTOs.RenameSubject { - public bool Updated { get; set; } + + public class RenameSubjectResponse + { + public bool Updated { get; set; } + } } \ No newline at end of file diff --git a/Exadel.Compreface/Exadel.Compreface.csproj b/Exadel.Compreface/Exadel.Compreface.csproj index 74948131..cb5ef9b4 100644 --- a/Exadel.Compreface/Exadel.Compreface.csproj +++ b/Exadel.Compreface/Exadel.Compreface.csproj @@ -1,11 +1,10 @@  - net6.0;net7.0 - enable - enable + netstandard2.0 + disable True - CompreFace.NET.Sdk + DeepThink.CompreFace.NET.Sdk CompreFace NET SDK makes face recognition into your application even easier. Exadel Exadel diff --git a/Exadel.Compreface/Exceptions/ServiceException.cs b/Exadel.Compreface/Exceptions/ServiceException.cs index 531138a6..101cf45b 100644 --- a/Exadel.Compreface/Exceptions/ServiceException.cs +++ b/Exadel.Compreface/Exceptions/ServiceException.cs @@ -1,15 +1,22 @@ -namespace Exadel.Compreface.Exceptions; +using System; -public class ServiceException : Exception +namespace Exadel.Compreface.Exceptions { - public ServiceException() - { } - public ServiceException(string message) - : base(message) - { } + public class ServiceException : Exception + { + public ServiceException() + { + } - public ServiceException(string message, Exception inner) - : base(message, inner) - { } + public ServiceException(string message) + : base(message) + { + } + + public ServiceException(string message, Exception inner) + : base(message, inner) + { + } + } } \ No newline at end of file diff --git a/Exadel.Compreface/Exceptions/ServiceTimeoutException.cs b/Exadel.Compreface/Exceptions/ServiceTimeoutException.cs index aa7f98e8..574107bb 100644 --- a/Exadel.Compreface/Exceptions/ServiceTimeoutException.cs +++ b/Exadel.Compreface/Exceptions/ServiceTimeoutException.cs @@ -1,15 +1,22 @@ -namespace Exadel.Compreface.Exceptions; +using System; -public class ServiceTimeoutException : Exception +namespace Exadel.Compreface.Exceptions { - public ServiceTimeoutException() - { } - public ServiceTimeoutException(string message) - : base(message) - { } + public class ServiceTimeoutException : Exception + { + public ServiceTimeoutException() + { + } - public ServiceTimeoutException(string message, Exception inner) - : base(message, inner) - { } + public ServiceTimeoutException(string message) + : base(message) + { + } + + public ServiceTimeoutException(string message, Exception inner) + : base(message, inner) + { + } + } } \ No newline at end of file diff --git a/Exadel.Compreface/Exceptions/TypeNotBelongCompreFaceException.cs b/Exadel.Compreface/Exceptions/TypeNotBelongCompreFaceException.cs index 7995389a..37123fc8 100644 --- a/Exadel.Compreface/Exceptions/TypeNotBelongCompreFaceException.cs +++ b/Exadel.Compreface/Exceptions/TypeNotBelongCompreFaceException.cs @@ -1,4 +1,6 @@ -namespace Exadel.Compreface.Exceptions +using System; + +namespace Exadel.Compreface.Exceptions { public class TypeNotBelongCompreFaceException : Exception { diff --git a/Exadel.Compreface/Helpers/ConvertUrlToBase64StringHelpers.cs b/Exadel.Compreface/Helpers/ConvertUrlToBase64StringHelpers.cs index 22b87318..11cdbaa4 100644 --- a/Exadel.Compreface/Helpers/ConvertUrlToBase64StringHelpers.cs +++ b/Exadel.Compreface/Helpers/ConvertUrlToBase64StringHelpers.cs @@ -1,4 +1,6 @@ -using Exadel.Compreface.Clients.ApiClient; +using System; +using System.Threading.Tasks; +using Exadel.Compreface.Clients.ApiClient; namespace Exadel.Compreface.Helpers { diff --git a/Exadel.Compreface/Helpers/DictionaryHelper.cs b/Exadel.Compreface/Helpers/DictionaryHelper.cs new file mode 100644 index 00000000..8582bf3f --- /dev/null +++ b/Exadel.Compreface/Helpers/DictionaryHelper.cs @@ -0,0 +1,23 @@ +using System.Collections.Generic; + +namespace Exadel.Compreface.Helpers +{ + /// + /// + /// + public static class DictionaryHelper + { + /// + /// + /// + /// + /// + /// + /// + /// + public static V GetValueOrDefault(this Dictionary dictionary, K key) + { + return dictionary.TryGetValue(key, out var value) ? value : default; + } + } +} \ No newline at end of file diff --git a/Exadel.Compreface/Helpers/FileHelpers.cs b/Exadel.Compreface/Helpers/FileHelpers.cs index a39add63..ed228ce9 100644 --- a/Exadel.Compreface/Helpers/FileHelpers.cs +++ b/Exadel.Compreface/Helpers/FileHelpers.cs @@ -1,18 +1,22 @@ -namespace Exadel.Compreface.Helpers; +using System; +using System.IO; -public class FileHelpers +namespace Exadel.Compreface.Helpers { - public static string GenerateFileName(string filePath) + public class FileHelpers { - if (!File.Exists(filePath)) + public static string GenerateFileName(string filePath) { - throw new FileNotFoundException(message: $"File does not exist in path : {filePath}!"); - } - - var fileExtension = Path.GetExtension(filePath); + if (!File.Exists(filePath)) + { + throw new FileNotFoundException(message: $"File does not exist in path : {filePath}!"); + } + + var fileExtension = Path.GetExtension(filePath); - var generatedFileName = $"{Guid.NewGuid()}{fileExtension}"; + var generatedFileName = $"{Guid.NewGuid()}{fileExtension}"; - return generatedFileName; + return generatedFileName; + } } } \ No newline at end of file diff --git a/Exadel.Compreface/Helpers/SnakeCaseToCamelCaseNamingPolicy.cs b/Exadel.Compreface/Helpers/SnakeCaseToCamelCaseNamingPolicy.cs index cff3c192..7e720cf4 100644 --- a/Exadel.Compreface/Helpers/SnakeCaseToCamelCaseNamingPolicy.cs +++ b/Exadel.Compreface/Helpers/SnakeCaseToCamelCaseNamingPolicy.cs @@ -1,12 +1,15 @@ using System.Text.Json; -namespace Exadel.Compreface.Helpers; - -public class SnakeCaseToCamelCaseNamingPolicy : JsonNamingPolicy +namespace Exadel.Compreface.Helpers { - public static SnakeCaseToCamelCaseNamingPolicy Policy { get; } = new SnakeCaseToCamelCaseNamingPolicy(); - public override string ConvertName(string name) + + public class SnakeCaseToCamelCaseNamingPolicy : JsonNamingPolicy { - return name.ToSnakeCase(); + public static SnakeCaseToCamelCaseNamingPolicy Policy { get; } = new SnakeCaseToCamelCaseNamingPolicy(); + + public override string ConvertName(string name) + { + return name.ToSnakeCase(); + } } } \ No newline at end of file diff --git a/Exadel.Compreface/Helpers/StringExtensions.cs b/Exadel.Compreface/Helpers/StringExtensions.cs index 0b3783bc..f32081f8 100644 --- a/Exadel.Compreface/Helpers/StringExtensions.cs +++ b/Exadel.Compreface/Helpers/StringExtensions.cs @@ -1,9 +1,14 @@ -namespace Exadel.Compreface.Helpers; +using System.Linq; -public static class StringExtensions +namespace Exadel.Compreface.Helpers { - public static string ToSnakeCase(this string str) + + public static class StringExtensions { - return string.Concat(str.Select((x, i) => i > 0 && char.IsUpper(x) ? "_" + x.ToString() : x.ToString())).ToLower(); + public static string ToSnakeCase(this string str) + { + return string.Concat(str.Select((x, i) => i > 0 && char.IsUpper(x) ? "_" + x.ToString() : x.ToString())) + .ToLower(); + } } } \ No newline at end of file diff --git a/Exadel.Compreface/Helpers/SystemJsonSerializer.cs b/Exadel.Compreface/Helpers/SystemJsonSerializer.cs index 73b7378e..8cb0adfc 100644 --- a/Exadel.Compreface/Helpers/SystemJsonSerializer.cs +++ b/Exadel.Compreface/Helpers/SystemJsonSerializer.cs @@ -1,30 +1,35 @@ -using System.Text.Json; +using System.IO; +using System.Text.Json; using Flurl.Http.Configuration; -namespace Exadel.Compreface.Helpers; - -public class SystemJsonSerializer : ISerializer +namespace Exadel.Compreface.Helpers { - private readonly JsonSerializerOptions? _options; - public SystemJsonSerializer(JsonSerializerOptions? options = null) + public class SystemJsonSerializer : ISerializer { - _options = options; - } + private readonly JsonSerializerOptions _options; - public T Deserialize(string s) - { - return JsonSerializer.Deserialize(s, _options)!; - } + public SystemJsonSerializer(JsonSerializerOptions options = null) + { + _options = options; + } - public T Deserialize(Stream stream) - { - using var reader = new StreamReader(stream); - return Deserialize(reader.ReadToEnd()); - } + public T Deserialize(string s) + { + return JsonSerializer.Deserialize(s, _options); + } - public string Serialize(object obj) - { - return JsonSerializer.Serialize(obj, _options); + public T Deserialize(Stream stream) + { + using (var reader = new StreamReader(stream)) + { + return Deserialize(reader.ReadToEnd()); + } + } + + public string Serialize(object obj) + { + return JsonSerializer.Serialize(obj, _options); + } } } \ No newline at end of file diff --git a/Exadel.Compreface/Services/Attributes/CompreFaceServiceAttribute.cs b/Exadel.Compreface/Services/Attributes/CompreFaceServiceAttribute.cs index ca2fe2a5..6a89aae1 100644 --- a/Exadel.Compreface/Services/Attributes/CompreFaceServiceAttribute.cs +++ b/Exadel.Compreface/Services/Attributes/CompreFaceServiceAttribute.cs @@ -1,4 +1,5 @@ -using System.Runtime.CompilerServices; +using System; +using System.Runtime.CompilerServices; [assembly: InternalsVisibleTo("Exadel.Compreface.AcceptenceTests")] [assembly: InternalsVisibleTo("Exadel.Compreface.UnitTests")] diff --git a/Exadel.Compreface/Services/DetectionService.cs b/Exadel.Compreface/Services/DetectionService.cs index 0cde11b1..4ba36ed1 100644 --- a/Exadel.Compreface/Services/DetectionService.cs +++ b/Exadel.Compreface/Services/DetectionService.cs @@ -1,4 +1,6 @@ -using Exadel.Compreface.Clients.ApiClient; +using System; +using System.Threading.Tasks; +using Exadel.Compreface.Clients.ApiClient; using Exadel.Compreface.Configuration; using Exadel.Compreface.DTOs.FaceDetectionDTOs.FaceDetection; using Exadel.Compreface.DTOs.HelperDTOs.BaseDTOs; diff --git a/Exadel.Compreface/Services/Interfaces/IDetectionService.cs b/Exadel.Compreface/Services/Interfaces/IDetectionService.cs index 66a51431..6071f78f 100644 --- a/Exadel.Compreface/Services/Interfaces/IDetectionService.cs +++ b/Exadel.Compreface/Services/Interfaces/IDetectionService.cs @@ -1,4 +1,5 @@ -using Exadel.Compreface.DTOs.FaceDetectionDTOs.FaceDetection; +using System.Threading.Tasks; +using Exadel.Compreface.DTOs.FaceDetectionDTOs.FaceDetection; namespace Exadel.Compreface.Services.Interfaces { diff --git a/Exadel.Compreface/Services/Interfaces/IFaceCollection.cs b/Exadel.Compreface/Services/Interfaces/IFaceCollection.cs index fb5e25a0..23acf676 100644 --- a/Exadel.Compreface/Services/Interfaces/IFaceCollection.cs +++ b/Exadel.Compreface/Services/Interfaces/IFaceCollection.cs @@ -1,4 +1,5 @@ -using Exadel.Compreface.DTOs.FaceCollectionDTOs.AddSubjectExample; +using System.Threading.Tasks; +using Exadel.Compreface.DTOs.FaceCollectionDTOs.AddSubjectExample; using Exadel.Compreface.DTOs.FaceCollectionDTOs.DeleteAllSubjectExamples; using Exadel.Compreface.DTOs.FaceCollectionDTOs.DeleteImageById; using Exadel.Compreface.DTOs.FaceCollectionDTOs.DeleteMultipleExamples; diff --git a/Exadel.Compreface/Services/Interfaces/IRecognizeFaceFromImage.cs b/Exadel.Compreface/Services/Interfaces/IRecognizeFaceFromImage.cs index 306e13f8..32aa8be9 100644 --- a/Exadel.Compreface/Services/Interfaces/IRecognizeFaceFromImage.cs +++ b/Exadel.Compreface/Services/Interfaces/IRecognizeFaceFromImage.cs @@ -1,4 +1,5 @@ -using Exadel.Compreface.DTOs.RecognitionDTOs.RecognizeFaceFromImage; +using System.Threading.Tasks; +using Exadel.Compreface.DTOs.RecognitionDTOs.RecognizeFaceFromImage; using Exadel.Compreface.DTOs.RecognitionDTOs.VerifyFacesFromImage; using Exadel.Compreface.DTOs.RecognizeFaceFromImageDTOs.RecognizeFaceFromImage; using Exadel.Compreface.DTOs.RecognizeFaceFromImageDTOs.VerifyFacesFromImage; diff --git a/Exadel.Compreface/Services/Interfaces/ISubject.cs b/Exadel.Compreface/Services/Interfaces/ISubject.cs index b5ac2a49..776f9067 100644 --- a/Exadel.Compreface/Services/Interfaces/ISubject.cs +++ b/Exadel.Compreface/Services/Interfaces/ISubject.cs @@ -1,4 +1,5 @@ -using Exadel.Compreface.DTOs.SubjectDTOs.AddSubject; +using System.Threading.Tasks; +using Exadel.Compreface.DTOs.SubjectDTOs.AddSubject; using Exadel.Compreface.DTOs.SubjectDTOs.DeleteAllSubjects; using Exadel.Compreface.DTOs.SubjectDTOs.DeleteSubject; using Exadel.Compreface.DTOs.SubjectDTOs.GetSubjectList; diff --git a/Exadel.Compreface/Services/Interfaces/IVerificationService.cs b/Exadel.Compreface/Services/Interfaces/IVerificationService.cs index 13c330a6..bbe6803f 100644 --- a/Exadel.Compreface/Services/Interfaces/IVerificationService.cs +++ b/Exadel.Compreface/Services/Interfaces/IVerificationService.cs @@ -1,4 +1,5 @@ -using Exadel.Compreface.DTOs.FaceVerificationDTOs.FaceVerification; +using System.Threading.Tasks; +using Exadel.Compreface.DTOs.FaceVerificationDTOs.FaceVerification; namespace Exadel.Compreface.Services.Interfaces { diff --git a/Exadel.Compreface/Services/RecognitionService/FaceCollection.cs b/Exadel.Compreface/Services/RecognitionService/FaceCollection.cs index 3420f015..3d30e2eb 100644 --- a/Exadel.Compreface/Services/RecognitionService/FaceCollection.cs +++ b/Exadel.Compreface/Services/RecognitionService/FaceCollection.cs @@ -1,4 +1,7 @@ -using Exadel.Compreface.Clients.ApiClient; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Exadel.Compreface.Clients.ApiClient; using Exadel.Compreface.Configuration; using Exadel.Compreface.DTOs.FaceCollectionDTOs.AddSubjectExample; using Exadel.Compreface.DTOs.FaceCollectionDTOs.DeleteAllSubjectExamples; diff --git a/Exadel.Compreface/Services/RecognitionService/RecognitionService.cs b/Exadel.Compreface/Services/RecognitionService/RecognitionService.cs index 55c10582..adaafecd 100644 --- a/Exadel.Compreface/Services/RecognitionService/RecognitionService.cs +++ b/Exadel.Compreface/Services/RecognitionService/RecognitionService.cs @@ -3,21 +3,23 @@ using Exadel.Compreface.Services.Attributes; using Exadel.Compreface.Services.Interfaces; -namespace Exadel.Compreface.Services.RecognitionService; - -[CompreFaceService] -public class RecognitionService +namespace Exadel.Compreface.Services.RecognitionService { - public IFaceCollection FaceCollection { get; set; } - public ISubject Subject { get; set; } + [CompreFaceService] + public class RecognitionService + { + public IFaceCollection FaceCollection { get; set; } + + public ISubject Subject { get; set; } - public IRecognizeFaceFromImage RecognizeFaceFromImage { get; set; } + public IRecognizeFaceFromImage RecognizeFaceFromImage { get; set; } - public RecognitionService(IComprefaceConfiguration configuration, IApiClient apiClient) - { - FaceCollection = new FaceCollection(configuration, apiClient); - Subject = new Subject(configuration, apiClient); - RecognizeFaceFromImage = new RecognizeFaceFromImage(configuration, apiClient); + public RecognitionService(IComprefaceConfiguration configuration, IApiClient apiClient) + { + FaceCollection = new FaceCollection(configuration, apiClient); + Subject = new Subject(configuration, apiClient); + RecognizeFaceFromImage = new RecognizeFaceFromImage(configuration, apiClient); + } } } \ No newline at end of file diff --git a/Exadel.Compreface/Services/RecognitionService/RecognizeFaceFromImage.cs b/Exadel.Compreface/Services/RecognitionService/RecognizeFaceFromImage.cs index fb6c3660..8e15fb0c 100644 --- a/Exadel.Compreface/Services/RecognitionService/RecognizeFaceFromImage.cs +++ b/Exadel.Compreface/Services/RecognitionService/RecognizeFaceFromImage.cs @@ -1,4 +1,6 @@ -using Exadel.Compreface.Clients.ApiClient; +using System; +using System.Threading.Tasks; +using Exadel.Compreface.Clients.ApiClient; using Exadel.Compreface.Configuration; using Exadel.Compreface.DTOs.RecognitionDTOs.BaseRequests; using Exadel.Compreface.DTOs.RecognitionDTOs.RecognizeFaceFromImage; diff --git a/Exadel.Compreface/Services/RecognitionService/Subject.cs b/Exadel.Compreface/Services/RecognitionService/Subject.cs index e1922648..3b6c58aa 100644 --- a/Exadel.Compreface/Services/RecognitionService/Subject.cs +++ b/Exadel.Compreface/Services/RecognitionService/Subject.cs @@ -1,4 +1,5 @@ -using Exadel.Compreface.Clients.ApiClient; +using System.Threading.Tasks; +using Exadel.Compreface.Clients.ApiClient; using Exadel.Compreface.Configuration; using Exadel.Compreface.DTOs.SubjectDTOs.AddSubject; using Exadel.Compreface.DTOs.SubjectDTOs.DeleteAllSubjects; diff --git a/Exadel.Compreface/Services/VerificationService.cs b/Exadel.Compreface/Services/VerificationService.cs index 32d2d2ef..4a6b1b99 100644 --- a/Exadel.Compreface/Services/VerificationService.cs +++ b/Exadel.Compreface/Services/VerificationService.cs @@ -1,3 +1,5 @@ +using System; +using System.Threading.Tasks; using Exadel.Compreface.Clients.ApiClient; using Exadel.Compreface.Configuration; using Exadel.Compreface.DTOs.FaceVerificationDTOs.FaceVerification; @@ -8,98 +10,105 @@ using Flurl; using Flurl.Http; -namespace Exadel.Compreface.Services; - -[CompreFaceService] -public class VerificationService : IVerificationService +namespace Exadel.Compreface.Services { - private readonly IComprefaceConfiguration _configuration; - private readonly IApiClient _apiClient; - - public VerificationService(IComprefaceConfiguration configuration, IApiClient apiClient) - { - _configuration = configuration; - _apiClient = apiClient; - } - public async Task VerifyAsync(FaceVerificationRequestByFilePath request) + [CompreFaceService] + public class VerificationService : IVerificationService { - var requestUrlWithQueryParameters = GetRequestUrl(request); - - var response = await - _apiClient.PostMultipartAsync( - requestUrl: requestUrlWithQueryParameters, - buildContent: mp => + private readonly IComprefaceConfiguration _configuration; + private readonly IApiClient _apiClient; + + public VerificationService(IComprefaceConfiguration configuration, IApiClient apiClient) + { + _configuration = configuration; + _apiClient = apiClient; + } + + public async Task VerifyAsync(FaceVerificationRequestByFilePath request) + { + var requestUrlWithQueryParameters = GetRequestUrl(request); + + var response = await + _apiClient.PostMultipartAsync( + requestUrl: requestUrlWithQueryParameters, + buildContent: mp => + { + mp.AddFile(name: "source_image", + fileName: FileHelpers.GenerateFileName(request.SourceImageFilePath), + path: request.SourceImageFilePath); + mp.AddFile(name: "target_image", + fileName: FileHelpers.GenerateFileName(request.TargetImageFilePath), + path: request.TargetImageFilePath); + } + ); + + return response; + } + + public async Task VerifyAsync(FaceVerificationRequestByFileUrl request) + { + var requestUrlWithQueryParameters = GetRequestUrl(request); + + var fileSourceImagInBase64String = + await ConvertUrlToBase64StringHelpers.ConvertUrlAsync(_apiClient, request.SourceImageFileUrl); + var fileTargetImagegInBase64Strin = + await ConvertUrlToBase64StringHelpers.ConvertUrlAsync(_apiClient, request.TargetImageFileUrl); + + var response = await _apiClient.PostJsonAsync(requestUrlWithQueryParameters, + body: new { - mp.AddFile(name: "source_image", fileName: FileHelpers.GenerateFileName(request.SourceImageFilePath), - path: request.SourceImageFilePath); - mp.AddFile(name: "target_image", fileName: FileHelpers.GenerateFileName(request.TargetImageFilePath), - path: request.TargetImageFilePath); - } - ); - - return response; - } - - public async Task VerifyAsync(FaceVerificationRequestByFileUrl request) - { - var requestUrlWithQueryParameters = GetRequestUrl(request); - - var fileSourceImagInBase64String = await ConvertUrlToBase64StringHelpers.ConvertUrlAsync(_apiClient, request.SourceImageFileUrl); - var fileTargetImagegInBase64Strin = await ConvertUrlToBase64StringHelpers.ConvertUrlAsync(_apiClient, request.TargetImageFileUrl); - - var response = await _apiClient.PostJsonAsync(requestUrlWithQueryParameters, - body: new - { - source_image = fileSourceImagInBase64String, - target_image = fileTargetImagegInBase64Strin - }); + source_image = fileSourceImagInBase64String, + target_image = fileTargetImagegInBase64Strin + }); - return response; - } + return response; + } - public async Task VerifyAsync(FaceVerificationRequestByBytes request) - { - var requestUrlWithQueryParameters = GetRequestUrl(request); + public async Task VerifyAsync(FaceVerificationRequestByBytes request) + { + var requestUrlWithQueryParameters = GetRequestUrl(request); - var fileSourceImagInBase64String = Convert.ToBase64String(request.SourceImageInBytes); - var fileTargetImagegInBase64Strin = Convert.ToBase64String(request.TargetImageInBytes); + var fileSourceImagInBase64String = Convert.ToBase64String(request.SourceImageInBytes); + var fileTargetImagegInBase64Strin = Convert.ToBase64String(request.TargetImageInBytes); - var response = await _apiClient.PostJsonAsync(requestUrlWithQueryParameters, - body: new - { - source_image = fileSourceImagInBase64String, - target_image = fileTargetImagegInBase64Strin - }); + var response = await _apiClient.PostJsonAsync(requestUrlWithQueryParameters, + body: new + { + source_image = fileSourceImagInBase64String, + target_image = fileTargetImagegInBase64Strin + }); - return response; - } + return response; + } - public async Task VerifyAsync(FaceVerificationWithBase64Request request) - { - var requestUrlWithQueryParameters = GetRequestUrl(request); + public async Task VerifyAsync(FaceVerificationWithBase64Request request) + { + var requestUrlWithQueryParameters = GetRequestUrl(request); - var response = await _apiClient.PostJsonAsync(requestUrl: requestUrlWithQueryParameters, + var response = await _apiClient.PostJsonAsync( + requestUrl: requestUrlWithQueryParameters, body: new { source_image = request.SourceImageWithBase64, target_image = request.TargetImageWithBase64, }); - return response; - } + return response; + } - private Url GetRequestUrl(BaseFaceRequest baseFaceRequest) - { - var requestUrl = $"{_configuration.Domain}:{_configuration.Port}/api/v1/verification/verify"; - - return requestUrl - .SetQueryParams(new - { - limit = baseFaceRequest.Limit, - det_prob_threshold = baseFaceRequest.DetProbThreshold, - face_plugins = string.Join(",", baseFaceRequest.FacePlugins), - status = baseFaceRequest.Status, - }); + private Url GetRequestUrl(BaseFaceRequest baseFaceRequest) + { + var requestUrl = $"{_configuration.Domain}:{_configuration.Port}/api/v1/verification/verify"; + + return requestUrl + .SetQueryParams(new + { + limit = baseFaceRequest.Limit, + det_prob_threshold = baseFaceRequest.DetProbThreshold, + face_plugins = string.Join(",", baseFaceRequest.FacePlugins), + status = baseFaceRequest.Status, + }); + } } } \ No newline at end of file