public async Task <IActionResult> EditExaminationReagents(ExaminationReagentsViewModel examinationReagentsVM) { // TODO: make async(ajax), Test await ExaminationsHelper.EditExaminationReagents(examinationReagentsVM); return(RedirectToAction(nameof(Index))); }
public static async Task EditExaminationReagents(ExaminationReagentsViewModel examinationReagentsVM) { bool isNew = !_context.ExaminationReagents.Any(r => r.ExaminationID == examinationReagentsVM.ExaminationID); if (isNew) { List <ExaminationReagent> examinationReagents = new List <ExaminationReagent>(); foreach (ReagentIdAmt item in examinationReagentsVM.ReagentAmt) { examinationReagents.Add(new ExaminationReagent() { ExaminationID = examinationReagentsVM.ExaminationID, ReagentID = item.ReagentID, ReagentAmountUsed = item.Amount }); } await _context.ExaminationReagents.AddRangeAsync(examinationReagents); await _context.SaveChangesAsync(); } else { IEnumerable <int> reagentIds = examinationReagentsVM.ReagentAmt.Select(r => r.ReagentID); List <ExaminationReagent> examinationReagentsToUpdate = await _context.ExaminationReagents.Where(r => r.ExaminationID == examinationReagentsVM.ExaminationID).ToListAsync(); foreach (ReagentIdAmt item in examinationReagentsVM.ReagentAmt) { if (examinationReagentsToUpdate.Any(r => r.ReagentID == item.ReagentID)) { if (item.Amount == 0) { ExaminationReagent exReagent = await _context.ExaminationReagents.FindAsync(examinationReagentsVM.ExaminationID, item.ReagentID); examinationReagentsToUpdate.Remove(exReagent); _context.ExaminationReagents.Remove(exReagent); } else { examinationReagentsToUpdate.FirstOrDefault(r => r.ReagentID == item.ReagentID).ReagentAmountUsed = item.Amount; } } else { await _context.ExaminationReagents.AddAsync(new ExaminationReagent { ExaminationID = examinationReagentsVM.ExaminationID, ReagentID = item.ReagentID, ReagentAmountUsed = item.Amount }); } } _context.ExaminationReagents.UpdateRange(examinationReagentsToUpdate); await _context.SaveChangesAsync(); } }
// GET: Examinations/AddReagents/3 // TODO: Create AddReagents View public async Task <IActionResult> EditExaminationReagents(int id) { ViewBag.Reagents = _context.Reagents.Select(o => new SelectListItem() { Value = o.ID.ToString(), Text = o.ReagentCode + " | " + o.Name }); ExaminationReagentsViewModel exReag = await ExaminationsHelper.GetExamReagentsByIdAsync(id); return(View(exReag)); }