/// <summary> /// Converts from. /// </summary> /// <param name="createContractProductViewModel">The create contract product view model.</param> /// <returns></returns> /// <exception cref="ArgumentNullException">createContractProductViewModel</exception> public AddProductToContractModel ConvertFrom(CreateContractProductViewModel createContractProductViewModel) { if (createContractProductViewModel == null) { throw new ArgumentNullException(nameof(createContractProductViewModel)); } AddProductToContractModel addProductToContractModel = new AddProductToContractModel(); addProductToContractModel.Value = createContractProductViewModel.Value; addProductToContractModel.DisplayText = createContractProductViewModel.DisplayText; addProductToContractModel.ProductName = createContractProductViewModel.ProductName; return(addProductToContractModel); }
public async Task <IActionResult> CreateContractProduct(CreateContractProductViewModel viewModel, CancellationToken cancellationToken) { // Validate the model if (this.ValidateModel(viewModel)) { try { String accessToken = await this.HttpContext.GetTokenAsync("access_token"); AddProductToContractModel addProductToContractModel = this.ViewModelFactory.ConvertFrom(viewModel); // All good with model, call the client AddProductToContractResponseModel addProductToContractResponse = await this.ApiClient.AddProductToContract(accessToken, this.User.Identity as ClaimsIdentity, viewModel.ContractId, addProductToContractModel, cancellationToken); // Product Created, redirect to the Product List screen return(this.RedirectToAction("GetContractProductsList", "Contract", new { contractId = addProductToContractResponse.ContractId }).WithSuccess("Product Created Successful", $"Contract Product {viewModel.ProductName} successfully created")); } catch (Exception ex) { // Something went wrong creating the Product return(this.View("CreateContractProduct").WithWarning("New Contract Product", Helpers.BuildUserErrorMessage("Error creating the contract product"))); } } // If we got this far, something failed, redisplay form return(this.View("CreateContractProduct", viewModel)); }