public virtual async Task <IActionResult> ValueEditPopup(CheckoutAttributeValueModel model) { if (!await _permissionService.AuthorizeAsync(StandardPermissionProvider.ManageAttributes)) { return(AccessDeniedView()); } //try to get a checkout attribute value with the specified id var checkoutAttributeValue = await _checkoutAttributeService.GetCheckoutAttributeValueByIdAsync(model.Id); if (checkoutAttributeValue == null) { return(RedirectToAction("List")); } //try to get a checkout attribute with the specified id var checkoutAttribute = await _checkoutAttributeService.GetCheckoutAttributeByIdAsync(checkoutAttributeValue.CheckoutAttributeId); if (checkoutAttribute == null) { return(RedirectToAction("List")); } model.PrimaryStoreCurrencyCode = (await _currencyService.GetCurrencyByIdAsync(_currencySettings.PrimaryStoreCurrencyId)).CurrencyCode; model.BaseWeightIn = (await _measureService.GetMeasureWeightByIdAsync(_measureSettings.BaseWeightId)).Name; if (checkoutAttribute.AttributeControlType == AttributeControlType.ColorSquares) { //ensure valid color is chosen/entered if (string.IsNullOrEmpty(model.ColorSquaresRgb)) { ModelState.AddModelError(string.Empty, "Color is required"); } try { //ensure color is valid (can be instantiated) System.Drawing.ColorTranslator.FromHtml(model.ColorSquaresRgb); } catch (Exception exc) { ModelState.AddModelError(string.Empty, exc.Message); } } if (ModelState.IsValid) { checkoutAttributeValue = model.ToEntity(checkoutAttributeValue); await _checkoutAttributeService.UpdateCheckoutAttributeValueAsync(checkoutAttributeValue); await UpdateValueLocalesAsync(checkoutAttributeValue, model); ViewBag.RefreshPage = true; return(View(model)); } //prepare model model = await _checkoutAttributeModelFactory.PrepareCheckoutAttributeValueModelAsync(model, checkoutAttribute, checkoutAttributeValue, true); //if we got this far, something failed, redisplay form return(View(model)); }