public async Task <ActionResult> Create([Bind(Include = "Id, TicketId,FilePath,Description,UserId,FileUrl")] TicketAttachments ticketAttachments, HttpPostedFileBase attachment) { var ticketHistory = new TicketHistories(); var tickets = new Tickets(); var user = User.Identity.GetUserId(); var currentUser = db.Users.Find(user); //var ticketId = db.Tickets.FirstOrDefault(t => t.OwnerUserId == user).Id; var ticketOwnerId = db.Tickets.FirstOrDefault(t => t.OwnerUserId == user); ticketAttachments.UserId = currentUser.Id; if (FileUploadValidator.IsWebFriendlyFile(attachment)) { var absPath = Path.GetFileName(attachment.FileName); attachment.SaveAs(Path.Combine(Server.MapPath("~/Uploads/"), absPath)); ticketAttachments.FileUrl = "~/Uploads/" + absPath; if (ModelState.IsValid) { //Send Notification var developer = db.Users.Find(tickets.AssignedToUserId); if (developer != null && developer.Email != null) { var svc = new EmailService(); var msg = new IdentityMessage(); msg.Destination = developer.Email; msg.Subject = "Bug Tracker Update: " + tickets.Title; msg.Body = ("An attachment has been added to Ticket ID: " + tickets.Id + " - " + tickets.Title); await svc.SendAsync(msg); } //Ticket History ticketHistory.TicketId = ticketAttachments.TicketId; ticketHistory.Property = "Added Attachment"; ticketHistory.NewValue = "Added"; ticketHistory.UserId = ticketAttachments.UserId; ticketHistory.ChangeDate = DateTime.Now; ticketAttachments.Created = DateTime.Now; db.TicketHistories.Add(ticketHistory); db.TicketAttachments.Add(ticketAttachments); db.SaveChanges(); return(RedirectToAction("Index", "Tickets", new { id = ticketAttachments.TicketId })); } } else { ModelState.AddModelError("attachment", "Invalid Format."); } // } //} ViewBag.TicketId = new SelectList(db.Tickets, "Id", "Title", ticketAttachments.Id); ViewBag.UserId = new SelectList(db.Users, "Id", "FirstName", ticketAttachments.UserId); return(View(ticketAttachments)); }
public ActionResult Create([Bind(Include = "TicketId,FileName,Description")] TicketAttachment ticketAttachment, HttpPostedFileBase file) { if (ModelState.IsValid) { ticketAttachment.Created = DateTime.Now; ticketAttachment.UserId = User.Identity.GetUserId(); if (file == null) { TempData["Error"] = "You must supply a file."; return(RedirectToAction("Dashboard", "Tickets", new { id = ticketAttachment.TicketId })); } if (FileUploadValidator.IsWebFriendlyImage(file) || FileUploadValidator.IsWebFriendlyFile(file)) { var fileName = FileStamp.MakeUnique(file.FileName); var serverFolder = WebConfigurationManager.AppSettings["DefaultServerFolder"]; file.SaveAs(Path.Combine(Server.MapPath(serverFolder), fileName)); ticketAttachment.FilePath = $"{serverFolder}{fileName}"; } db.TicketAttachments.Add(ticketAttachment); db.SaveChanges(); var ticket = db.Tickets.Find(ticketAttachment.TicketId); if (ticket.DeveloperId != User.Identity.GetUserId()) { ticketManager.AttachmentNotifications(ticket); } return(RedirectToAction("Dashboard", "Tickets", new { id = ticketAttachment.TicketId })); } TempData["Error"] = "The model was invalid."; return(RedirectToAction("Dashboard", "Tickets", new { id = ticketAttachment.TicketId })); }
public ActionResult Create([Bind(Include = "TicketId")] TicketAttachment ticketAttachment, HttpPostedFileBase attach, string aDescription) { if (ModelState.IsValid) { if (FileUploadValidator.IsWebFriendlyImage(attach) || FileUploadValidator.IsWebFriendlyFile(attach)) { var fileName = Path.GetFileName(attach.FileName); var justFileName = Path.GetFileNameWithoutExtension(fileName); justFileName = StringUtilities.URLFriendly(justFileName); fileName = $"{justFileName}_{DateTime.Now.Ticks}{Path.GetExtension(fileName)}"; attach.SaveAs(Path.Combine(Server.MapPath("~/Attachments"), fileName)); ticketAttachment.FilePath = "/Attachments/" + fileName; ticketAttachment.Created = DateTime.Now; ticketAttachment.UserId = User.Identity.GetUserId(); ticketAttachment.Description = aDescription; nHelp.AddAttachmentNotification(ticketAttachment); db.TicketAttachments.Add(ticketAttachment); db.SaveChanges(); return(RedirectToAction("Details", "Tickets", new { id = ticketAttachment.TicketId })); } } return(View(ticketAttachment)); }
public ActionResult UploadFileToTicket([Bind(Include = "TicketId,FileName")] TicketAttachment ticketAttachments, string AttachmentDescription, HttpPostedFileBase file) { if (file == null) { TempData["Error"] = "You must Supply a vaild File"; return(RedirectToAction("Dashboard", "Tickets", new { id = ticketAttachments.TicketId })); } if (ModelState.IsValid) { if (FileUploadValidator.IsWebFriendlyImage(file) || FileUploadValidator.IsWebFriendlyFile(file)) { ticketAttachments.Created = DateTime.Now; ticketAttachments.UserId = User.Identity.GetUserId(); ticketAttachments.Description = AttachmentDescription; var fileName = FileStamp.MakeUnique(file.FileName); var serverFolder = WebConfigurationManager.AppSettings["DefaultAttachmentFolder"]; file.SaveAs(Path.Combine(Server.MapPath(serverFolder), fileName)); ticketAttachments.FilePath = $"{serverFolder}{fileName}"; ticketAttachments.FileName = fileName; db.TicketAttachments.Add(ticketAttachments); db.SaveChanges(); notificationHelper.TicketNewAttachmentAdded(ticketAttachments); return(RedirectToAction("Dashboard", "Tickets", new { id = ticketAttachments.TicketId })); } } //ViewBag.TicketId = new SelectList(db.Tickets, "Id", "SubmitterId", ticketAttahment.TicketId); //ViewBag.UserId = new SelectList(db.Users, "Id", "FirstName", ticketAttahment.UserId); TempData["Error"] = "Model Invalid"; return(RedirectToAction("Dashboard", "Tickets", new { id = ticketAttachments.TicketId })); }
public ActionResult Create([Bind(Include = "TicketId")] TicketAttach ticketAttach, HttpPostedFileBase file, string attachDesc) { if (ModelState.IsValid) { if (file != null) { if (FileUploadValidator.IsWebFriendlyImage(file) || FileUploadValidator.IsWebFriendlyFile(file)) { ticketAttach.Description = attachDesc; var fileName = Path.GetFileName(file.FileName); var justFileName = Path.GetFileNameWithoutExtension(fileName); justFileName = StringUtilities.URLFriendly(justFileName); fileName = $"{justFileName}_{DateTime.Now.Ticks}{Path.GetExtension(fileName)}"; file.SaveAs(Path.Combine(Server.MapPath("~/Uploads/"), fileName)); ticketAttach.FilePath = "/Uploads/" + fileName; ticketAttach.Created = DateTime.Now; ticketAttach.UserId = User.Identity.GetUserId(); db.TicketAttaches.Add(ticketAttach); db.SaveChanges(); } } return(RedirectToAction("Details", "Ticket", new { Id = ticketAttach.TicketId })); } ViewBag.TicketId = new SelectList(db.Tickets, "Id", "Title", ticketAttach.TicketId); ViewBag.UserId = new SelectList(db.Users, "Id", "FirstName", ticketAttach.UserId); return(View(ticketAttach)); }
public ActionResult Create([Bind(Include = "Id,TicketId,Description,Created,UserId,FileUrl")] TicketAttachment ticketAttachment, HttpPostedFileBase file) { if (ModelState.IsValid) { if (FileUploadValidator.IsWebFriendlyFile(file)) { var fileName = Path.GetFileName(file.FileName); file.SaveAs(Path.Combine(Server.MapPath("~/img/"), fileName)); ticketAttachment.FileUrl = "~/img/" + fileName; var ticketHistory = new TicketHistory(); var oldTicketAttachment = db.TicketAttachments.Find(ticketAttachment.Id); ticketHistory.Changed = DateTime.Now; ticketHistory.NewValue = ticketAttachment.FileUrl; ticketHistory.Property = "Ticket Attachment"; ticketHistory.TicketId = ticketAttachment.TicketId; ticketHistory.UserId = User.Identity.GetUserId(); db.TicketHistories.Add(ticketHistory); ticketAttachment.Created = DateTime.Now; db.TicketAttachments.Add(ticketAttachment); db.SaveChanges(); return(RedirectToAction("Details", "Tickets", new { id = ticketAttachment.TicketId })); } return(RedirectToAction("Index", "Tickets")); } ViewBag.TicketId = new SelectList(db.Tickets, "Id", "Title", ticketAttachment.TicketId); ViewBag.UserId = new SelectList(db.Users, "Id", "FirstName", ticketAttachment.UserId); return(View("Details", "Tickets", new { id = ticketAttachment.TicketId })); }
public ActionResult Create([Bind(Include = "Id,TicketId,FilePath,Description,Created,UserId")] TicketAttachment ticketAttachment, HttpPostedFileBase image) { var oldTicketAttachment = db.TicketAttachments.AsNoTracking().FirstOrDefault(t => t.Id == ticketAttachment.TicketId); if (ModelState.IsValid) { if (FileUploadValidator.IsWebFriendlyFile(image)) { var fileName = Path.GetFileName(image.FileName).Replace(' ', '_'); image.SaveAs(Path.Combine(Server.MapPath("~/FilesUploaded/"), fileName)); ticketAttachment.FilePath = "/FilesUploaded/" + fileName; } ticketAttachment.Created = DateTimeOffset.Now; ticketAttachment.UserId = User.Identity.GetUserId(); ticketAttachment.User = db.Users.Find(ticketAttachment.UserId); ticketAttachment.Ticket = db.Tickets.Find(ticketAttachment.TicketId); db.TicketAttachments.Add(ticketAttachment); db.SaveChanges(); ticketAttachment.AttachmentAdded(oldTicketAttachment); return(RedirectToAction("Details", "Tickets", new { Id = ticketAttachment.TicketId })); } //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,Body")] TicketAttachment ticketAttachment, HttpPostedFileBase file) { if (ModelState.IsValid) { ticketAttachment.CreatedDate = DateTime.Now; ticketAttachment.OwnerId = User.Identity.GetUserId(); if (file != null) { if (FileUploadValidator.IsWebFriendlyFile(file) || ImageUploadValidator.IsWebFriendlyImage(file)) { var fileName = Path.GetFileName(file.FileName); var justFileName = Path.GetFileNameWithoutExtension(fileName); justFileName = StringUtilities.URLFriendly(justFileName); fileName = $"{justFileName}_{DateTime.Now.Ticks}{Path.GetExtension(fileName)}"; file.SaveAs(Path.Combine(Server.MapPath("~/Uploads/"), fileName)); ticketAttachment.FilePath = "/Uploads/" + fileName; ticketAttachment.CreatedDate = DateTime.Now; ticketAttachment.OwnerId = User.Identity.GetUserId(); db.TicketAttachments.Add(ticketAttachment); db.SaveChanges(); } } return(RedirectToAction("Index", "TicketAttachments", new { id = ticketAttachment.TicketId })); } return(View(ticketAttachment)); }
public static string UploadSingleFile(HttpPostedFileBase file) { if (FileUploadValidator.IsWebFriendlyImage(file) || FileUploadValidator.IsWebFriendlyFile(file)) { var fileName = Path.GetFileName(file.FileName); file.SaveAs(Path.Combine(HttpContext.Current.Server.MapPath("/Uploads/"), fileName)); return("/Uploads/" + fileName); } return(""); }
public static List <Tuple <string, string, string> > UploadMultipleFiles(HttpPostedFileBase[] files) { List <Tuple <string, string, string> > resultList = new List <Tuple <string, string, string> >(); if (files != null) { if (files.Length > 0) { foreach (var file in files) { if (FileUploadValidator.IsWebFriendlyImage(file) || FileUploadValidator.IsWebFriendlyFile(file)) { var fileName = Path.GetFileName(file.FileName); var iconName = ImageHelpers.GetIconPath(fileName); file.SaveAs(Path.Combine(HttpContext.Current.Server.MapPath("/Uploads/Attachments/"), fileName)); resultList.Add(new Tuple <string, string, string>(fileName, "/Uploads/Attachments/" + fileName, iconName)); } } } } return(resultList); }
public async Task <ActionResult> Create([Bind(Include = "TicketId,FileName")] TicketAttachment ticketAttachment, HttpPostedFileBase file) { if (ModelState.IsValid) { ticketAttachment.Ticket = db.Tickets.Find(ticketAttachment.TicketId); var oldTicket = db.Tickets.AsNoTracking().FirstOrDefault(t => t.Id == ticketAttachment.TicketId); db.Entry(ticketAttachment.Ticket).State = EntityState.Modified; if (ticketAttachment.FileName == null) { TempData["Error"] = "You must supply a File Name of at least three characters"; return(RedirectToAction("Details", "Tickets", new { id = ticketAttachment.TicketId })); } ticketAttachment.Created = DateTime.Now; ticketAttachment.UserId = User.Identity.GetUserId(); if (file == null) { TempData["Error"] = "You must supply a file"; return(RedirectToAction("Details", "Tickets", new { id = ticketAttachment.TicketId })); } if (FileUploadValidator.IsWebFriendlyFile(file) || ImageUploadValidator.IsWebFriendlyImage(file)) { var fileName = FileStamp.MakeUnique(file.FileName); var serverFolder = WebConfigurationManager.AppSettings["DefaultServerFolder"]; file.SaveAs(Path.Combine(Server.MapPath(serverFolder), fileName)); ticketAttachment.FilePath = $"{serverFolder}{fileName}"; db.TicketAttachments.Add(ticketAttachment); db.SaveChanges(); var newTicket = db.Tickets.AsNoTracking().FirstOrDefault(t => t.Id == ticketAttachment.TicketId); await ticketHelper.ManageTicketNotifications(oldTicket, newTicket, "no"); } return(RedirectToAction("Details", "Tickets", new { id = ticketAttachment.TicketId })); } TempData["Error"] = "The Model State was invalid. I apologize"; return(RedirectToAction("Details", "Tickets", new { id = ticketAttachment.TicketId })); }
public ActionResult Create([Bind(Include = "Id,TicketId,FilePath,Description,CreatedDate,UserId")] TicketAttach ticketAttach, HttpPostedFileBase FileUrl, string description) { if (ModelState.IsValid) { if (FileUploadValidator.IsWebFriendlyFile(FileUrl)) { var fileName = Path.GetFileName(FileUrl.FileName); FileUrl.SaveAs(Path.Combine(Server.MapPath("~/Uploads"), fileName)); ticketAttach.FileUrl = "~/Uploads/" + fileName; } ticketAttach.CreatedDate = DateTime.Now; ticketAttach.Description = description; db.TicketAttachs.Add(ticketAttach); db.SaveChanges(); return(RedirectToAction("Details", "Tickets", new { id = ticketAttach.TicketId })); } ViewBag.TicketId = new SelectList(db.Tickets, "Id", "Title", ticketAttach.TicketId); ViewBag.UserId = new SelectList(db.Users, "Id", "FirstName", ticketAttach.UserId); return(View(ticketAttach)); }
public ActionResult Create([Bind(Include = "TicketId,FileName,Description")] TicketAttachment ticketAttachment, HttpPostedFileBase file) { if (file == null) { TempData["Error"] = "You must submit a file."; return(RedirectToAction("Details", "Tickets", new { id = ticketAttachment.TicketId })); } if (ModelState.IsValid) { //Pass it through a file validator if (FileUploadValidator.IsWebFriendlyFile(file)) { ticketAttachment.Created = DateTime.Now; ticketAttachment.UserId = User.Identity.GetUserId(); var fileName = FileStamp.MakeUnique(file.FileName); //Assign the filePath property and save the physical file var serverFolder = WebConfigurationManager.AppSettings["DefaultAttachmentFolder"]; file.SaveAs(Path.Combine(Server.MapPath(serverFolder), fileName)); ticketAttachment.FilePath = $"{serverFolder}{fileName}"; db.TicketAttachments.Add(ticketAttachment); db.SaveChanges(); } return(RedirectToAction("Details", "Tickets", new { id = ticketAttachment.TicketId })); } TempData["Error"] = "The model is invalid."; return(RedirectToAction("Details", "Tickets", new { id = ticketAttachment.Ticket.Id })); //ViewBag.TicketId = new SelectList(db.Tickets, "Id", "SubmitterId", ticketAttachment.TicketId); //ViewBag.UserId = new SelectList(db.Users, "Id", "FirstName", ticketAttachment.UserId); //return View(ticketAttachment); }
public async Task <ActionResult> Create([Bind(Include = "Id,Description")] TicketAttachment ticketAttachment, int ticketId, HttpPostedFileBase file) { var ticket = db.Tickets.Find(ticketId); if (ModelState.IsValid && ticket.TicketStatus.Name != "Resolved") { if (FileUploadValidator.IsWebFriendlyFile(file)) { var filename = Path.GetFileName(file.FileName); var customName = string.Format(Guid.NewGuid() + filename); file.SaveAs(Path.Combine(Server.MapPath("~/app/uploads/"), customName)); ticketAttachment.FilePath = "/app/uploads/" + customName; ticketAttachment.FileUrl = filename; var fileExtensions = new[] { ".txt", ".doc", ".pdf" }; var extension = Path.GetExtension(file.FileName); if (fileExtensions.Contains(extension)) { ticketAttachment.FileType = "document"; } else { ticketAttachment.FileType = "upload"; } } else { ViewBag.Message = "Please select a valid format image"; } ticketAttachment.Created = new DateTimeOffset(DateTime.Now, TimeZoneInfo.Local.GetUtcOffset(DateTime.Now)); ticketAttachment.TicketId = ticketId; ticketAttachment.UserId = User.Identity.GetUserId(); db.TicketAttachments.Add(ticketAttachment); db.SaveChanges(); var currentUser = db.Users.Find(User.Identity.GetUserId()); //make sure ticket is assigned if (!(ticket.AssignedToId == null || ticket.AssignedToId == "" || ticket.AssignedToId == "N/A")) { //email notification try { var from = "ReSolve Bugtracker<*****@*****.**>"; var to = db.Users.Find(ticket.AssignedToId).Email; var email = new MailMessage(from, to) { Subject = "Attachment added to your ticket", Body = $"{currentUser.FirstName} {currentUser.LastName} has added an attachment to a ticket that you are assigned to (<strong>{ticket.Title}</strong>). Ticket Details can be found <a href='http://kferretti-bugtracker.azurewebsites.net/Tickets/Details/{ticket.Id}'>here</a>.", IsBodyHtml = true }; var svc = new PersonalEmail(); await svc.SendAsync(email); ViewBag.Message = "Email has been sent"; } catch (Exception e) { Console.WriteLine(e.Message); await Task.FromResult(0); } } return(RedirectToAction("Details", "Tickets", new { id = ticketId })); } return(RedirectToAction("Details", "Tickets", new { id = ticketId })); }
public async Task <ActionResult> Create([Bind(Include = "Id,UserId,Description,CreatedDate")] TicketAttachment ticketAttachment, HttpPostedFileBase File, int Id) { UserRolesHelper helper = new UserRolesHelper(db); ProjectAssignHelper ph = new ProjectAssignHelper(); var userId = User.Identity.GetUserId(); var user = db.Users.Find(userId); var ticket = db.Tickets.Find(Id); if (ModelState.IsValid) { if (helper.IsUserInRole(userId, "Administrator") || helper.IsUserInRole(userId, "Admin") || helper.IsUserInRole(userId, "Project Manager1") && ph.IsUserOnAProject(userId, ticket.Project.Id) || helper.IsUserInRole(userId, "Project Manager2") && ph.IsUserOnAProject(userId, ticket.Project.Id) || helper.IsUserInRole(userId, "Project Manager3") && ph.IsUserOnAProject(userId, ticket.Project.Id) || helper.IsUserInRole(userId, "Developer1") && ticket.AssignedToUserId == userId || helper.IsUserInRole(userId, "Developer2") && ticket.AssignedToUserId == userId || helper.IsUserInRole(userId, "Developer3") && ticket.AssignedToUserId == userId || helper.IsUserInRole(userId, "Developer4") && ticket.AssignedToUserId == userId || helper.IsUserInRole(userId, "Submitter") && ticket.SubmitterUserId == userId) { if (File != null) { TicketNotification TN = new TicketNotification(); TN.TicketId = ticket.Id; TN.UserId = ticket.AssignedToUserId; TN.User = ticket.AssignedToUser; db.TicketNotifications.Add(TN); var message = new IdentityMessage { Body = "The ticket" + " " + ticket.Title + " " + "from project" + " " + ticket.Project.Name + " " + "has been edited by" + " " + user.FirstName + user.LastName + "." + " " + "Please see the ticket history to view the specific change.", Subject = "Your ticket has been edited", Destination = TN.User.Email }; EmailService email = new EmailService(); await email.SendAsync(message); if (FileUploadValidator.IsWebFriendlyFile(File)) { var fileName = Path.GetFileName(File.FileName); var customName = string.Format(Guid.NewGuid() + fileName); File.SaveAs(Path.Combine(Server.MapPath("~/Uploads/"), customName)); ticketAttachment.FilePath = "/Uploads/" + customName; string filename = ticketAttachment.FilePath.ToString(); string word = ".docx"; string excel = ".xls"; string excelx = "xlsx"; string pdf = ".pdf"; string jpeg = ".jpeg"; string bmp = ".bmp"; string gif = ".gif"; string zip = ".zip"; string rar = ".rar"; string ticketmessage = ""; if (filename.Contains(word)) { ticketmessage = "This is a Word Document"; } else if (filename.Contains(excel)) { ticketmessage = "This is an Excel File"; } else if (filename.Contains(pdf)) { ticketmessage = "This is an PDF File"; } else if (filename.Contains(jpeg)) { ticketmessage = "This is a JPEG File"; } else if (filename.Contains(bmp)) { ticketmessage = "This is a BMP File"; } else if (filename.Contains(gif)) { ticketmessage = "This is a .gif File"; } else if (filename.Contains(zip)) { ticketmessage = "This is an ZIP File"; } else if (filename.Contains(rar)) { ticketmessage = "This is a RAR File"; } else if (filename.Contains(excelx)) { ticketmessage = "This is an .xlsx File"; } ticketAttachment.CreatedDate = DateTimeOffset.Now; var ticketdatestring = ticketAttachment.CreatedDate.ToString("MM-dd-yyyy"); ticketAttachment.TicketId = Id; ticketAttachment.Description = ticketmessage + " " + "added by" + " " + user.FirstName + " " + user.LastName + " " + "on" + " " + ticketdatestring + "."; ticketAttachment.UserId = userId; db.TicketAttachments.Add(ticketAttachment); db.SaveChanges(); } int id = Id; return(RedirectToAction("Details", "Tickets", new { id = id })); } else { var Temporary = "Please select an image between 1KB - 2MB and in an approved format(.jpg, .bmp, .png, .gif)"; TempData["attachmentmessage"] = Temporary; } } var Temporary3 = "You cannot edit this ticket. Please revisit your role assignment. Tickets can only be edited by their creator, a developer assigned to the ticket, a project manager, or an administrator."; TempData["message"] = Temporary3; return(RedirectToAction("Details", "Tickets", new { id = Id })); } ViewBag.TicketId = new SelectList(db.Tickets, "Id", "SubmitterUserId", ticketAttachment.TicketId); ViewBag.UserId = new SelectList(db.Users, "Id", "FirstName", ticketAttachment.UserId); return(View(ticketAttachment)); }