using Microsoft.Extensions.Logging; using DomainResults.Common; using MongoDB.Bson.Serialization; using MongoDB.Driver; using DataProviders.Collections.Abstractions; using DomainObjects.Documents.Content; namespace DataProviders.Collections { public interface IContentDataProvider { (ContentDocument?, IDomainResult) Get(Guid siteId); } public class ContentDataProvider : CollectionDataProviderBase, IContentDataProvider { private const string _databaseName = "reactredux"; private const string _collectionName = "content"; public ContentDataProvider( ILogger> logger, IMongoClient client, IIdGenerator idGenerator, ISessionService sessionService) : base(logger, client, idGenerator, sessionService, _databaseName, _collectionName) { } public (ContentDocument?, IDomainResult) Get(Guid siteId) { var (list, result) = GetWithPredicate(x => x.Id == siteId, x => x); if (!result.IsSuccess || list == null) return (null, result); return (list.First(), result); } } }