Пример #1
0
        public ActionResult Create(int projectId)
        {
            var ticketModel = new CreateTicketListModel();

            ticketModel.TicketType = new SelectList(db.TicketType.ToList(), "Id", "Name");
            ticketModel.ProjectId  = projectId;
            return(View(ticketModel));
        }
Пример #2
0
        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));
        }