/// <summary> /// Gets an <see cref="IProduct"/> by it's unique SKU. /// </summary> /// <param name="sku"> /// The product SKU. /// </param> /// <returns> /// The <see cref="IProduct"/>. /// </returns> public IProduct GetBySku(string sku) { using (var repository = _repositoryFactory.CreateProductVariantRepository(_uowProvider.GetUnitOfWork())) { var query = Persistence.Querying.Query <IProductVariant> .Builder.Where(x => x.Sku == sku && ((ProductVariant)x).Master); var variant = repository.GetByQuery(query).FirstOrDefault(); return(variant == null ? null : GetByKey(variant.ProductKey)); } }
/// <summary> /// The count. /// </summary> /// <param name="query"> /// The query. /// </param> /// <returns> /// The <see cref="int"/>. /// </returns> internal int Count(IQuery <IProductVariant> query) { using (var repository = _repositoryFactory.CreateProductVariantRepository(_uowProvider.GetUnitOfWork())) { return(repository.Count(query)); } }