public IActionResult ShutRep(string repairs)
        {
            // Get Login User's details.
            var ur = _context.AppUsers.Where(u => u.UserName == this.User.Identity.Name).FirstOrDefault();

            string[]               s = repairs.Split(new char[] { ';' });
            RepairModel            repair;
            RepairDtlModel         repairDtl;
            RepairShutRecordsModel shutRecord = new RepairShutRecordsModel();

            foreach (string ss in s)
            {
                repair = _context.Repairs.Find(ss);
                if (repair != null)
                {
                    // Update shut time on RepairDtl.
                    repairDtl          = _context.RepairDtls.Find(ss);
                    repairDtl.ShutDate = DateTime.Now;
                    _context.Entry(repairDtl).State = EntityState.Modified;
                    // Record the shut user on RepairShutRecords.
                    shutRecord.DocId = repairDtl.DocId;
                    shutRecord.Rtp   = ur.Id;
                    shutRecord.Rtt   = DateTime.Now;
                    _context.Add(shutRecord);
                    _context.SaveChanges();
                }
            }
            return(new JsonResult(repairs)
            {
                Value = new { success = true, error = "" }
            });
        }
        public IActionResult ShutRep(string repairs, string shutType, string shutDate = null)
        {
            if (shutType == "關帳")
            {
                // Get Login User's details.
                var ur = _context.AppUsers.Where(u => u.UserName == this.User.Identity.Name).FirstOrDefault();

                string[]               s = repairs.Split(new char[] { ';' });
                RepairModel            repair;
                RepairDtlModel         repairDtl;
                RepairShutRecordsModel shutRecord = new RepairShutRecordsModel();
                foreach (string ss in s)
                {
                    repair = _context.Repairs.Find(ss);
                    if (repair != null)
                    {
                        // Update shut time on RepairDtl.
                        repairDtl          = _context.RepairDtls.Find(ss);
                        repairDtl.ShutDate = DateTime.Now;
                        if (!string.IsNullOrEmpty(shutDate))
                        {
                            int      year  = Convert.ToInt32(shutDate.Substring(0, 3)) + 1911;
                            int      month = Convert.ToInt32(shutDate.Substring(3, 2));
                            DateTime date  = new DateTime(year, month, 1);
                            repairDtl.ShutDate = date;
                        }
                        _context.Entry(repairDtl).State = EntityState.Modified;
                        // Record the shut user on RepairShutRecords.
                        shutRecord.DocId = repairDtl.DocId;
                        shutRecord.Rtp   = ur.Id;
                        shutRecord.Rtt   = DateTime.Now;
                        _context.Add(shutRecord);
                        // Shut all tickets.
                        var rcs = _context.RepairCosts.Include(rc => rc.TicketDtl).Where(rc => rc.DocId == repair.DocId).ToList();
                        if (rcs.Count() > 0)
                        {
                            foreach (var item in rcs)
                            {
                                var ticket = _context.Tickets.Find(item.TicketDtl.TicketDtlNo);
                                if (ticket != null)
                                {
                                    ticket.IsShuted = "Y";
                                    _context.Entry(ticket).State = EntityState.Modified;
                                }
                            }
                        }
                        _context.SaveChanges();
                    }
                }
            }
            else if (shutType == "反關帳")
            {
                string[]       s = repairs.Split(new char[] { ';' });
                RepairModel    repair;
                RepairDtlModel repairDtl;
                foreach (string ss in s)
                {
                    repair = _context.Repairs.Find(ss);
                    if (repair != null)
                    {
                        // Update shut time on RepairDtl.
                        repairDtl          = _context.RepairDtls.Find(ss);
                        repairDtl.ShutDate = null;
                        _context.Entry(repairDtl).State = EntityState.Modified;
                        // delete the data of RepairShutRecords.
                        var shutRecord = _context.RepairShutRecords.Find(ss);
                        if (shutRecord != null)
                        {
                            _context.Remove(shutRecord);
                        }
                        // Reshut all tickets.
                        var rcs = _context.RepairCosts.Include(rc => rc.TicketDtl).Where(rc => rc.DocId == repair.DocId).ToList();
                        if (rcs.Count() > 0)
                        {
                            foreach (var item in rcs)
                            {
                                var ticket = _context.Tickets.Find(item.TicketDtl.TicketDtlNo);
                                if (ticket != null)
                                {
                                    ticket.IsShuted = "N";
                                    _context.Entry(ticket).State = EntityState.Modified;
                                }
                            }
                        }
                        _context.SaveChanges();
                    }
                }
            }

            return(new JsonResult(repairs)
            {
                Value = new { success = true, error = "" }
            });
        }