Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        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
            });
        }