public async Task <ProductAttributeServiceModel> GetProductAttributeByIdAsync(GetProductAttributeByIdServiceModel model) { var productAttribute = await this.context.ProductAttributes.FirstOrDefaultAsync(x => x.Id == model.Id && x.SellerId == model.OrganisationId && x.IsActive); if (productAttribute != null) { var productAttributeServiceModel = new ProductAttributeServiceModel { Id = productAttribute.Id, Order = productAttribute.Order, LastModifiedDate = productAttribute.LastModifiedDate, CreatedDate = productAttribute.CreatedDate }; var productAttributeTranslations = productAttribute.ProductAttributeTranslations.FirstOrDefault(x => x.Language == model.Language && x.IsActive); if (productAttributeTranslations == null) { productAttributeTranslations = productAttribute.ProductAttributeTranslations.FirstOrDefault(x => x.IsActive); } productAttributeServiceModel.Name = productAttributeTranslations?.Name; var productAttributeItems = await this.context.ProductAttributeItems.Where(x => x.ProductAttributeId == productAttribute.Id && x.IsActive).ToListAsync(); if (productAttributeItems != null) { var productAttributeItemServiceModels = new List <ProductAttributeItemServiceModel>(); foreach (var productAttributeItem in productAttributeItems) { var productAttributeItemServiceModel = new ProductAttributeItemServiceModel { Id = productAttributeItem.Id, Order = productAttributeItem.Order, LastModifiedDate = productAttributeItem.LastModifiedDate, CreatedDate = productAttributeItem.CreatedDate }; var productAttributeItemTranslations = await this.context.ProductAttributeItemTranslations.FirstOrDefaultAsync(x => x.ProductAttributeItemId == productAttributeItem.Id && x.Language == model.Language && x.IsActive); if (productAttributeItemTranslations == null) { productAttributeItemTranslations = await this.context.ProductAttributeItemTranslations.FirstOrDefaultAsync(x => x.ProductAttributeItemId == productAttributeItem.Id && x.IsActive); } productAttributeItemServiceModel.Name = productAttributeItemTranslations?.Name; productAttributeItemServiceModels.Add(productAttributeItemServiceModel); } productAttributeServiceModel.ProductAttributeItems = productAttributeItemServiceModels; } return(productAttributeServiceModel); } return(default);
public async Task <PagedResults <IEnumerable <ProductAttributeServiceModel> > > GetAsync(GetProductAttributesServiceModel model) { var productAttributes = this.context.ProductAttributes.Where(x => x.IsActive); if (!string.IsNullOrWhiteSpace(model.SearchTerm)) { productAttributes = productAttributes.Where(x => x.ProductAttributeTranslations.Any(x => x.Name.StartsWith(model.SearchTerm) && x.IsActive)); } productAttributes = productAttributes.ApplySort(model.OrderBy); var pagedProductAttributes = productAttributes.PagedIndex(new Pagination(productAttributes.Count(), model.ItemsPerPage), model.PageIndex); var pagedProductAttributeServiceModels = new PagedResults <IEnumerable <ProductAttributeServiceModel> >(pagedProductAttributes.Total, pagedProductAttributes.PageSize); var productAttributeServiceModels = new List <ProductAttributeServiceModel>(); foreach (var pagedProductAttribute in pagedProductAttributes.Data.ToList()) { var productAttributeServiceModel = new ProductAttributeServiceModel { Id = pagedProductAttribute.Id, Order = pagedProductAttribute.Order, LastModifiedDate = pagedProductAttribute.LastModifiedDate, CreatedDate = pagedProductAttribute.CreatedDate }; var productAttributeTranslations = pagedProductAttribute.ProductAttributeTranslations.FirstOrDefault(x => x.Language == model.Language && x.IsActive); if (productAttributeTranslations == null) { productAttributeTranslations = pagedProductAttribute.ProductAttributeTranslations.FirstOrDefault(x => x.IsActive); } productAttributeServiceModel.Name = productAttributeTranslations?.Name; productAttributeServiceModels.Add(productAttributeServiceModel); } pagedProductAttributeServiceModels.Data = productAttributeServiceModels; return(pagedProductAttributeServiceModels); }