reactredux/webapi/DataProviders/CategoryDataProvider.cs

41 lines
1.1 KiB
C#

using Core.DomainObjects;
using Core.Enumerations;
using DataProviders.Abstractions;
using DomainResults.Common;
using Microsoft.Extensions.Logging;
using MongoDB.Bson.Serialization;
using MongoDB.Driver;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DataProviders {
public interface ICategoryDataProvider {
(Category?, IDomainResult) Get(Guid id, Guid siteId);
}
public class CategoryDataProvider : DataProviderBase<Category>, ICategoryDataProvider {
private const string _collectionName = "categories";
public CategoryDataProvider(
ILogger<DataProviderBase<Category>> logger,
IMongoClient client,
IIdGenerator idGenerator,
ISessionService sessionService) : base(logger, client, idGenerator, sessionService) {
}
public (Category?, IDomainResult) Get(Guid id, Guid siteId) {
var (list, result) = GetWithPredicate(x => x.Id == id && x.SiteId == siteId, 0, 0, _collectionName);
if (!result.IsSuccess || list == null || list.Count == 0)
return (null, result);
return (list.First(), result);
}
}
}