using DomainResults.Common; using DataProviders.Collections; using WeatherForecast.Models.Responses; namespace WeatherForecast.Services { /// /// /// public interface IContentService { /// /// /// /// /// /// (ContentResponseModel?, IDomainResult) GetContent(Guid siteId, string locale); } /// /// /// public class ContentService : IContentService { private readonly ILogger _logger; private readonly IContentDataProvider _contentDataProvider; /// /// /// /// /// public ContentService( ILogger logger, IContentDataProvider contentDataprovider ) { _logger = logger; _contentDataProvider = contentDataprovider; } /// /// /// /// /// /// public (ContentResponseModel?, IDomainResult) GetContent(Guid siteId, string locale) { try { var (content, result) = _contentDataProvider.Get(siteId, locale); if (!result.IsSuccess || content == null) return (null, result); return IDomainResult.Success(new ContentResponseModel(content)); } catch (Exception ex) { _logger.LogError(ex, "Unhandled exception"); return IDomainResult.Failed(ex.Message); } } } }