public ActionResult New(NewTicketViewModel model) { if (!isLoggedIn()) { return(RedirectToAction("Oops")); } if (!getUser().ActiveStatus) { return(View("Deactivated")); } Ticket ticket = new Ticket(); Message message = new Message(); ApplicationUser user = getUser(); ticket.Title = model.Title; ticket.Status = TicketStatus.OPEN; ticket.User = user; ticket.Created = System.DateTime.Now; message.BodyText = model.BodyText; message.Date = ticket.Created; message.Ticket = ticket; message.User = user; _dbContext.Ticket.Add(ticket); _dbContext.SaveChanges(); _dbContext.Messages.Add(message); _dbContext.SaveChanges(); return(RedirectToAction("UserIndex")); }
protected bool Equals(NewTicketViewModel other) { return(GuestName == other.GuestName && GuestPhone == other.GuestPhone && GuestMailingAddress == other.GuestMailingAddress && DateAttending == other.DateAttending && CardNumber == other.CardNumber && CardExpirationDate == other.CardExpirationDate && CardVerificationValue == other.CardVerificationValue); }
public ActionResult Create(int projectId, NewTicketViewModel model) { if (ModelState.IsValid) { Ticket ticket = new Ticket(); ticket.SubmitterID = User.Identity.GetUserId(); ticket.Title = model.Title; ticket.Description = model.Description; ticket.AssigneeID = UserManager.FindById(model.Assignee).Id; ticket.ProjectID = projectId; ticket.TypeID = Int32.Parse(model.Type); ticket.PriorityID = Int32.Parse(model.Priority); ticket.StatusID = Int32.Parse(model.Status); ticket.Created = System.DateTime.UtcNow; db.Tickets.Add(ticket); try { db.SaveChanges(); } catch (System.Data.Entity.Validation.DbEntityValidationException dbEx) { Exception raise = dbEx; foreach (var validationErrors in dbEx.EntityValidationErrors) { foreach (var validationError in validationErrors.ValidationErrors) { string message = string.Format("{0}:{1}", validationErrors.Entry.Entity.ToString(), validationError.ErrorMessage); // raise a new exception nesting // the current instance as InnerException raise = new InvalidOperationException(message, raise); } } throw raise; } TempData["notice"] = "Ticket successfully created!"; return(RedirectToAction("Index")); } model.Assignees = new SelectList(Db.Users, "Id", "UserName"); model.Priorities = new SelectList(db.TicketPriorities, "ID", "Name"); model.Statuses = new SelectList(db.TicketStatuses, "ID", "Name"); model.Types = new SelectList(db.TicketTypes, "ID", "Name"); // If we got this far, something went wrong TempData["error"] = "Something went wrong. Ticket could not be created!"; return(View(model)); }
public ActionResult New() { var projects = _context.Projects.ToList(); var viewModel = new NewTicketViewModel { Projects = projects, TicketTypes = _context.TicketTypes.ToList(), TicketPriorities = _context.TicketPriorities.ToList() }; return(View(viewModel)); }
// GET: Tickets/Create public ActionResult New(int projectId) { ViewBag.ProjectName = db.Projects.FirstOrDefault(p => p.ID == projectId).Name; ViewBag.ProjectID = projectId; var model = new NewTicketViewModel(); model.Assignees = new SelectList(Db.Users, "Id", "UserName"); model.Priorities = new SelectList(db.TicketPriorities, "ID", "Name"); model.Statuses = new SelectList(db.TicketStatuses, "ID", "Name"); model.Types = new SelectList(db.TicketTypes, "ID", "Name"); return(View(model)); }
public async Task <IActionResult> AddAsync(NewTicketViewModel data) { System.Security.Claims.ClaimsPrincipal currentUser = this.User; var user = await _userManager.GetUserAsync(currentUser); if (!ModelState.IsValid) { return(View(data)); } await _ticketService.AddTicket(data.Title, data.Message, user.Id); return(RedirectToAction("Index", "Ticket")); }
public virtual NewTicketViewModel ConvertInputToModel(IDictionary <string, string> displayNamesWithValues) { var model = new NewTicketViewModel(); var cleanDisplayNamesWithValues = displayNamesWithValues .Where(x => FieldDisplayNames.Contains(x.Key)) .ToDictionary(x => x.Key, x => x.Value); foreach (var(displayName, value) in cleanDisplayNamesWithValues) { var mutatorFunc = _conversionMap[displayName]; mutatorFunc(model, value); } return(model); }
public void ShouldPartiallyBuildNewTicketViewModel() { var inputMap = new Dictionary <string, string> { { "Guest's Name: ", "ABC" } }; var actualModel = Converter.ConvertInputToModel(inputMap); var expectedModel = new NewTicketViewModel { GuestName = "ABC" }; Assert.Equal(expectedModel, actualModel); }
public ActionResult Create(NewTicketViewModel ticket) { if (ModelState.IsValid) { string userId = User.Identity.GetUserId(); string userName = User.Identity.GetUserName(); var currentUser = this.Data.GetRepository <ApplicationUser>() .All() .FirstOrDefault(u => u.Id == userId); if (currentUser != null) { var category = this.Data.GetRepository <Category>().GetById(ticket.Category); if (category != null) { var newTicket = new Ticket { Author = currentUser, Category = category, Description = ticket.Description, Priority = ticket.Priority, ScreenshotUrl = ticket.ScreenshotUrl, Title = ticket.Title }; this.Data.GetRepository <Ticket>().Add(newTicket); currentUser.Points++; this.Data.Save(); return(RedirectToAction("List")); } else { return(HttpNotFound()); } } else { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } } else { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, GetModelStateErrors())); } }
public void ShouldMapValuesStoredByDisplayNameIntoNewTicketViewModel() { var inputMap = new Dictionary <string, string> { { "Guest's Name: ", "ABC" }, { "Guest's Phone: ", "123-456-7890" }, { "Guest's Mailing Address: ", "DEF" }, { "Date Attending: ", "12/12/1212" }, { "Card Number: ", "GHI" }, { "Card Expiration: ", "12/12" }, { "CVV: ", "JKLMNOPQRS" } }; var actualModel = Converter.ConvertInputToModel(inputMap); var expectedModel = new NewTicketViewModel { GuestName = "ABC", GuestPhone = "123-456-7890", GuestMailingAddress = "DEF", DateAttending = "12/12/1212", CardNumber = "GHI", CardExpirationDate = "12/12", CardVerificationValue = "JKLMNOPQRS" }; Assert.Equal(expectedModel, actualModel); }
public async Task <IActionResult> CreateTicket(NewTicketViewModel model) { var id = Guid.NewGuid(); var userId = Guid.Parse("88888888-8888-8888-8888-888888888888"); var files = model.Files == null || model.Files.Any() ? new List <File>() : await _fileUploader.UploadFiles(userId, model.Files.ToArray()); await _mediator.Send(new NewTicketCommand { Id = id, UserId = userId, Title = model.Title, Description = model.Description, PriorityId = model.PriorityId, Files = files.ToList() }); return(Ok(id)); }
public void ShouldStillMapEvenWithIrrelevantDisplayNamesInTheInputMap() { var inputMap = new Dictionary <string, string> { { "Guest's Name: ", "ABC" }, { "Shirt Size: ", "XL" } }; var actualModel = Converter.ConvertInputToModel(inputMap); var expectedModel = new NewTicketViewModel { GuestName = "ABC" }; Assert.Equal(expectedModel, actualModel); }
public virtual void SaveNewTicket(NewTicketViewModel ticket) { }
public ActionResult Create(NewTicketViewModel viewModel) { return(View()); }