public ProductVariantDisplay PutProductVariant(ProductVariantDisplay productVariant) { var variant = _productVariantService.GetByKey(productVariant.Key); variant = productVariant.ToProductVariant(variant); _productVariantService.Save(variant); return(variant.ToProductVariantDisplay()); }
public ProductVariantDisplay NewProductVariant(ProductVariantDisplay productVariant) { IProductVariant newProductVariant; try { var product = _productService.GetByKey(productVariant.ProductKey) as Product; if (product != null) { var productAttributes = new ProductAttributeCollection(); foreach (var attribute in productVariant.Attributes) { // TODO: This should be refactored into an extension method var productOption = product.ProductOptions.FirstOrDefault(x => x.Key == attribute.OptionKey) as ProductOption; if (productOption != null) { productAttributes.Add(productOption.Choices[attribute.Key]); } } newProductVariant = _productVariantService.CreateProductVariantWithKey(product, productAttributes); if (productVariant.TrackInventory) { newProductVariant.AddToCatalogInventory(_warehouseService.GetDefaultWarehouse().DefaultCatalog()); } newProductVariant = productVariant.ToProductVariant(newProductVariant); _productVariantService.Save(newProductVariant); } else { throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.InternalServerError)); } } catch (Exception e) { throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.InternalServerError)); } return(newProductVariant.ToProductVariantDisplay()); }
public ProductVariantDisplay PutProductVariant(ProductVariantDisplay productVariant) { var variant = _productVariantService.GetByKey(productVariant.Key); if (productVariant.DetachedContents.Any()) { foreach (var c in productVariant.DetachedContents.Select(x => x.CultureName)) { var pcs = new ProductVariantContentSave { CultureName = c, Display = productVariant }; ProductVariantDetachedContentHelper <ProductVariantContentSave, ProductVariantDisplay> .MapDetachedProperties(pcs); } } variant = productVariant.ToProductVariant(variant); _productVariantService.Save(variant); return(variant.ToProductVariantDisplay(DetachedValuesConversionType.Editor)); }
public HttpResponseMessage PutProductVariant(ProductVariantDisplay productVariant) { var response = Request.CreateResponse(HttpStatusCode.OK); try { IProductVariant merchProductVariant = _productVariantService.GetByKey(productVariant.Key); if (productVariant.TrackInventory && !merchProductVariant.CatalogInventories.Any()) { merchProductVariant.AddToCatalogInventory(_warehouseService.GetDefaultWarehouse().DefaultCatalog()); } merchProductVariant = productVariant.ToProductVariant(merchProductVariant); _productVariantService.Save(merchProductVariant); } catch (Exception ex) // I think this is not required as the server will create the error response message anyway { response = Request.CreateResponse(HttpStatusCode.NotFound, String.Format("{0}", ex.Message)); } return(response); }