private static string GetFilePath(HttpPostedFileBase file, Ticket ticket) { var pathPattern = GetUploadPathPattern(); var filePath = string.Format(pathPattern, AppDomain.CurrentDomain.BaseDirectory, ticket.Id.ToString(), Path.GetFileName(file.FileName)); if (File.Exists(filePath)) { return GetNewFileName(filePath); } return filePath; }
public static Attachment AddAttachment(HttpPostedFileBase file, Ticket ticket) { var filePath = GetFilePath(file, ticket); var directoryPath = new FileInfo(filePath).Directory.FullName; Directory.CreateDirectory(directoryPath); file.SaveAs(filePath); var attachment = new Attachment { Name = Path.GetFileName(file.FileName), Path = filePath }; return attachment; }
public static new TicketDetailedViewModel FromTicket(Ticket ticket) { var detailedTicket = new TicketDetailedViewModel { Id = ticket.Id, Author = ticket.Author.UserName, Category = ticket.Category.Name, CommentsCount = ticket.Comments.Count(), Description = ticket.Description, Priority = ticket.Priority, ScreenshotUrl = ticket.ScreenshotUrl, Title = ticket.Title, Comments = ticket.Comments.AsQueryable().Select(CommentViewModel.FromComment) }; return detailedTicket; }
public ActionResult AddTicket(Ticket ticket) { string authorId = User.Identity.GetUserId(); var author = this.Data.Users.All().FirstOrDefault(u => u.Id == authorId); ticket.Author = author; ticket.AuthorId = authorId; author.Points += 1; if (ModelState.IsValid) { this.Data.Tickets.Add(ticket); this.Data.SaveChanges(); return RedirectToAction("Index", "Home"); } ViewBag.CategoryId = new SelectList(this.Data.Categories.All(), "Id", "Name", ticket.CategoryId); return View(ticket); }
public static int CalcualteFilterTicketRelevance(Ticket ticket, string queryString) { if (string.IsNullOrEmpty(queryString)) { return 1; } var relevance = 0; var words = queryString.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); var searchTarget = string.Format("{0}{1}{2}{3}", ticket.Title, ticket.Author.UserName, ticket.Status.ToString(), ticket.Priority.ToString()).ToLower(); foreach (var word in words) { if (searchTarget.IndexOf(word.ToLower()) >= 0) { relevance++; } } return relevance; }
public ActionResult Create(TicketCreateUpdateViewModel ticketViewModel) { if (!this.ModelState.IsValid) { ticketViewModel.MedaData = new TicketsMetaDataViewModel { CategoriesList = this.GetCategoriesList(), StatusesList = this.GetStatusesList(), PrioritiesList = this.GetPrioritiesList() }; return this.View(ticketViewModel); } var userId = this.User.Identity.GetUserId(); var user = this.Data.Users.GetById(userId); user.Points++; var ticket = new Ticket() { AuthorId = userId, CategoryId = ticketViewModel.CategoryId, Description = ticketViewModel.Description, Priority = ticketViewModel.Priority, Title = ticketViewModel.Title, }; this.Data.Tickets.Add(ticket); this.Data.SaveChanges(); this.AddAttachments(ticket); this.Data.Tickets.Update(ticket); this.Data.SaveChanges(); return this.RedirectToAction("Index"); }
public ActionResult Create(NewTicketViewModel ticket) { if (ModelState.IsValid) { string userId = User.Identity.GetUserId(); string userName = User.Identity.GetUserName(); var currentUser = this.Data.GetRepository<ApplicationUser>() .All() .FirstOrDefault(u => u.Id == userId); if (currentUser != null) { var category = this.Data.GetRepository<Category>().GetById(ticket.Category); if (category != null) { var newTicket = new Ticket { Author = currentUser, Category = category, Description = ticket.Description, Priority = ticket.Priority, ScreenshotUrl = ticket.ScreenshotUrl, Title = ticket.Title }; this.Data.GetRepository<Ticket>().Add(newTicket); currentUser.Points++; this.Data.Save(); return RedirectToAction("List"); } else { return HttpNotFound(); } } else { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } } else { return new HttpStatusCodeResult(HttpStatusCode.BadRequest, GetModelStateErrors()); } }
private void AddAttachments(Ticket ticket) { for (int i = 0; i < this.Request.Files.Count; i++) { var file = this.Request.Files[i]; if (file.HasFile()) { var currentAttachment = AttachmentManager.AddAttachment(file, ticket); ticket.Attatchments.Add(currentAttachment); } } }