reactredux/webapi/WeatherForecast/Services/Abstractions/PostItemServiceBase.cs

47 lines
1.2 KiB
C#

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