/// <summary> /// the response for the new ticket request /// </summary> /// <param name="subdomain">the site's subdomain</param> /// <param name="consumerKey">your consumerKey</param> /// <param name="consumerSecret">your conumserSecret</param> /// <param name="accessToken">the user's access token</param> /// <param name="accessTokenSecret">the user's access token secret</param> /// <param name="email">the user's mail adress</param> /// <param name="subject">the ticket subject</param> /// <param name="message">the ticket message</param> /// <returns>the server resopnse for the new ticket request</returns> private async Task <IRestResponse> CreateNewTicketResponse(string subdomain, string consumerKey, string consumerSecret, string accessToken, string accessTokenSecret, string email, string subject, string message) { _client.BaseUrl = new Uri(string.Format("https://{0}.uservoice.com/api/v1/", subdomain)); _client.Authenticator = OAuth1Authenticator.ForProtectedResource(consumerKey, consumerSecret, accessToken, accessTokenSecret); RestRequest request = new RestRequest("tickets.json", HttpMethod.Post); request.AddHeader("If-Modified-Since", DateTime.Now.ToUniversalTime().ToString("R")); var ticket = new PostTicket { TicketDetail = new PostTicket.TicketDetails { UserMailAddress = email, Subject = subject, Message = message, } }; request.AddJsonBody(ticket); return(await _client.Execute(request)); }
public ActionResult Create(PostTicket ticket) { int postPerDay = int.Parse(Settings.get("TicketPostPerDay")); var UserId = WebSecurity.GetUserId(User.Identity.Name); Boolean checkSellable = unitOfWork.UserRepository.GetById(UserId).Sellable; int noTicket = this.unitOfWork.TicketRepository.Get().Where(t => t.CreatedDate.Value.Date == DateTime.Today && t.UserId == UserId).Count(); ViewBag.NoPostTicket = noTicket; ViewBag.noSetting = postPerDay; ViewBag.Sellable = checkSellable; ViewBag.EventId = new SelectList(this.unitOfWork.EventRepository.GetAvailable(), "EventId", "EventName"); ViewBag.ProvinceId = new SelectList(this.unitOfWork.ProvinceRepository.Get(), "ProvinceId", "ProvinceName"); ViewBag.VenueId = new SelectList(this.unitOfWork.VenueRepository.GetAvailable(), "VenueId", "VenueName"); ViewBag.CategoryId = unitOfWork.CategoryRepository.Get(c => c.Category2 == null).Where(c => c.Status != 2).Select(r => new { r.CategoryId, r.CategoryName, Childs = r.Category1.Select(r2 => new { r2.CategoryId, r2.CategoryName, ParentId = r2.Category2.CategoryId }) }); ticket.UserId = WebSecurity.GetUserId(User.Identity.Name); double receivemoney = (int)(ticket.SellPrice * (1 - service)); if (ModelState.IsValid) { if (Request.Form["CreateEvent"] != null) // create new event { if (ticket.HoldDate <= DateTime.Now) { Session["Message"] = "Ngày diễn ra sự kiện không được nhỏ hơn hiện tại"; Session["MessageType"] = "error"; return(View()); } if (Request.Form["CreateVenue"] != null) // create new venue { // add new venue Venue venue = new Venue() { VenueName = ticket.VenueName, Address = ticket.Address, ProvinceId = (int)ticket.ProvinceId, Status = (int)Statuses.Venue.Disapprove }; this.unitOfWork.VenueRepository.AddOrUpdate(venue); this.unitOfWork.Save(); // add new event Event newEvent = new Event() { EventName = ticket.EventName, Status = (int)Statuses.Event.Disapprove, HoldDate = (DateTime)ticket.HoldDate, CategoryId = ticket.CategoryId, VenueId = venue.VenueId }; this.unitOfWork.EventRepository.AddOrUpdate(newEvent); this.unitOfWork.Save(); // add new ticket Ticket NewTicket = new Ticket() { EventId = newEvent.EventId, SeriesNumber = ticket.SeriesNumber, SellPrice = ticket.SellPrice, ReceiveMoney = (System.Math.Floor(receivemoney / 500)) * 500, Seat = ticket.Seat, Description = ticket.Description, Status = (int)Statuses.Ticket.Pending, UserId = ticket.UserId }; this.unitOfWork.TicketRepository.AddOrUpdate(NewTicket); this.unitOfWork.Save(); } else //if(ticket.EventId!=null) { // add new event Event newEvent = new Event() { EventName = ticket.EventName, Status = (int)Statuses.Event.Disapprove, HoldDate = (DateTime)ticket.HoldDate, CategoryId = (int)ticket.CategoryId, VenueId = (int)ticket.VenueId }; this.unitOfWork.EventRepository.AddOrUpdate(newEvent); this.unitOfWork.Save(); // add new ticket with EventName was created in db Ticket NewTicket = new Ticket() { EventId = newEvent.EventId, SeriesNumber = ticket.SeriesNumber, SellPrice = ticket.SellPrice, ReceiveMoney = (System.Math.Floor(receivemoney / 500)) * 500, Seat = ticket.Seat, Description = ticket.Description, Status = (int)Statuses.Ticket.Pending, UserId = ticket.UserId }; this.unitOfWork.TicketRepository.AddOrUpdate(NewTicket); this.unitOfWork.Save(); } } else { Ticket NewTicket = new Ticket() { EventId = (int)ticket.EventId, SeriesNumber = ticket.SeriesNumber, SellPrice = ticket.SellPrice, ReceiveMoney = (System.Math.Floor(receivemoney / 500)) * 500, Seat = ticket.Seat, Description = ticket.Description, Status = (int)Statuses.Ticket.Ready, UserId = ticket.UserId }; this.unitOfWork.TicketRepository.AddOrUpdate(NewTicket); this.unitOfWork.Save(); } Session["Message"] = "Bạn đã đăng vé thành công !"; Session["MessageType"] = "success"; return(RedirectToAction("Index", "Home")); } return(View(ticket)); }