Exemple #1
0
        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();
            }
        }
Exemple #2
0
        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();
        }
Exemple #3
0
        public static async Task AddAsync(ReagentViewModel reagentVM)
        {
            Reagent reagent = SimplifyCreate(reagentVM);
            await _context.Reagents.AddAsync(reagent);

            await _context.SaveChangesAsync();
        }
Exemple #4
0
        public static async Task AddPatientAsync(PatientViewModel patientVM)
        {
            await _context.Patients.AddAsync(Simplify(patientVM));

            await _context.SaveChangesAsync();
        }