public ActionResult Create() { var viewModel = new CreateWorkOrderViewModel() { Categories = _context.WorkOrderCategories.OrderBy(w => w.Name).ToList(), Locations = _context.Locations.OrderBy(l => l.Name).ToList(), Statues = _context.WorkOrderStatus.ToList(), Employees = _context.AppUsers.Where(a => !(a is LeaseHolder)).ToList(), Users = _context.AppUsers.ToList(), StatusId = WorkOrderStatus.New, RequestorId = User.Identity.GetUserId() }; var appUser = _context.AppUsers.Where(u => u.Id == User.Identity.GetUserId()); if (appUser is LeaseHolder) { var leaseHolder = (LeaseHolder)appUser; viewModel.LocationId = leaseHolder.LocationId; viewModel.UnitId = leaseHolder.UnitId; } return(View(viewModel)); }
public ActionResult Create(CreateWorkOrderViewModel model) { var userId = User.Identity.GetUserId(); var appUser = _context.AppUsers.Single(a => a.Id == userId); if (User.IsInRole(RoleName.LeaseHolder)) { var leaseHolder = (LeaseHolder)appUser; model.RequestorId = User.Identity.GetUserId(); model.AssignedUserId = null; model.ExpectedCompletionDateTime = null; model.LocationId = leaseHolder.LocationId; model.UnitId = leaseHolder.UnitId; model.StatusId = WorkOrderStatus.New; } if (!ModelState.IsValid) { model.Categories = _context.WorkOrderCategories.OrderBy(w => w.Name).ToList(); model.Locations = _context.Locations.OrderBy(l => l.Name).ToList(); model.Statues = _context.WorkOrderStatus.ToList(); model.Employees = _context.AppUsers.Where(a => !(a is LeaseHolder)).ToList(); model.Users = _context.AppUsers.ToList(); return(View(model)); } var newWorkOrder = new WorkOrder() { AssignedUserId = model.AssignedUserId, CategoryId = model.CategoryId, CreateDateTime = DateTime.Now, ExpectedCompletionDateTime = model.ExpectedCompletionDateTime, LocationId = model.LocationId, ModifiedDateTime = DateTime.Now, RequestorId = model.RequestorId, StatusDateTime = DateTime.Now, StatusId = model.StatusId, Subject = model.Subject, UnitId = model.UnitId }; _context.WorkOrders.Add(newWorkOrder); _context.SaveChanges(); var newWorkOrderComment = new WorkOrderComment() { Comment = model.WorkOrderDescription, CommentorId = User.Identity.GetUserId(), CreateDateTime = DateTime.Now, WorkOrderId = newWorkOrder.Id }; _context.WorkOrderComments.Add(newWorkOrderComment); _context.SaveChanges(); newWorkOrder = _context.WorkOrders .Include(w => w.AssignedUser) .Include(w => w.Category) .Include(w => w.Location) .Include(w => w.Requestor) .Include(w => w.Status) .Include(w => w.Unit) .Single(w => w.Id == newWorkOrder.Id); SendEmail("new", newWorkOrder); return(RedirectToAction("Index", "WorkOrder")); }