Exemplo n.º 1
0
        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;
        }
Exemplo n.º 2
0
        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;
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 5
0
        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;
        }
Exemplo n.º 6
0
        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");
        }
Exemplo n.º 7
0
        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());
            }
        }
Exemplo n.º 8
0
        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);
                }
            }
        }