public virtual IActionResult Edit(ContractAttributeModel model, bool continueEditing)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageSettings))
            {
                return(AccessDeniedView());
            }

            var contractAttribute = _contractAttributeService.GetContractAttributeById(model.Id);

            if (contractAttribute == null)
            {
                //no customer attribute found with the specified id
                return(RedirectToAction("List"));
            }

            if (!ModelState.IsValid)
            {
                //if we got this far, something failed, redisplay form
                return(View(model));
            }

            contractAttribute = model.ToEntity(contractAttribute);
            _contractAttributeService.UpdateContractAttribute(contractAttribute);

            //activity log
            _customerActivityService.InsertActivity("EditContractAttribute",
                                                    string.Format(_localizationService.GetResource("ActivityLog.EditContractAttribute"), contractAttribute.Id),
                                                    contractAttribute);

            //locales
            UpdateAttributeLocales(contractAttribute, model);

            SuccessNotification(_localizationService.GetResource("Admin.Contract.ContractAttributes.Updated"));

            if (!continueEditing)
            {
                return(RedirectToAction("List"));
            }

            //selected tab
            SaveSelectedTabName();

            return(RedirectToAction("Edit", new { id = contractAttribute.Id }));
        }
        public virtual IActionResult Create(ContractAttributeModel model, bool continueEditing)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageSettings))
            {
                return(AccessDeniedView());
            }

            if (ModelState.IsValid)
            {
                var contractAttribute = model.ToEntity <ContractAttribute>();
                _contractAttributeService.InsertContractAttribute(contractAttribute);

                //activity log
                _customerActivityService.InsertActivity("AddNewContractAttribute",
                                                        string.Format(_localizationService.GetResource("ActivityLog.AddNewContractAttribute"), contractAttribute.Id),
                                                        contractAttribute);

                //locales
                UpdateAttributeLocales(contractAttribute, model);

                SuccessNotification(_localizationService.GetResource("Admin.Contract.ContractAttribute.Added"));

                if (!continueEditing)
                {
                    return(RedirectToAction("List"));
                }

                //selected tab
                SaveSelectedTabName();

                return(RedirectToAction("Edit", new { id = contractAttribute.Id }));
            }

            //prepare model
            model = _contractAttributeModelFactory.PrepareContractAttributeModel(model, null, true);

            //if we got this far, something failed, redisplay form
            return(View(model));
        }
Beispiel #3
0
        public virtual ContractAttributeModel PrepareContractAttributeModel(ContractAttributeModel model,
                                                                            ContractAttribute contractAttribute, bool excludeProperties = false)
        {
            Action <ContractAttributeLocalizedModel, int> localizedModelConfiguration = null;

            if (contractAttribute != null)
            {
                model = model ?? contractAttribute.ToModel <ContractAttributeModel>();

                PrepareContractAttributeValueSearchModel(model.ContractAttributeValueSearchModel, contractAttribute);

                localizedModelConfiguration = (locale, languageId) =>
                {
                    locale.Name = _localizationService.GetLocalized(contractAttribute, entity => entity.Name, languageId, false, false);
                };
            }

            if (!excludeProperties)
            {
                model.Locales = _localizedModelFactory.PrepareLocalizedModels(localizedModelConfiguration);
            }

            return(model);
        }
 protected virtual void UpdateAttributeLocales(ContractAttribute contractAttribute, ContractAttributeModel model)
 {
     foreach (var localized in model.Locales)
     {
         _localizedEntityService.SaveLocalizedValue(contractAttribute,
                                                    x => x.Name,
                                                    localized.Name,
                                                    localized.LanguageId);
     }
 }