public async Task <ActionResult <Ticket> > PostTicket(CreateTicketVM ticketVM) { // get registered user ClaimsPrincipal loggedUser = HttpContext.User; string userName = loggedUser.FindFirst(ClaimTypes.Name).Value; User user = _context.Users.Where(u => u.UserName == userName).FirstOrDefault(); // get related document Document document = _context.Documents.Find(ticketVM.DocumentId); // create new ticket Ticket ticket = new() { CreatedBy = user, CreatedDate = DateTime.Now, Description = ticketVM.Description, Document = document, LastChangedBy = user, LastChangedDate = DateTime.Now, TicketClosed = false, Title = ticketVM.Title }; // add ticket to database _context.Tickets.Add(ticket); await _context.SaveChangesAsync(); // return new ticket return(CreatedAtAction("GetTicket", new { id = ticket.Id }, ticket)); }
/* public ActionResult Create(TicketDTO ticket) * { * if (ModelState.IsValid) * { * ticket = _client.AddTicket(ticket.AccountId, ticket.Text); * * return RedirectToAction("Details", new { id = ticket.TicketNumber }); * } * * return View(); * } */ // ADHV view-model 'CreateTicketVM' public ActionResult Create(CreateTicketVM newTicket) { if (ModelState.IsValid) { TicketDTO ticket = _client.AddTicket(newTicket.AccId, newTicket.Problem); return(RedirectToAction("Details", new { id = ticket.TicketNumber })); } return(View()); }
public void Create_ModelStateIsValid_ReturnsRedirectToDetailsView() { //Arrange CreateTicketVM ticketVM = new CreateTicketVM { AccId = 1, Problem = "Cannot find webbrowser" }; //Act var result = (RedirectToRouteResult)controller.Create(ticketVM); //Assert Assert.AreEqual("Details", result.RouteValues["action"]); }
public void Create_ModelStateIsNotValid_ReturnsCreateView() { //Arrange CreateTicketVM ticketVM = new CreateTicketVM { AccId = 1, Problem = "test" }; //Act controller.ModelState.AddModelError("Problem", "Problem need to be at least 50 characters"); //create fake error to set ModelState.IsValid to false var result = controller.Create(ticketVM) as ViewResult; //Assert Assert.AreEqual("Create", result.ViewName); }
public IActionResult Create(CreateTicketVM vm) { Ticket newTicket = mgr.AddTicket(vm.AccId, vm.Problem); return(RedirectToAction("Details", "Ticket", new { id = newTicket.TicketNumber })); }