public async Task <ActionResult> OnPostSaveStages([FromBody] RMACaseViewModel data) { if (!ModelState.IsValid) { return(Page()); } var result = "Error! Saving RMA Stages completed."; var user = await _userManager.FindByNameAsync(User.Identity.Name); foreach (var stage in data.RMAStages) { if (string.IsNullOrEmpty(stage.Id)) { var rmaStage = new RMAStage { RMACaseId = stage.RMACaseId, SerialNumbers = stage.SerialNumbers, Note = stage.Note, ProcessedByUserId = user.Id, ProcessedDate = DateTime.UtcNow, CorrectiveAction = stage.CorrectiveAction, CorrectiveActionNote = stage.CorrectiveActionNote, IsActionDone = stage.IsActionDone, Attachments = new List <FileAttachment>() }; _context.RMAStages.Add(rmaStage); } else { var rmaStage = _context.RMAStages.FirstOrDefault(x => x.Id == stage.Id); rmaStage.RMACaseId = stage.RMACaseId; rmaStage.Note = stage.Note; rmaStage.CorrectiveAction = stage.CorrectiveAction; rmaStage.CorrectiveActionNote = stage.CorrectiveActionNote; rmaStage.IsActionDone = stage.IsActionDone; } } // remove original stages not included in this post var stages = _context.RMAStages.Where(x => x.RMACaseId == data.Id).ToList(); foreach (var s in stages) { if (!data.RMAStages.Any(x => x.Id == s.Id)) { _context.RMAStages.Remove(s); } } _context.SaveChanges(); result = "Success! Save RMA Stages are completed."; return(new JsonResult(result)); }
public async Task <IActionResult> OnGetAsync(string id) { if (string.IsNullOrEmpty(id)) { return(NotFound()); } var config = new MapperConfiguration(cfg => { cfg.CreateMap <RMACase, RMACaseViewModel>(); cfg.CreateMap <RMAStage, RMAStageViewModel>(); }); IMapper mapper = config.CreateMapper(); RMACase = _context.RMACases .Include(x => x.ProcessedByUser) .Include(x => x.RMAStages) .Select(x => mapper.Map <RMACase, RMACaseViewModel>(x)) .Where(x => x.Id == id).FirstOrDefault(); RMARequestStatus = _context.RMARequests.FirstOrDefault(x => x.Id == RMACase.RMARequestId).Status; //RMACase = new RMACaseViewModel //{ // Id = id, // Attachments = new List<Web.Data.ViewModels.FileAttachmentViewModel>(), // CustomerPartNumber = data.CustomerPartNumber, // InvoiceNumber = data.InvoiceNumber, // PartNumber = data.PartNumber, // Quantity = data.Quantity, // Remark = data.Remark, // RMACaseStatus = data.RMACaseStatus, // RMALocation = data.RMALocation, // RMARequestId = data.RMARequestId, // RMAStages = new List<RMAStageViewModel>(), // WarrantyStatus = data.WarrantyStatus //}; if (RMACase == null) { return(NotFound()); } //foreach(var stage in RMACase.RMAStages) //{ // RMACase.RMAStages.Add(new RMAStageViewModel // { // Id = stage.Id, // Attachments = new List<Web.Data.ViewModels.FileAttachmentViewModel>(), // Note = stage.Note, // RMACaseId = stage.RMACaseId, // SerialNumbers = stage.SerialNumbers, // CorrectiveAction = stage.CorrectiveAction, // CorrectiveActionNote = stage.CorrectiveActionNote, // IsActionDone = stage.IsActionDone, // ProcessedByUserId = stage.ProcessedByUserId, // ProcessedByUser = stage.ProcessedByUser, // ProcessedDate = stage.ProcessedDate // }); //} return(Page()); }