public IActionResult RepairCreate(CReairViewModel cReair)
        {
            db.TRepairs.Add(cReair.repair);
            db.SaveChanges();


            return(RedirectToAction("RepairList"));
        }
        public IActionResult RepairEdit(CReairViewModel vrepair)
        {
            if (vrepair != null)
            {
                TRepair c = db.TRepairs.FirstOrDefault(p => p.CRepairNumber == vrepair.CRepairNumber);
                if (c != null)
                {
                    c.CContentofRepair = vrepair.CContentofRepair;
                    c.CAppleDate       = (DateTime)vrepair.CAppleDate;
                    c.CLocation        = vrepair.CLocation;
                    c.CPhone           = vrepair.CPhone;
                    c.CRepairCategory  = vrepair.CRepairCategory;
                    c.CRepairStatus    = (byte)vrepair.CRepairStatus;


                    db.SaveChanges();
                }
            }
            return(RedirectToAction("RepairList"));
        }
        public IActionResult search(int?number, DateTime?start, DateTime?end, string?content, string?status)
        {
            ViewBag.Session_USERID_USERDEPARTMENTID = int.Parse(HttpContext.Session.GetString(CDictionary.CURRENT_LOGINED_USERDEPARTMENTID));
            ViewBag.Session_USERIDSERID             = int.Parse(HttpContext.Session.GetString(CDictionary.CURRENT_LOGINED_USERID));
            ViewBag.Session_USERJOBTITLE            = HttpContext.Session.GetString(CDictionary.CURRENT_LOGINED_USERJOBTITLE);
            ViewBag.Session_USERJOBTITLEID          = int.Parse(HttpContext.Session.GetString(CDictionary.CURRENT_LOGINED_USERJOBTITLEID));
            int    userid           = int.Parse(HttpContext.Session.GetString(CDictionary.CURRENT_LOGINED_USERID));
            string USERDEPARTMENTID = HttpContext.Session.GetString(CDictionary.CURRENT_LOGINED_USERDEPARTMENTID);

            ViewBag.UserId   = int.Parse(HttpContext.Session.GetString(CDictionary.CURRENT_LOGINED_USERID));
            ViewBag.UserName = HttpContext.Session.GetString(CDictionary.CURRENT_LOGINED_USERNAME);


            List <CReairViewModel> T = new List <CReairViewModel>();

            if (ViewBag.Session_USERJOBTITLE == "經理" && (ViewBag.Session_USERID_USERDEPARTMENTID == 4 || ViewBag.Session_USERID_USERDEPARTMENTID == 5))
            {
                var table = db.TRepairs.Where(r => (r.CRepairCategory.Contains("資訊") && int.Parse(USERDEPARTMENTID) == 4) || (r.CRepairCategory.Contains("總務") && int.Parse(USERDEPARTMENTID) == 5))
                            .Join(db.TUsers, t => t.CEmployeeId, u => u.CEmployeeId, (t, u) => new {
                    CApplyDate       = t.CAppleDate,
                    CEmployeeId      = t.CEmployeeId,
                    CRepairStatus    = t.CRepairStatus,
                    CAppleDate       = t.CAppleDate,
                    CRepairCategory  = t.CRepairCategory,
                    CRepairNumber    = t.CRepairNumber,
                    CEmployeeName    = u.CEmployeeName,
                    CContentofRepair = t.CContentofRepair,
                    CLocation        = t.CLocation,
                    CPhone           = t.CPhone,
                }).OrderBy(re => re.CAppleDate).AsEnumerable().Where(re =>
                                                                     (number != null ? re.CRepairNumber == number : true) &&
                                                                     (content != null ? re.CContentofRepair.Contains(content) : true) &&
                                                                     (status != null ? re.CRepairStatus.ToString() == status : true) &&
                                                                     (start != null ? re.CApplyDate >= start : true) &&
                                                                     (end != null ? re.CApplyDate <= end : true)).ToList();



                foreach (var item in table)
                {
                    CReairViewModel obj = new CReairViewModel()
                    {
                        CEmployeeId      = item.CEmployeeId,
                        CAppleDate       = item.CAppleDate,
                        CContentofRepair = item.CContentofRepair,
                        CLocation        = item.CLocation,
                        CPhone           = item.CPhone,
                        CRepairCategory  = item.CRepairCategory,
                        CRepairNumber    = item.CRepairNumber,
                        CRepairStatus    = item.CRepairStatus
                    };
                    T.Add(obj);
                }
            }
            else
            {
                var table1 = db.TRepairs.Where(r => r.CEmployeeId == userid)
                             .Join(db.TUsers, t => t.CEmployeeId, u => u.CEmployeeId, (t, u) => new {
                    CApplyDate       = t.CAppleDate,
                    CEmployeeId      = t.CEmployeeId,
                    CRepairStatus    = t.CRepairStatus,
                    CAppleDate       = t.CAppleDate,
                    CRepairCategory  = t.CRepairCategory,
                    CRepairNumber    = t.CRepairNumber,
                    CEmployeeName    = u.CEmployeeName,
                    CContentofRepair = t.CContentofRepair,
                    CLocation        = t.CLocation,
                    CPhone           = t.CPhone,
                }).OrderBy(re => re.CAppleDate).AsEnumerable().Where(re =>
                                                                     (number != null ? re.CRepairNumber == number : true) &&
                                                                     (content != null ? re.CContentofRepair.Contains(content) : true) &&
                                                                     (status != null ? re.CRepairStatus.ToString() == status : true) &&
                                                                     (start != null ? re.CApplyDate >= start : true) &&
                                                                     (end != null ? re.CApplyDate <= end : true)).ToList();



                foreach (var item in table1)
                {
                    CReairViewModel obj = new CReairViewModel()
                    {
                        CEmployeeId      = item.CEmployeeId,
                        CAppleDate       = item.CAppleDate,
                        CContentofRepair = item.CContentofRepair,
                        CLocation        = item.CLocation,
                        CPhone           = item.CPhone,
                        CRepairCategory  = item.CRepairCategory,
                        CRepairNumber    = item.CRepairNumber,
                        CRepairStatus    = item.CRepairStatus
                    };
                    T.Add(obj);
                }
            }



            return(PartialView("search", T));
        }