예제 #1
0
        public ActionResult Update(InspectionFormViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                viewModel.Organization   = _context.Organizations.ToList();
                viewModel.InspectionType = _context.PostingTypes.ToList();
                return(View("InspectionForm", viewModel));
            }
            var userId     = User.Identity.GetUserId();
            var inspection = _context.Inspections.Single(i => i.Id == viewModel.Id && i.User.Id == userId);

            inspection.OrganizationId   = viewModel.OrganizationId;
            inspection.InspectionTypeId = viewModel.InspectionTypeId;
            inspection.DateTime         = viewModel.GetDateTime();
            inspection.Description      = viewModel.Description;

            var notification = Notification.InspectionUpdated(inspection);

            var users = _context.Users.Where(u => u.OrganizationId == inspection.OrganizationId).ToList();

            foreach (var user in users)
            {
                user.Notify(notification);
            }

            _context.SaveChanges();


            return(RedirectToAction("Index", "Home"));
        }