public async Task <IActionResult> AddressCreate(CustomerAddressModel model, IFormCollection form) { var customer = await _customerService.GetCustomerById(model.CustomerId); if (customer == null) { //No customer found with the specified id return(RedirectToAction("List")); } //custom address attributes var customAttributes = await form.ParseCustomAddressAttributes(_addressAttributeParser, _addressAttributeService); var customAttributeWarnings = await _addressAttributeParser.GetAttributeWarnings(customAttributes); foreach (var error in customAttributeWarnings) { ModelState.AddModelError("", error); } if (ModelState.IsValid) { var address = await _customerViewModelService.InsertAddressModel(customer, model, customAttributes); SuccessNotification(_localizationService.GetResource("Admin.Customers.Customers.Addresses.Added")); return(RedirectToAction("AddressEdit", new { addressId = address.Id, customerId = model.CustomerId })); } //If we got this far, something failed, redisplay form await _customerViewModelService.PrepareAddressModel(model, null, customer, true); return(View(model)); }
public async Task <IActionResult> Edit(ReturnRequestModel model, bool continueEditing, IFormCollection form, [FromServices] IAddressAttributeService addressAttributeService, [FromServices] IAddressAttributeParser addressAttributeParser, [FromServices] OrderSettings orderSettings ) { var returnRequest = await _returnRequestService.GetReturnRequestById(model.Id); if (returnRequest == null) { //No return request found with the specified id return(RedirectToAction("List")); } if (_workContext.CurrentCustomer.IsStaff() && returnRequest.StoreId != _workContext.CurrentCustomer.StaffStoreId) { return(RedirectToAction("List", "ReturnRequest")); } //a vendor should have access only to his return request if (_workContext.CurrentVendor != null && returnRequest.VendorId != _workContext.CurrentVendor.Id) { return(RedirectToAction("List", "ReturnRequest")); } var customAddressAttributes = string.Empty; if (orderSettings.ReturnRequests_AllowToSpecifyPickupAddress) { customAddressAttributes = await form.ParseCustomAddressAttributes(addressAttributeParser, addressAttributeService); var customAddressAttributeWarnings = await addressAttributeParser.GetAttributeWarnings(customAddressAttributes); foreach (var error in customAddressAttributeWarnings) { ModelState.AddModelError("", error); } } if (ModelState.IsValid) { returnRequest = await _returnRequestViewModelService.UpdateReturnRequestModel(returnRequest, model, customAddressAttributes); SuccessNotification(_localizationService.GetResource("Admin.ReturnRequests.Updated")); return(continueEditing ? RedirectToAction("Edit", new { id = returnRequest.Id }) : RedirectToAction("List")); } //If we got this far, something failed, redisplay form await _returnRequestViewModelService.PrepareReturnRequestModel(model, returnRequest, false); return(View(model)); }
public async Task <IActionResult> Edit(MerchandiseReturnModel model, bool continueEditing, IFormCollection form, [FromServices] IAddressAttributeService addressAttributeService, [FromServices] IAddressAttributeParser addressAttributeParser, [FromServices] OrderSettings orderSettings ) { var merchandiseReturn = await _merchandiseReturnService.GetMerchandiseReturnById(model.Id); if (merchandiseReturn == null) { //No merchandise return found with the specified id return(RedirectToAction("List")); } if (await _groupService.IsStaff(_workContext.CurrentCustomer) && merchandiseReturn.StoreId != _workContext.CurrentCustomer.StaffStoreId) { return(RedirectToAction("List", "MerchandiseReturn")); } //a vendor should have access only to his merchandise return if (_workContext.CurrentVendor != null && merchandiseReturn.VendorId != _workContext.CurrentVendor.Id) { return(RedirectToAction("List", "MerchandiseReturn")); } var customAddressAttributes = new List <CustomAttribute>(); if (orderSettings.MerchandiseReturns_AllowToSpecifyPickupAddress) { customAddressAttributes = await form.ParseCustomAddressAttributes(addressAttributeParser, addressAttributeService); var customAddressAttributeWarnings = await addressAttributeParser.GetAttributeWarnings(customAddressAttributes); foreach (var error in customAddressAttributeWarnings) { ModelState.AddModelError("", error); } } if (ModelState.IsValid) { merchandiseReturn = await _merchandiseReturnViewModelService.UpdateMerchandiseReturnModel(merchandiseReturn, model, customAddressAttributes); Success(_translationService.GetResource("Admin.Orders.MerchandiseReturns.Updated")); return(continueEditing ? RedirectToAction("Edit", new { id = merchandiseReturn.Id }) : RedirectToAction("List")); } //If we got this far, something failed, redisplay form await _merchandiseReturnViewModelService.PrepareMerchandiseReturnModel(model, merchandiseReturn, false); return(View(model)); }
public IActionResult AddressEdit(CustomerAddressModel model, IFormCollection form) { var customer = _customerService.GetCustomerById(model.CustomerId); if (customer == null) { //No customer found with the specified id return(RedirectToAction("List")); } var address = customer.Addresses.Where(x => x.Id == model.Address.Id).FirstOrDefault(); if (address == null) { //No address found with the specified id return(RedirectToAction("Edit", new { id = customer.Id })); } //custom address attributes var customAttributes = form.ParseCustomAddressAttributes(_addressAttributeParser, _addressAttributeService); var customAttributeWarnings = _addressAttributeParser.GetAttributeWarnings(customAttributes); foreach (var error in customAttributeWarnings) { ModelState.AddModelError("", error); } if (ModelState.IsValid) { address = _customerViewModelService.UpdateAddressModel(customer, address, model, customAttributes); SuccessNotification(_localizationService.GetResource("Admin.Customers.Customers.Addresses.Updated")); return(RedirectToAction("AddressEdit", new { addressId = model.Address.Id, customerId = model.CustomerId })); } //If we got this far, something failed, redisplay form _customerViewModelService.PrepareAddressModel(model, address, customer, true); return(View(model)); }
public IActionResult Edit(ReturnRequestModel model, bool continueEditing, IFormCollection form) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageReturnRequests)) { return(AccessDeniedView()); } var returnRequest = _returnRequestService.GetReturnRequestById(model.Id); if (returnRequest == null) { //No return request found with the specified id return(RedirectToAction("List")); } var customAddressAttributes = string.Empty; if (_orderSettings.ReturnRequests_AllowToSpecifyPickupAddress) { customAddressAttributes = form.ParseCustomAddressAttributes(_addressAttributeParser, _addressAttributeService); var customAddressAttributeWarnings = _addressAttributeParser.GetAttributeWarnings(customAddressAttributes); foreach (var error in customAddressAttributeWarnings) { ModelState.AddModelError("", error); } } if (ModelState.IsValid) { returnRequest.CustomerComments = model.CustomerComments; returnRequest.StaffNotes = model.StaffNotes; returnRequest.ReturnRequestStatusId = model.ReturnRequestStatusId; returnRequest.UpdatedOnUtc = DateTime.UtcNow; if (_orderSettings.ReturnRequests_AllowToSpecifyPickupDate) { returnRequest.PickupDate = model.PickupDate; } if (_orderSettings.ReturnRequests_AllowToSpecifyPickupAddress) { returnRequest.PickupAddress = model.PickupAddress.ToEntity(); if (returnRequest.PickupAddress != null) { returnRequest.PickupAddress.CustomAttributes = customAddressAttributes; } } returnRequest.NotifyCustomer = model.NotifyCustomer; _returnRequest.Update(returnRequest); //activity log _customerActivityService.InsertActivity("EditReturnRequest", returnRequest.Id, _localizationService.GetResource("ActivityLog.EditReturnRequest"), returnRequest.Id); if (model.NotifyCustomer) { NotifyCustomer(returnRequest); } SuccessNotification(_localizationService.GetResource("Admin.ReturnRequests.Updated")); return(continueEditing ? RedirectToAction("Edit", new { id = returnRequest.Id }) : RedirectToAction("List")); } //If we got this far, something failed, redisplay form PrepareReturnRequestModel(model, returnRequest, false); return(View(model)); }