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(); } }
public static async Task AddOrderAsync(OrderViewModel orderVM) { Order order = SimplifyOrder(orderVM); await _context.Orders.AddAsync(order); await _context.SaveChangesAsync(); // TODO: create orderId in ctor ReagentOrder[] reagentOrders = SimplifyReagentOrder(orderVM.ReagentAmt, order.ID).Item1; await _context.ReagentOrders.AddRangeAsync(reagentOrders); await _context.SaveChangesAsync(); }
public static async Task AddAsync(ReagentViewModel reagentVM) { Reagent reagent = SimplifyCreate(reagentVM); await _context.Reagents.AddAsync(reagent); await _context.SaveChangesAsync(); }
public static async Task AddPatientAsync(PatientViewModel patientVM) { await _context.Patients.AddAsync(Simplify(patientVM)); await _context.SaveChangesAsync(); }