Exemple #1
0
        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));
        }
Exemple #2
0
        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"));
        }