using Core.Abstractions; using DomainResults.Common; using DataProviders.Buckets; using WeatherForecast.Models.Template.Requests; namespace WeatherForecast.Services; /// /// /// public interface ITemplateService { /// /// /// /// /// (Guid?, IDomainResult) Post(BucketFile file); /// /// /// /// /// /// IDomainResult Delete(Guid siteId, Guid fileId); } /// /// /// public class TemplateService : ServiceBase, ITemplateService { private readonly ITemplateBucketDataProvider _templateBucketDataProvider; /// /// /// /// /// public TemplateService( ILogger logger, ITemplateBucketDataProvider templateBucketDataProvider ) : base(logger) { _templateBucketDataProvider = templateBucketDataProvider; } /// /// /// /// /// public (Guid?, IDomainResult) Post(BucketFile file) { var (fileId, uploadFileResult) = _templateBucketDataProvider.Upload(file); if (!uploadFileResult.IsSuccess || fileId == null) return IDomainResult.Failed(); return IDomainResult.Success(fileId); } /// /// /// /// /// /// public IDomainResult Delete(Guid siteId, Guid fileId) { var result = _templateBucketDataProvider.DeleteOne(siteId, fileId); if (!result.IsSuccess) return IDomainResult.Failed(); return IDomainResult.Success(); } }