public ActionResult Response(CreateResponses data)
        {
            Request req    = RequestRepo.GetById(data.UserId, data.EventId);
            int     CurUID = WebSecurity.GetUserId(User.Identity.Name);

            if (req == null)
            {
                Session["Message"]     = "Không tìm thấy request tương ứng";
                Session["MessageType"] = "error";
                return(RedirectToAction("Index"));
            }
            if (data.responses.Count == 0)
            {
                Session["Message"] = "Bạn đã không có phản hồi nào";
                return(RedirectToAction("Index"));
            }
            else
            {
                int ResponseNum = 0;
                foreach (var response in data.responses)
                {
                    if (response.IsResponse)
                    {
                        if (req.Event.Tickets.Where(t => t.TicketId == response.TicketId && t.UserId == CurUID).Count() == 0)
                        {
                            Session["Message"]     = "Vé bạn phản hồi không phải vé trong event của yêu cầu hoặc không phải vé của bạn!";
                            Session["MessageType"] = "error";
                            return(RedirectToAction("Index"));
                        }
                        TicketResponse ticketResponse = new TicketResponse()
                        {
                            EventId     = data.EventId,
                            Description = response.Description,
                            TicketId    = response.TicketId,
                            UserId      = data.UserId
                        };
                        Repository.Add(ticketResponse);
                        ResponseNum++;
                    }
                }
                if (ResponseNum == 0)
                {
                    Session["Message"] = "Bạn không có phản hồi nào";
                }
                else
                {
                    Session["Message"]     = "Đã tạo phản hồi thành công! ";
                    Session["MessageType"] = "success";
                    Repository.Save();
                }
            }

            return(RedirectToAction("Index"));
        }
        public ActionResult Create(int UserId = -1, int EventId = -1)
        {
            Session["Role"] = "Sell";
            Request req    = RequestRepo.GetById(UserId, EventId);
            int     CurUID = WebSecurity.GetUserId(User.Identity.Name);
            IEnumerable <Ticket> Tickets = null;

            ViewBag.IsExist = true;
            if (req == null)
            {
                ViewBag.IsExist = false;
            }
            else
            {
                ViewBag.Event   = req.Event;
                ViewBag.User    = req.User;
                ViewBag.Request = req;
                Tickets         = unitOfWork.TicketRepository.Get(t => t.Status == (int)Statuses.Ticket.Ready && t.EventId == EventId && t.UserId == CurUID).SkipWhile(t => Repository.Get(tr => tr.TicketId == t.TicketId).Count() > 0);
                ViewBag.Tickets = Tickets.ToList();
            }

            var responses = new List <ResponseSubmit>();

            foreach (Ticket Ticket in Tickets)
            {
                responses.Add(new ResponseSubmit()
                {
                    TicketId    = Ticket.TicketId,
                    IsResponse  = false,
                    Description = null
                });
            }
            var vm = new CreateResponses()
            {
                EventId   = EventId,
                UserId    = UserId,
                responses = responses
            };

            return(View(vm));
        }