public async Task <ActionResult> AddAttachment([Bind(Include = "Id,TicketId,Description,MediaURL")] Attachment attachment, HttpPostedFileBase image)
        {
            if (ModelState.IsValid)
            {
                if (ImageUploadValidator.IsWebFriendly(image))
                {
                    if (ImageUploadValidator.IsImage(image) || image.FileName.Contains(".pdf") || image.FileName.Contains(".doc"))
                    {
                        var fileName = Path.GetFileName(image.FileName);
                        var uniqueId = DateTime.Now.Ticks;
                        fileName = Regex.Replace(fileName, @"[!@#$%_\s]", "");
                        image.SaveAs(Path.Combine(Server.MapPath("~/Uploads/"), uniqueId + fileName));
                        attachment.MediaURL = "/Uploads/" + uniqueId + fileName;
                    }
                    else
                    {
                        return(View());
                    }
                }
                attachment.AuthorId = User.Identity.GetUserId();
                db.Attachments.Add(attachment);
                db.SaveChanges();

                var ticket = db.Tickets.Find(attachment.TicketId);
                await NotifyDeveloper(attachment.TicketId, attachment.AuthorId, ticket.AssigneeId);

                return(RedirectToAction("Details", new { id = attachment.TicketId }));
            }
            return(View());
        }