public ActionResult Create(int?AreaId, int?CycleId)
        {
            if (AreaId == null || CycleId == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var insClass = db.DEInspectClass.Where(i => i.AreaId == AreaId && i.CycleId == CycleId)
                           .OrderByDescending(i => i.ClassId).FirstOrDefault();
            // Set default values.
            DEInspectClass inspectClass = new DEInspectClass();

            inspectClass.AreaId      = AreaId.Value;
            inspectClass.CycleId     = CycleId.Value;
            inspectClass.ClassStatus = true;
            if (insClass != null)
            {
                inspectClass.ClassId = insClass.ClassId + 1;
            }
            else
            {
                inspectClass.ClassId = 1;
            }
            //
            var cia = db.DECyclesInAreas.Find(AreaId, CycleId);

            ViewBag.AreaName  = cia.DEInspectArea.AreaName;
            ViewBag.CycleName = cia.DEInspectCycle.CycleName;
            //
            return(View(inspectClass));
        }
        public async Task <ActionResult> Edit(int?AreaId, int?CycleId, int?ClassId)
        {
            if (AreaId == null || CycleId == null || ClassId == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            DEInspectClass inspectClass = await db.DEInspectClass.FindAsync(AreaId, CycleId, ClassId);

            if (inspectClass == null)
            {
                return(HttpNotFound());
            }
            return(View(inspectClass));
        }
        public async Task <ActionResult> Edit([Bind(Include = "AreaId,CycleId,ClassId,ClassName,ClassStatus,ClassOrder")] DEInspectClass inspectClass)
        {
            if (ModelState.IsValid)
            {
                inspectClass.Rtp             = WebSecurity.CurrentUserId;
                inspectClass.Rtt             = DateTime.Now;
                db.Entry(inspectClass).State = EntityState.Modified;
                await db.SaveChangesAsync();

                ViewBag.AreaId = new SelectList(db.DEInspectArea, "AreaId", "AreaName", inspectClass.AreaId);
                return(RedirectToAction("Index", new { areaId = inspectClass.AreaId, cycleId = inspectClass.CycleId }));
            }

            return(View(inspectClass));
        }
        public async Task <ActionResult> Create([Bind(Include = "AreaId,CycleId,ClassId,ClassName,ClassStatus")] DEInspectClass inspectClass)
        {
            if (ModelState.IsValid)
            {
                int lastOrder  = 0;
                var insClasses = db.DEInspectClass.Where(i => i.AreaId == inspectClass.AreaId && i.CycleId == inspectClass.CycleId);
                if (insClasses.Count() > 0)
                {
                    lastOrder = insClasses.OrderByDescending(i => i.ClassOrder).FirstOrDefault().ClassOrder;
                }
                //
                inspectClass.ClassOrder = lastOrder + 1;
                inspectClass.Rtp        = WebSecurity.CurrentUserId;
                inspectClass.Rtt        = DateTime.Now;
                db.DEInspectClass.Add(inspectClass);
                await db.SaveChangesAsync();

                ViewBag.AreaId = new SelectList(db.DEInspectArea, "AreaId", "AreaName", inspectClass.AreaId);
                return(RedirectToAction("Index", new { areaId = inspectClass.AreaId, cycleId = inspectClass.CycleId }));
            }

            return(View(inspectClass));
        }