private async Task UpdatePamAsync( Product product, ProductAttributeMapping pam, AbcMattressEntry abcMattressEntry) { var sizeAttrs = await GetSizeAttributesAsync(product, abcMattressEntry); pam.ConditionAttributeXml = $"<Attributes><ProductAttribute ID=\"{sizeAttrs.pam.Id}\"><ProductAttributeValue><Value>{sizeAttrs.pav.Id}</Value></ProductAttributeValue></ProductAttribute></Attributes>"; await _productAttributeService.UpdateProductAttributeMappingAsync(pam); }
private async Task <(ProductAttributeMapping pam, ProductAttributeValue pav)> GetSizeAttributesAsync( Product product, AbcMattressEntry abcMattressEntry ) { var sizePa = (await _productAttributeService.GetAllProductAttributesAsync()) .Where(pa => pa.Name == AbcMattressesConsts.MattressSizeName) .FirstOrDefault(); var sizePam = (await _productAttributeService.GetProductAttributeMappingsByProductIdAsync(product.Id)) .Where(pam => pam.ProductAttributeId == sizePa.Id) .FirstOrDefault(); var sizePav = (await _productAttributeService.GetProductAttributeValuesAsync(sizePam.Id)) .Where(pav => pav.ProductAttributeMappingId == sizePam.Id && pav.Name == abcMattressEntry.Size ) .FirstOrDefault(); return(sizePam, sizePav); }
public async Task <ProductCategory> AbcMattressEntryToProductCategoryAsync(AbcMattressEntry entry) { var model = _abcMattressService.GetAllAbcMattressModels() .Where(amm => amm.Id == entry.AbcMattressModelId) .FirstOrDefault(); var convertedCategoryName = ConvertSizeToCategoryName(entry.Size); var categories = await _categoryService.GetAllCategoriesAsync(); var category = categories.Where(c => c.Name.ToLower().Equals(convertedCategoryName)) .FirstOrDefault(); if (category == null) { throw new Exception($"Unable to find category {convertedCategoryName}"); } return(new ProductCategory() { ProductId = model.ProductId.Value, CategoryId = category.Id }); }