コード例 #1
0
        public async Task <IActionResult> EditExaminationReagents(ExaminationReagentsViewModel examinationReagentsVM)
        {
            // TODO: make async(ajax), Test
            await ExaminationsHelper.EditExaminationReagents(examinationReagentsVM);

            return(RedirectToAction(nameof(Index)));
        }
コード例 #2
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();
            }
        }
コード例 #3
0
        // 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));
        }