public async Task <IActionResult> Create(CreateTicketViewModel model) { if (ModelState.IsValid) { Ticket ticket = new Ticket(); ticket.Title = model.Title; ticket.Description = model.Description; if (model.Description == null) { ticket.Description = "No Description"; } var user = await userManager.GetUserAsync(HttpContext.User); ticket.ApplicationUser = user; TicketApplicationUser tau = new TicketApplicationUser(); tau.ApplicationUser = user; tau.Ticket = ticket; ticket.TicketPriority = model.TicketPriority; ticket.TicketStatus = model.TicketStatus; ticket.TicketType = model.TicketType; ticket.TicketApplicationUsers.Add(tau); ticket.Created = DateTime.Now; ticket.Project = dbContext.Projects.Find(model.ProjectId); foreach (var file in Request.Form.Files) { TicketAttachment attachment = new TicketAttachment(); attachment.ApplicationUser = user; attachment.Ticket = ticket; attachment.Name = file.FileName; MemoryStream ms = new MemoryStream(); file.CopyTo(ms); attachment.Image = ms.ToArray(); ticket.TicketAttachments.Add(attachment); } dbContext.Tickets.Add(ticket); dbContext.SaveChanges(); if (model.returnToProject) { return(RedirectToAction("Tickets", "Projects", new { id = model.ProjectId })); } return(View("Index")); } return(BadRequest()); }
/// <summary> /// "Create ticket" view /// </summary> /// <param name="projectId">Optional project ID for the created ticket</param> /// <returns>Create Ticket ViewResult</returns> public async Task <IActionResult> Create(int?projectId) { CreateTicketViewModel model = new CreateTicketViewModel(); var _user = await userManager.GetUserAsync(HttpContext.User); model.Projects = await dbContext.GetProjectsVisibleForUserAsync(_user, userManager); //TODO return index for now, later create a view with "No projects, want to create one?" if (model.Projects.Count == 0) { return(View("Index")); } if (projectId != null) { model.ProjectId = (int)projectId; model.returnToProject = true; } return(View(model)); }