public async Task <ActionResult> Edit([Bind(Include = "InterimReviewId,SerialNumber,UniqueNumber,DateOfReview,NextReview,Comments,City,ServiceMan,DeviceId,ModuleId")] InterimReviewViewModel interimReview)
        {
            if (ModelState.IsValid)
            {
                InterimReview interimReviewDb = await db.InterimReviews.FindAsync(interimReview.InterimReviewId);

                if (interimReviewDb == null)
                {
                    return(HttpNotFound());
                }

                interimReviewDb.DateOfReview = interimReview.DateOfReview;
                interimReviewDb.NextReview   = interimReview.NextReview;
                interimReviewDb.Comments     = interimReview.Comments;
                interimReviewDb.City         = interimReview.City;
                interimReviewDb.ServiceMan   = interimReview.ServiceMan;

                db.Entry(interimReviewDb).State = EntityState.Modified;

                var device = db.Devices.Find(interimReview.DeviceId);
                if (device != null)
                {
                    device.InterimReviewDate = interimReview.NextReview;
                    db.Entry(device).State   = EntityState.Modified;
                }

                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            return(View(interimReview));
        }
        public async Task <ActionResult> Create([Bind(Include = "InterimReviewId,SerialNumber,UniqueNumber,DateOfReview,NextReview,Comments,City,ServiceMan,DeviceId,ModuleId")] InterimReviewViewModel interimReview)
        {
            if (ModelState.IsValid)
            {
                Module module = db.Modules.Where(d => d.DeviceId == interimReview.DeviceId).Where(m => m.Active == true).FirstOrDefault();
                if (module == null)
                {
                    return(HttpNotFound());
                }

                var device = db.Devices.Find(interimReview.DeviceId);
                if (device != null)
                {
                    device.InterimReviewDate = interimReview.NextReview;
                    db.Entry(device).State   = EntityState.Modified;
                }

                InterimReview newInterimReview = new InterimReview();

                newInterimReview.City         = interimReview.City;
                newInterimReview.Comments     = interimReview.Comments;
                newInterimReview.DateOfReview = interimReview.DateOfReview;
                newInterimReview.DeviceId     = interimReview.DeviceId;
                newInterimReview.NextReview   = interimReview.NextReview;
                newInterimReview.ServiceMan   = interimReview.ServiceMan;

                newInterimReview.ModuleId = module.ModuleId;
                db.InterimReviews.Add(newInterimReview);
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }

            return(View(interimReview));
        }