コード例 #1
0
        public ActionResult CurrentTicketUsers(int id)
        {
            var ticket = DbContext.Tickets
                         .FirstOrDefault(t => t.ID == id);

            var assignedUser = DbContext.Users
                               .FirstOrDefault(p => p.Id == ticket.AssignedToUserID);

            var model = new TicketUserViewModel();

            if (assignedUser != null)
            {
                model = new TicketUserViewModel
                {
                    ID        = id,
                    UserID    = assignedUser.Id,
                    UserName  = assignedUser.UserName,
                    FirstName = assignedUser.FirstName,
                    LastName  = assignedUser.LastName
                };

                DbContext.SaveChanges();
                return(PartialView(model));
            }
            else
            {
                return(PartialView(model));
            }
        }
コード例 #2
0
        public ActionResult DisplayTicket()
        {
            var roleId = _context.Roles.Where(m => m.Name == "Patient").Select(m => m.Id).SingleOrDefault();
            var users  = _context.Users
                         .Where(u => u.Roles.Any(r => r.RoleId == roleId)).ToList();
            var viewModel = new TicketUserViewModel
            {
                Patients = users
            };

            return(View(viewModel));
        }
コード例 #3
0
        public ActionResult AddTicketUsers(TicketUserViewModel ticketUser)
        {
            var applicationUserId        = User.Identity.GetUserId();
            var developerRole            = DbContext.Roles.FirstOrDefault(r => r.Name == "Developer").Id;
            var unassignedDeveloperUsers = DbContext.Users;
            var user = DbContext.Users.Where(u => u.Roles.Any(p => p.RoleId == developerRole))
                       .FirstOrDefault(p => p.Id == ticketUser.UserID);

            var ticket = DbContext.Tickets.FirstOrDefault(
                p => p.ID == ticketUser.ID);

            if (user == null)
            {
                return(RedirectToAction(nameof(ManageProjectUsersController.EditProjectUsers)));
            }

            var historyWriter = new CustomHelpers();

            historyWriter.MakeTicketHistories(ticket, user, applicationUserId);
            var message = new IdentityMessage
            {
                Destination = $"{user.Email}",
                Subject     = $"You've been assigned to a new a new ticket: {ticket.Title}",
                Body        = $"new ticket--- {ticket.Title}: {ticket.Description}"
            };
            var emailService = new EmailService();

            emailService.SendAsync(message);

            ticket.AssignedToUserID = user.Id;

            var ticketNotification = new TicketNotification
            {
                UserID   = user.Id,
                TicketID = ticket.ID
            };

            DbContext.TicketNotifications.Add(ticketNotification);

            DbContext.SaveChanges();
            return(RedirectToAction("EditTicketUsers", "ManageTicketUsers", new { id = ticketUser.ID }));
        }
コード例 #4
0
        public ActionResult StoreTicket(TicketFormViewModel viewModel)
        {
            var roleId = _context.Roles.Where(m => m.Name == "Patient").Select(m => m.Id).SingleOrDefault();
            var users  = _context.Users
                         .Where(u => u.Roles.Any(r => r.RoleId == roleId)).ToList();
            var openTicketExists =
                from t in _context.Tickets
                where t.PatientUserId == viewModel.Ticket.PatientUserId
                where t.TicketStatus == "Open"
                where t.DepartmentId == viewModel.Ticket.DepartmentId//Remove this part to Filter by only open tickets
                select t;

            if (!ModelState.IsValid || openTicketExists.Any())
            {
                if (openTicketExists.Any())
                {
                    ViewBag.openTicketExists = "True";
                }
                var view = new TicketFormViewModel
                {
                    Ticket      = new Ticket(),
                    Departments = _context.Departments.ToList(),
                    Patients    = users
                };

                return(View("CreateTicket", view));
            }
            viewModel.Ticket.ReceptionistUserId = User.Identity.GetUserId();
            viewModel.Ticket.TicketStatus       = "Open";
            _context.Tickets.Add(viewModel.Ticket);
            _context.SaveChanges();

            var ticketDisplayViewModel = new TicketUserViewModel
            {
                Patients = users
            };

            return(View("DisplayTicket", ticketDisplayViewModel));
        }
コード例 #5
0
        public ActionResult RemoveTicketUsers(TicketUserViewModel ticketUser)
        {
            var applicationUserId = User.Identity.GetUserId();
            var user = DbContext.Users.FirstOrDefault(
                p => p.Id == ticketUser.UserID);

            var ticket = DbContext.Tickets.FirstOrDefault(
                p => p.ID == ticketUser.ID);

            if (user == null)
            {
                return(RedirectToAction(nameof(ManageProjectUsersController.EditProjectUsers)));
            }

            var historyWriter = new CustomHelpers();

            historyWriter.MakeTicketHistories(ticket, applicationUserId);

            ticket.AssignedToUserID = null;

            DbContext.SaveChanges();
            return(RedirectToAction("EditTicketUsers", "ManageTicketUsers", new { id = ticketUser.ID }));
        }