using Core.Abstractions;
using DataProviders.Collections;
using DomainResults.Common;
namespace WeatherForecast.Services.Abstractions {
///
///
///
public abstract class PostItemServiceBase : ServiceBase {
///
///
///
protected readonly ICategoryDataProvider _categoryDataProvider;
///
///
///
///
///
public PostItemServiceBase(
ILogger logger,
ICategoryDataProvider categoryDataProvider
) : base(logger) {
_categoryDataProvider = categoryDataProvider;
}
///
///
///
///
///
///
public (List?, IDomainResult) AddCategoryIfNullOrEmpty(Guid siteId, List? categories) {
categories ??= new List();
if (categories.Count == 0) {
var (catId, catCreateResult) = _categoryDataProvider.CreateDefault(siteId);
if (!catCreateResult.IsSuccess || catId == null)
return IDomainResult.Failed?>();
categories.Add(catId.Value);
}
return IDomainResult.Success(categories);
}
}
}