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, ICategoryDataProvider { private const string _collectionName = "categories"; public CategoryDataProvider( ILogger> 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); } } }