private async Task <long> SaveReturnRequest(EditReturnRequest model) { if (model.ReturnRequestId == null) { var mCreateReturnRequestItems = new List <MFulfillment_CreateReturnRequestItem>(); foreach (var item in model.ReturnRequestItems) { mCreateReturnRequestItems.Add(new MFulfillment_CreateReturnRequestItem() { FulfillableItemId = item.FulfillableItemId, Quantity = item.Quantity }); } var mCreateReturnRequest = new MFulfillment_CreateReturnRequest() { ReturnRequestType = Enum.Parse <MFulfillment_ReturnRequestTypes>(model.ReturnRequestType), ReturnRequestReasonCode = model.ReturnRequestReason, CreateReturnRequestItems = mCreateReturnRequestItems }; var aCreateReturnRequest = new AReturn_CreateReturnRequest() { MCreateReturnRequest = mCreateReturnRequest }; var returnRequestId = await ReturnAdminService.CreateReturnRequestAsync(aCreateReturnRequest); return(returnRequestId); } else { var mUpdateReturnRequestItems = new List <MFulfillment_UpdateReturnRequestItem>(); foreach (var item in model.ReturnRequestItems) { mUpdateReturnRequestItems.Add(new MFulfillment_UpdateReturnRequestItem() { ReturnRequestItemId = item.ReturnRequestItemId.Value, Quantity = item.Quantity }); } var mUpdateReturnRequest = new MFulfillment_UpdateReturnRequest() { ReturnRequestId = model.ReturnRequestId.Value, ReturnRequestType = Enum.Parse <MFulfillment_ReturnRequestTypes>(model.ReturnRequestType), ReturnRequestReasonCode = model.ReturnRequestReason, UpdateReturnRequestItems = mUpdateReturnRequestItems }; var aUpdateReturnRequest = new AReturn_UpdateReturnRequest() { MUpdateReturnRequest = mUpdateReturnRequest }; await ReturnAdminService.UpdateReturnRequestAsync(aUpdateReturnRequest); return(model.ReturnRequestId.Value); } }
public async Task <ActionResult> Edit(EditReturnRequest model) { if (ModelState.IsValid) { var totalQuantity = model.ReturnRequestItems.Sum(r => r.Quantity); if (totalQuantity == 0) { ModelState.AddModelError(string.Empty, "Quantity must be specified for each least one item."); } } if (!ModelState.IsValid) { var aReturnRequestReasons = await ReturnAdminService.GetReturnRequestReasonsAsync(); model.ReturnRequestTypes = ModelFactory.GetReturnRequestTypeSelectList(model.ReturnRequestId == null); model.ReturnRequestReasons = ModelFactory.GetReturnRequestReasonSelectList(aReturnRequestReasons.MReturnRequestReasons, model.ReturnRequestId == null); foreach (var itemModel in model.ReturnRequestItems) { itemModel.Quantities = ModelFactory.GetQuantitySelectList(itemModel.MaxQuantity); } return(View(model)); } var returnRequestId = model.ReturnRequestId; var actionData = this.GetActionData(); switch (actionData?.ActionName) { case Actions.Save: returnRequestId = await SaveReturnRequest(model); break; } return(RedirectToAction("Index", "ReturnRequest", new { id = returnRequestId })); }