public async Task <ActionResult> Create([Bind(Include = "Id,TicketId,FileUrl,Description")] TicketAttachment ticketAttachment, HttpPostedFileBase file) { if (ModelState.IsValid) { if (ImageUploadValidator.IsWebFriendlyFile(file)) { var fileName = Path.GetFileName(file.FileName); file.SaveAs(Path.Combine(Server.MapPath("~/MyImages/"), fileName)); ticketAttachment.FileUrl = "/MyImages/" + fileName; } ticketAttachment.UserId = User.Identity.GetUserId(); ticketAttachment.Created = DateTime.Now; db.TicketAttachments.Add(ticketAttachment); db.SaveChanges(); await ticketHelper.AddTicketNotification(ticketAttachment); ViewBag.PreviousUrl = System.Web.HttpContext.Current.Request.UrlReferrer.ToString(); return(Redirect(ViewBag.PreviousUrl)); } //ViewBag.TicketId = new SelectList(db.Tickets, "Id", "Title", ticketAttachment.TicketId); //ViewBag.UserId = new SelectList(db.Users, "Id", "FirstName", ticketAttachment.UserId); return(View(ticketAttachment)); }
public ActionResult Create([Bind(Include = "TicketId,Description")] TicketAttachment ticketAttachment, HttpPostedFileBase attachment) { if (ModelState.IsValid) { if (attachment != null) { if (ImageUploadValidator.IsWebFriendlyImage(attachment) || ImageUploadValidator.IsWebFriendlyFile(attachment)) { var fileName = Path.GetFileName(attachment.FileName); var justFileName = Path.GetFileNameWithoutExtension(fileName); var ticketId = ticketAttachment.TicketId; justFileName = StringUtilities.URLFriendly(justFileName); fileName = $"{justFileName}_{DateTime.Now.Ticks}{Path.GetExtension(fileName)}"; attachment.SaveAs(Path.Combine(Server.MapPath("~/Uploads/"), fileName)); ticketAttachment.FilePath = "/Uploads/" + fileName; ticketAttachment.Created = DateTime.Now; ticketAttachment.UserId = User.Identity.GetUserId(); //=========================== Ticket History ======================================= var oldTicket = db.Tickets.AsNoTracking().FirstOrDefault(t => t.Id == ticketId); oldTicket.Updated = DateTime.Now; //ticketAttachment.Ticket.Updated = DateTime.Now; db.Entry(oldTicket).State = EntityState.Modified; var newTicket = db.Tickets.AsNoTracking().FirstOrDefault(t => t.Id == ticketId); auditHelper.RecordHistoricalChanges(oldTicket, newTicket); notificationHelper.SendNotification(newTicket, $"There is a new attachment for <b>Ticket</b> #{newTicket.Id}, for the <b>{newTicket.Project.Name}</b>."); // create notification //=================================================================================== db.TicketAttachments.Add(ticketAttachment); if (!roleHelper.IsUserDemo()) { db.SaveChanges(); } } } //Response.Redirect(Request.RawUrl); return(RedirectToAction("Details", "Tickets", new { id = ticketAttachment.TicketId })); } return(View(ticketAttachment)); }
public ActionResult Edit([Bind(Include = "Id,TicketId,FileUrl,Description,Created,UserId")] TicketAttachment ticketAttachment, HttpPostedFileBase file, string returnUrl) { if (ModelState.IsValid) { if (ImageUploadValidator.IsWebFriendlyFile(file)) { var fileName = Path.GetFileName(file.FileName); file.SaveAs(Path.Combine(Server.MapPath("~/MyImages/"), fileName)); ticketAttachment.FileUrl = "/MyImages/" + fileName; } ticketAttachment.UserId = User.Identity.GetUserId(); db.Entry(ticketAttachment).State = EntityState.Modified; db.SaveChanges(); return(Redirect(returnUrl)); } ViewBag.TicketId = new SelectList(db.Tickets, "Id", "Title", ticketAttachment.TicketId); ViewBag.UserId = new SelectList(db.Users, "Id", "FirstName", ticketAttachment.UserId); return(View(ticketAttachment)); }