public ActionResult AssignTicket(int?ticketId, string userId, bool add)
        {
            if (!ticketId.HasValue || string.IsNullOrEmpty(userId) || !ModelState.IsValid)
            {
                return(RedirectToAction(nameof(TicketsController.AllTickets)));
            }
            else
            {
                Ticket ticket = DbContext.Tickets
                                .FirstOrDefault(p => p.Id == ticketId && !p.Project.Archived);

                ApplicationUser user = DbContext.Users
                                       .FirstOrDefault(p => p.Id == userId);

                if (add)
                {
                    History history = HistoryService.Create(DefaultUserManager.FindById(User.Identity.GetUserId()), ticket, "Assignee", ticket.AssignedTo == null ? "None" : ticket.AssignedTo.Email, user.Email);
                    NotificationService.Create(ticket, $"Ticket assigned to ${user.Email}");
                    DbContext.Histories.Add(history);
                    ticket.AssignedTo = user;
                    NotificationService.Create(ticket, $"This Ticket is assigned to you ->> ${ticket.AssignedTo.Email}");
                }
                else
                {
                    ticket.AssignedTo = null;
                }

                DbContext.SaveChanges();

                return(RedirectToAction(nameof(UsersController.AllUsersForTickets), "Users"));
            }
        }
Esempio n. 2
0
        public void TestCreate_ShouldCreateHistory()
        {
            var options = new DbContextOptionsBuilder <TubeDbContext>()
                          .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString())
                          .Options;

            var context = new TubeDbContext(options);

            SeedData(context);

            var mockMapper = new MapperConfiguration(cfg =>
            {
                cfg.AddProfile(new TubeProfile());
            });
            var mapper = mockMapper.CreateMapper();

            var userService    = new UserService(context, mapper);
            var historyService = new HistoryService(context, userService, mapper);

            var historyTubeUserName = "******";
            var historyVideoName    = "TestVideo";
            var tubeUserId          = "1";

            historyService.Create(historyTubeUserName, historyVideoName);
            var histories = historyService.GetTubeUserHistoriesById(tubeUserId);

            Assert.True(histories.Count == 3);
        }
Esempio n. 3
0
        public IActionResult Rent(string inputTool, string inputDate, string inputTime)
        {
            inputTime = inputTime.Substring(0, inputTime.IndexOf(" "));
            // Console.WriteLine(inputTime);
            var stringOfDate = inputDate + " " + inputTime;
            // Console.WriteLine(stringOfDate);
            DateTime dateTime12 = DateTime.ParseExact(stringOfDate, "dd/MM/yyyy H:mm", CultureInfo.InvariantCulture);
            // Console.WriteLine(dateTime12);
            var data = _historyService.Create(new History
            {
                studentNumber = User.FindFirst("studentNumber").Value,
                toolName      = inputTool,
                rentTime      = dateTime12.AddHours(7),
                lendTime      = DateTime.Now.AddHours(7),
                createTime    = DateTime.Now.AddHours(7)
            });

            return(RedirectToAction("Index", new { id = inputTool }));
        }
Esempio n. 4
0
        public void Create()
        {
            //Arrange
            var history = new TransactionsHistory()
            {
                Id = 1
            };
            var historyRepository = new MockIRepository <TransactionsHistory>()
                                    .MockCreate(history);
            var historyService = new HistoryService(
                historyRepository.Object,
                null,
                new MockIRepository <Account>().Object);

            //Act
            var createdHistory = historyService.Create(history);

            //Assert
            Assert.IsNotNull(createdHistory);
        }
        public ActionResult <History> Create(History history)
        {
            _historyService.Create(history);

            return(CreatedAtRoute("GetHistory", new { id = history.id.ToString() }, history));
        }
        public ActionResult EditTicket(TicketViewModel model, int?ticketId)
        {
            string userId = User.Identity.GetUserId();

            if (!ModelState.IsValid || !ticketId.HasValue)
            {
                List <Project> projects = DbContext.Projects
                                          .Where(p => p.Users.Any(q => q.Id == userId) && !p.Archived)
                                          .Select(p => p)
                                          .ToList();

                SelectList projectList = new SelectList(projects, "Id", "Name");

                ViewData["projects"] = projectList;

                SelectList typeList = new SelectList(DbContext.TicketTypes, "Id", "Name");

                ViewData["types"] = typeList;

                SelectList priorityList = new SelectList(DbContext.TicketPriorities, "Id", "Name");

                ViewData["priorities"] = priorityList;

                SelectList statusList = new SelectList(DbContext.TicketStatuses, "Id", "Name");

                ViewData["statuses"] = statusList;

                return(View(model));
            }
            else
            {
                Ticket ticket = DbContext.Tickets
                                .FirstOrDefault(p => p.Id == ticketId && !p.Project.Archived);

                if (ticket.Title != model.Title)
                {
                    History history = HistoryService.Create(DefaultUserManager.FindById(User.Identity.GetUserId()), ticket, "Title", ticket.Title, model.Title);
                    NotificationService.Create(ticket, $"Ticket title changed to {model.Title}");
                    DbContext.Histories.Add(history);
                    ticket.Title = model.Title;
                }
                ;

                if (ticket.Description != model.Description)
                {
                    History history = HistoryService.Create(DefaultUserManager.FindById(User.Identity.GetUserId()), ticket, "Description", ticket.Description, model.Description);
                    NotificationService.Create(ticket, $"Ticket description changed to {model.Description}");
                    DbContext.Histories.Add(history);
                    ticket.Description = model.Description;
                }
                ;

                Project project = DbContext.Projects.FirstOrDefault(p => p.Id == model.ProjectId && !p.Archived);

                if (ticket.Project != project)
                {
                    History history = HistoryService.Create(DefaultUserManager.FindById(User.Identity.GetUserId()), ticket, "Project", ticket.Project.Name, project.Name);
                    NotificationService.Create(ticket, $"Ticket Project changed to {project.Name}");
                    DbContext.Histories.Add(history);
                    ticket.Project = project;
                }
                ;

                TicketType type = DbContext.TicketTypes.FirstOrDefault(p => p.Id == model.TypeId);

                if (ticket.Type != type)
                {
                    History history = HistoryService.Create(DefaultUserManager.FindById(User.Identity.GetUserId()), ticket, "Type", ticket.Type.Name, type.Name);
                    NotificationService.Create(ticket, $"Ticket type changed to {type.Name}");
                    DbContext.Histories.Add(history);
                    ticket.Type = type;
                }
                ;

                int            priorityId = Convert.ToInt32(model.PriorityId);
                TicketPriority priority   = DbContext.TicketPriorities.FirstOrDefault(p => p.Id == priorityId);

                if (ticket.Priority != priority)
                {
                    History history = HistoryService.Create(DefaultUserManager.FindById(User.Identity.GetUserId()), ticket, "Priority", ticket.Priority.Name, priority.Name);
                    NotificationService.Create(ticket, $"Ticket priority changed to {priority.Name}");
                    DbContext.Histories.Add(history);
                    ticket.Priority = priority;
                }
                ;

                TicketStatus status = DbContext.TicketStatuses.FirstOrDefault(p => p.Id == model.StatusId);

                if (User.IsInRole(Admin) || User.IsInRole(ProjectManager))
                {
                    if (ticket.Status != status)
                    {
                        History history = HistoryService.Create(DefaultUserManager.FindById(User.Identity.GetUserId()), ticket, "Status", ticket.Status.Name, status.Name);
                        NotificationService.Create(ticket, $"Ticket status changed to {status.Name}");
                        DbContext.Histories.Add(history);
                        ticket.Status = status;
                    }
                    ;
                }
                else
                {
                    History history = HistoryService.Create(DefaultUserManager.FindById(User.Identity.GetUserId()), ticket, "Status", ticket.Status.Name, "Open");
                    NotificationService.Create(ticket, $"Ticket status changed to Open");
                    DbContext.Histories.Add(history);
                    ticket.Status = DbContext.TicketStatuses.FirstOrDefault(p => p.Name == "Open");
                };

                ticket.DateUpdated = DateTime.Now;

                DbContext.SaveChanges();

                return(RedirectToAction(nameof(TicketsController.AllTickets)));
            }
        }