public ActionResult Create(int projectId) { var ticketModel = new CreateTicketListModel(); ticketModel.TicketType = new SelectList(db.TicketType.ToList(), "Id", "Name"); ticketModel.ProjectId = projectId; return(View(ticketModel)); }
public ActionResult Create([Bind(Include = "Id,ProjectId,Title,Description,FileBase,FileDescription,TicketTypeId")] Ticket ticket, List <TicketAttachmentViewModel> ticketAttachments) { var projectDB = db.Projects.Find(ticket.ProjectId); if (projectDB == null) { return(HttpNotFound()); } var userAssignedProjectsDB = UserHelper.GetAllProjectsAssignedToUser(User.Identity.GetUserId()); if (!userAssignedProjectsDB.Any(proj => proj.Id == ticket.ProjectId)) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } if (ModelState.IsValid) { var dateTimeNow = DateTime.Now; if (ticketAttachments != null) { foreach (var attach in ticketAttachments) { if (attach.FileBase != null) { var attachmentDB = new TicketAttachment(); attachmentDB.AuthorId = User.Identity.GetUserId(); attachmentDB.Created = dateTimeNow; attachmentDB.Description = attach.FileDescription; attachmentDB.TicketId = ticket.Id; var hash = attach.GetHashCode(); attachmentDB.Name = SlugConverter.URLFriendly(Path.GetFileNameWithoutExtension(attach.FileBase.FileName)) + "-" + hash.ToString() + Path.GetExtension(attach.FileBase.FileName); var content = Server.MapPath("~/uploads/tickets/"); var path = Path.Combine(content, Convert.ToString(ticket.Id)); Directory.CreateDirectory(path); attach.FileBase.SaveAs(Path.Combine(Server.MapPath("~/uploads/tickets/" + ticket.Id + "/"), attachmentDB.Name)); attachmentDB.FilePath = "/uploads/tickets/" + ticket.Id + "/" + attachmentDB.Name; db.TicketAttachments.Add(attachmentDB); } else { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } } } ticket.Created = dateTimeNow; ticket.AuthorId = User.Identity.GetUserId(); ticket.TicketTypeId = ticket.TicketTypeId; db.Tickets.Add(ticket); db.SaveChanges(); return(RedirectToAction("Index", "Projects")); } var modelTicket = new CreateTicketListModel(); modelTicket.ProjectId = ticket.ProjectId; return(View(modelTicket)); }