public ActionResult Save(AddressSaveViewModel addressRendering) { var model = ResolveModel(); var viewModel = model.GetViewModel(); string message; var parameters = new System.Collections.Generic.Dictionary <string, object>(); parameters.Add("addressRendering", addressRendering); parameters.Add("modelState", ModelState); var detailTemplateName = this.detailTemplateNamePrefix + this.TemplateName; if (!model.CanProcessRequest(parameters, out message)) { return(this.PartialView("_Warning", message)); } if (ModelState.IsValid) { model.Save(addressRendering); if (viewModel.NextStepUrl?.Length == 0) { return(View(detailTemplateName, viewModel)); } else { return(Redirect(viewModel.NextStepUrl)); } } else { return(View(detailTemplateName, viewModel)); } }
public void Save_When_With_Valid_Data_Should_Execute_Basket_Pipeline_And_Return_Json() { //Arrange var viewModel = new AddressSaveViewModel(); //Act var result = _controller.Save(viewModel); //Assert _transactionLibraryInternal.Received().ExecuteBasketPipeline(); var jsonResult = result as JsonResult; Assert.NotNull(jsonResult); }
public ActionResult Save(AddressSaveViewModel addressRendering) { if (!addressRendering.IsShippingAddressDifferent) { this.ModelState.Remove("ShippingAddress.FirstName"); this.ModelState.Remove("ShippingAddress.LastName"); this.ModelState.Remove("ShippingAddress.EmailAddress"); this.ModelState.Remove("ShippingAddress.Line1"); this.ModelState.Remove("ShippingAddress.PostalCode"); this.ModelState.Remove("ShippingAddress.City"); } if (!ModelState.IsValid) { var dictionary = ModelState.ToDictionary(kvp => kvp.Key, kvp => kvp.Value.Errors .Select(e => e.ErrorMessage).ToArray()) .Where(m => m.Value.Any()); return(Json(new { modelStateErrors = dictionary })); } if (addressRendering.IsShippingAddressDifferent) { EditBillingInformation(addressRendering.BillingAddress); EditShippingInformation(addressRendering.ShippingAddress); } else { EditBillingInformation(addressRendering.BillingAddress); EditShippingInformation(addressRendering.BillingAddress); } if (Tracker.Current != null) { Tracker.Current.Session.CustomData["FirstName"] = addressRendering.BillingAddress.FirstName; } _transactionLibrary.ExecuteBasketPipeline(); return(Json(new { ShippingUrl = "/shipping" })); }
public virtual JsonResult Save(AddressSaveViewModel addressRendering) { var result = new JsonResult(); if (addressRendering.IsShippingAddressDifferent) { EditBillingInformation(addressRendering.BillingAddress); EditShippingInformation(addressRendering.ShippingAddress); } else { EditBillingInformation(addressRendering.BillingAddress); EditShippingInformation(addressRendering.BillingAddress); } _transactionLibraryInternal.ExecuteBasketPipeline(); result.Data = new { ShippingUrl = GetNextStepUrl(nextStepId) }; return(result); }
public ActionResult Save(AddressSaveViewModel addressRendering) { var model = ResolveModel(); var viewModel = model.GetViewModel(); string message; var parameters = new System.Collections.Generic.Dictionary <string, object>(); parameters.Add("addressRendering", addressRendering); parameters.Add("modelState", ModelState); var detailTemplateName = this.detailTemplateNamePrefix + this.TemplateName; if (!model.CanProcessRequest(parameters, out message)) { return(this.Json(new OperationStatusDTO() { Status = "failed", Message = message }, JsonRequestBehavior.AllowGet)); } if (ModelState.IsValid) { model.Save(addressRendering); return(this.Json(new OperationStatusDTO() { Status = "success" }, JsonRequestBehavior.AllowGet)); } else { var errorList = model.ErrorMessage(ModelState); var responseDTO = new OperationStatusDTO(); responseDTO.Status = "failed"; responseDTO.Data.Add("errors", errorList); return(this.Json(responseDTO, JsonRequestBehavior.AllowGet)); } }