public IActionResult CreateCustodianAccount(string storeId) { var vm = new CreateCustodianAccountViewModel(); vm.StoreId = storeId; vm.SetCustodianRegistry(_custodianRegistry); return(View(vm)); }
public async Task <IActionResult> CreateCustodianAccount(string storeId, CreateCustodianAccountViewModel vm) { var store = GetCurrentStore(); vm.StoreId = store.Id; vm.SetCustodianRegistry(_custodianRegistry); var custodian = _custodianRegistry.GetCustodianByCode(vm.SelectedCustodian); if (custodian == null) { ModelState.AddModelError(nameof(vm.SelectedCustodian), "Invalid Custodian"); return(View(vm)); } if (string.IsNullOrEmpty(vm.Name)) { vm.Name = custodian.Name; } var custodianAccountData = new CustodianAccountData { CustodianCode = vm.SelectedCustodian, StoreId = vm.StoreId, Name = custodian.Name }; var configData = new JObject(); foreach (var pair in Request.Form) { configData.Add(pair.Key, pair.Value.ToString()); } var configForm = await custodian.GetConfigForm(configData, "en-US"); if (configForm.IsValid()) { // configForm.removeUnusedKeys(); custodianAccountData.SetBlob(configData); custodianAccountData = await _custodianAccountRepository.CreateOrUpdate(custodianAccountData); TempData[WellKnownTempData.SuccessMessage] = "Custodian account successfully created"; CreatedCustodianAccountId = custodianAccountData.Id; return(RedirectToAction(nameof(ViewCustodianAccount), new { storeId = custodianAccountData.StoreId, accountId = custodianAccountData.Id })); } // Ask for more data vm.ConfigForm = configForm; return(View(vm)); }