using DataProviders; using DataProviders.Buckets; using DomainResults.Common; namespace WeatherForecast.Services { /// /// /// public interface IFileService { /// /// /// /// /// /// /// (BucketFile?, IDomainResult) Get(Guid siteId, Guid userId, Guid fileId); /// /// /// /// /// /// /// IDomainResult Delete(Guid siteId, Guid userId, Guid fileId); } /// /// /// public class FileService : IFileService { private readonly ILogger _logger; private readonly IImagesBucketDataProvider _imageBucketDataProvider; /// /// /// /// /// public FileService( ILogger logger, IImagesBucketDataProvider imageBucketDataProvider ) { _logger = logger; _imageBucketDataProvider = imageBucketDataProvider; } /// /// /// /// /// /// /// public (BucketFile?, IDomainResult) Get(Guid siteId, Guid userId, Guid fileId) { try { var (file, result) = _imageBucketDataProvider.Download(siteId, userId, fileId); if (!result.IsSuccess || file == null) return (null, result); return IDomainResult.Success(file); } catch (Exception ex) { return IDomainResult.Failed(ex.Message); } } /// /// /// /// /// /// /// public IDomainResult Delete(Guid siteId, Guid userId, Guid fileId) { try { return _imageBucketDataProvider.DeleteOne(siteId, userId, fileId); } catch (Exception ex) { return IDomainResult.Failed(ex.Message); } } } }