public async Task <IActionResult> Post([FromBody] TicketRequestModel model) { Ticket newRecord = null; if (ModelState.IsValid) { InitUserCredentials(); newRecord = new Ticket { Guid = Guid.NewGuid(), UserGuid = UserGuid, CompanyGuid = CompanyGuid, CreationTime = DateTime.UtcNow, CreationUserGuid = UserGuid }; newRecord = _mapper.Map(model, newRecord); try { await _ticketService.Save(newRecord); } catch (Exception e) { Log.Error(e.StackTrace); throw; } } return(CreatedAtAction(nameof(Post), _mapper.Map(newRecord, new TicketResponseModel()))); }
public TicketBaseData GetTicketData(TicketRequestModel ticketRequestModel) { var ticketBaseData = new TicketBaseData(); if (ticketRequestModel.TicketId != null) { ticketBaseData.Ticket = ticketRepository.Find((int)ticketRequestModel.TicketId); } ticketBaseData.TicketTypes = ticketTypeRepository.GetActiveTicketTypes(); ticketBaseData.Tickets = ticketRepository.GetTicketsByEmployeeId(ticketRequestModel.EmployeeId); ticketBaseData.Employees = employeeRepository.GetAll(); if (!ticketRequestModel.ViewTicketsOfAllEmployees) { var employee = employeeRepository.Find(ticketRequestModel.EmployeeId); var emploeeIds = employee.SupervisorOfEmployees.Select(x => x.EmployeeId).ToList(); var ticketsOfEmployees = ticketRepository.GetTicketsOfEmployeesUnderASupervisor(emploeeIds); ticketBaseData.TicketsOfEmployees = ticketsOfEmployees; } else { var ticketsOfEmployees = ticketRepository.GetAllExceptEmployeeId(ticketRequestModel.EmployeeId); ticketBaseData.TicketsOfEmployees = ticketsOfEmployees; } return(ticketBaseData); }
public async Task <JsonResult> InitializeFreeEventPayment(string Fullname, string phoneNo, string email, string NoOfPersons, int TicketType) { oGenericViewModel.rv = new ReturnValues(); TicketRequestModel ct = new TicketRequestModel(); ct.Fullname = Fullname; ct.phoneNo = phoneNo; ct.email = email; ct.NoOfPersons = Convert.ToInt32(NoOfPersons); ct.TicketType = TicketType; var BatchCounter = oEventClassModel.GetCurrentCounter(); var Reference = RefferenceGenerator.GenerateReference(BatchCounter); var rtn = oEventClassModel.SaveFreeTicketDetails(ct, Reference); if (rtn.sErrorText == "Success") { return(Json(new { nErrorCode = 0, sErrorText = "Event Registered Successfully" }, JsonRequestBehavior.AllowGet)); } return(Json(new { nErrorCode = -1, sErrorText = "Event Failed to Register" }, JsonRequestBehavior.AllowGet)); }
public async Task <JsonResult> InitializeFreeEventPayment(string Fullname, string phoneNo, string email, string NoOfPersons, int TicketType) { oGenericViewModel.rv = new ReturnValues(); TicketRequestModel ct = new TicketRequestModel(); ct.Fullname = Fullname; ct.phoneNo = phoneNo; ct.email = email; ct.NoOfPersons = Convert.ToInt32(NoOfPersons); ct.TicketType = TicketType; var BatchCounter = oEventClassModel.GetCurrentCounter(); var Reference = RefferenceGenerator.GenerateReference(BatchCounter); var rtn = oEventClassModel.SaveFreeTicketDetails(ct, Reference); if (rtn.Itbid != 0) { var res = oEventClassModel.SendEvent((rtn)); if (res != null) { BackgroundJob.Enqueue(() => EmailNotificationMail.SendEmailPlain(rtn.Email, "Payment Receipt - " + rtn.ReferenceNo, res, null, "*****@*****.**")); } return(Json(new { nErrorCode = 0, sErrorText = "Event Registered Successfully" }, JsonRequestBehavior.AllowGet)); } return(Json(new { nErrorCode = -1, sErrorText = "Event Failed to Register" }, JsonRequestBehavior.AllowGet)); }
public ActionResult Index() { var ticketViewModel = new TicketViewModel(); var ticketRequest = new TicketRequestModel { EmployeeId = (int)Session["EmployeeID"] }; var userPermissionsSet = (string[])System.Web.HttpContext.Current.Session["UserPermissionSet"]; if (userPermissionsSet.Contains("ViewAllTickets")) { ticketRequest.ViewTicketsOfAllEmployees = true; } var baseData = ticketService.GetTicketData(ticketRequest); var GMT = Convert.ToInt32(Session["ClientGMT"]); if (baseData.TicketsOfEmployees != null) { ticketViewModel.TicketsOfEmployees = baseData.TicketsOfEmployees.Select(x => x.MapFromServerToClient(GMT)).OrderByDescending(x => x.RecCreatedOn).ToList(); } ticketViewModel.Tickets = baseData.Tickets.Select(x => x.MapFromServerToClient(GMT)).OrderByDescending(x => x.RecCreatedOn).ToList(); ticketViewModel.TicketTypes = baseData.TicketTypes.Select(x => x.MapFromServerToClient()).ToList(); ViewBag.MessageVM = TempData["message"] as MessageViewModel; return(View(ticketViewModel)); }
public IResponse TicketRequest(TicketRequestModel ticketRequest, int VisitorId) { var ServerDateTime = DateTime.Now.AddServerTimeHours(); var TimeOfNow = ServerDateTime.TimeOfDay; var DateOfNow = ServerDateTime.Date; var selectedBranchDepartement = UOW.BranchDepartement.SingleOrDefault(bd => bd.BranchId == ticketRequest.BranchId && bd.DepartementId == ticketRequest.DepartementId); var(StartReservationTime, EndReservationTime) = GetBranchTime(ticketRequest.BranchId); if (StartReservationTime > TimeOfNow || EndReservationTime < TimeOfNow) { response.status = false; response.error_AR = "لا يمكن الحجز في هذا الموعد"; response.error_EN = "Time not available for Reservation"; response.data = null; return(response); } //CHECK IF HAS TICKET BEFORE var SelectedTicket = UOW.Tickets.FirstOrDefault(t => t.BranchDepartementId == selectedBranchDepartement.Id && t.CreatedById == VisitorId && t.StatusId != 3 && t.CreatedAt.Date == DateOfNow); if (SelectedTicket != null) { response.status = false; response.error_AR = "يوجد حجز مسبق في نفس اليوم"; response.error_EN = "There is already ticket Requested"; response.data = VisitorDailyTickets(new TicketVisitorSearchModel() { ticketIds = { SelectedTicket.Id }, visitorId = SelectedTicket.CreatedById.Value }).data; return(response); } var CurrentNumber = UOW.Tickets.Find(t => t.BranchDepartementId == selectedBranchDepartement.Id && t.CreatedAt.Date == DateOfNow) .Select(t => t.TicketNumber).DefaultIfEmpty(0).Max(); var newTicket = new Ticket(); newTicket.TicketNumber = CurrentNumber + 1; newTicket.CreatedById = VisitorId; newTicket.BranchDepartementId = selectedBranchDepartement.Id; newTicket.StatusId = 1; UOW.Tickets.Add(newTicket); UOW.Compelete(); #region notification notification.NotifyNewEvent("E_NewTicket" + newTicket.BranchDepartementId, new { newTicket.Id, newTicket.TicketNumber, newTicket.CreatedById.Value }); #endregion //Notification Employees response.data = VisitorDailyTickets(new TicketVisitorSearchModel() { ticketIds = { newTicket.Id }, visitorId = newTicket.CreatedById.Value }).data; return(response); }
public async Task <JsonResult> InitializeMoviePaymentFM(string Fullname, string phoneNo, string email, string NoOfPersons , string MovieCategory, string Amount, string MovieDay, string MovieTime, string MovieName, string siteId, string orderId, string showtimeId, string MovieCategoryText) { oGenericViewModel.rv = new ReturnValues(); string[] id = MovieCategory.Split('_'); string[] mDay = MovieDay.Split('_'); TicketRequestModel ct = new TicketRequestModel(); ct.Fullname = Fullname; ct.phoneNo = phoneNo; ct.email = email; ct.NoOfPersons = Convert.ToInt32(NoOfPersons); ct.Amount = Amount; //ct.Amount = "2.00"; ct.MovieDate = MovieDay; ct.MovieTime = MovieTime; ct.siteId = siteId; ct.orderId = orderId; ct.cat = MovieCategoryText; ct.showtimeId = showtimeId; ct.MovieName = MovieName; ct.TicketCategory = id[1]; var BatchCounter = oMoviesModelClass.GetCurrentCounter(); var Reference = RefferenceGenerator.GenerateReference(BatchCounter); var rtn = oMoviesModelClass.SaveTicketDetailsFm(ct, Reference); if (rtn.sErrorText == "Success") { var tk = await oMoviesModelClass.GetClientProfileDetails("001"); int PayStackAmount = oMoviesModelClass.CalculatePayStackAmount(Amount, Convert.ToInt32(NoOfPersons), ""); //int PayStackAmount = oMoviesModelClass.CalculatePayStackAmount("5.00", Convert.ToInt32(NoOfPersons), ""); PayStackRequestModel rt = new PayStackRequestModel(); rt.amount = PayStackAmount; rt.email = email; rt.firstName = Fullname; rt.lastName = Fullname; var paystackTransactionAPI = new PaystackTransaction(tk.ClientPayStackSecretKey); var response = await paystackTransactionAPI.InitializeTransaction(rt.email, rt.amount, rt.firstName, rt.lastName, "https://www.ticketplanet.ng/Movies/PaymentConfirmationFM", Reference); //Note that callback url is optional if (response.status == true) { oMoviesModelClass.UpdatePayStackReference(Reference, response.data.reference); return(Json(new { error = false, result = response }, JsonRequestBehavior.AllowGet)); } } return(Json(new { error = true }, JsonRequestBehavior.AllowGet)); }
public ActionResult TicketRequest(TicketRequestModel ticketRequestModel) { var response = service.TicketRequest(ticketRequestModel, User.GetUserId()); if (response.status == true) { return(Ok(response)); } return(BadRequest(response)); }
public async Task <JsonResult> FlutterwaveMoviePaymentFM(string Fullname, string phoneNo, string email, string NoOfPersons , string MovieCategory, string Amount, string MovieDay, string MovieTime, string MovieName, string siteId, string orderId, string showtimeId, string MovieCategoryText) { oGenericViewModel.rv = new ReturnValues(); string[] id = MovieCategory.Split('_'); string[] mDay = MovieDay.Split('_'); TicketRequestModel ct = new TicketRequestModel(); ct.Fullname = Fullname; ct.phoneNo = phoneNo; ct.email = email; ct.NoOfPersons = Convert.ToInt32(NoOfPersons); ct.Amount = Amount; ct.MovieDate = MovieDay; ct.MovieTime = MovieTime; ct.siteId = siteId; ct.orderId = orderId; ct.cat = MovieCategoryText; ct.showtimeId = showtimeId; ct.MovieName = MovieName; ct.TicketCategory = id[1]; var BatchCounter = oMoviesModelClass.GetCurrentCounter(); var Reference = RefferenceGenerator.GenerateReferenceFLW(BatchCounter); var rtn = oMoviesModelClass.SaveTicketDetailsFm(ct, Reference); if (rtn.sErrorText == "Success") { var tk = await oMoviesModelClass.GetClientProfileDetails("002"); int flutterwaveAmount = oMoviesModelClass.CalculateFlutterAmount(Amount, Convert.ToInt32(NoOfPersons), ""); FlutterWaveRequestModel rt = new FlutterWaveRequestModel(); rt.amount = flutterwaveAmount; //rt.amount = 5; rt.email = email; rt.firstName = Fullname; rt.lastName = Fullname; rt.publicKey = tk.MobileClientPayStackSecretKey; rt.secretKey = tk.ClientPayStackSecretKey; //rt.publicKey = testSecretKey; //rt.secretKey = testPublicKeys; rt.redirectUrl = tk.TicketPlanetEventCallBackUrl; rt.Reference = Reference; rt.phoneNo = phoneNo; return(Json(new { result = rt, error = false }, JsonRequestBehavior.AllowGet)); } return(Json(new { error = true }, JsonRequestBehavior.AllowGet)); }
public async Task <ActionResult <TicketSaleModel> > Post(int customerId, [FromBody] TicketRequestModel model) { try { var customer = await _repository.GetCustomerAsync(customerId); if (customer == null) { return(NotFound()); } // Check Ticket Availability var result = await _ticketService.ReserveTickets(model.TicketIds); if (result) { // Process Creditcard (no/op in example) // Finalize Tickets var finalizedTickets = await _ticketService.FinalizeTickets(model.TicketIds); if (finalizedTickets.Success) { // Create the Sales Record var ticketSale = new TicketSale() { Customer = customer, Completed = true, ApprovalCode = "FOOBAR", TransactionNumber = "123456", PaymentType = "Credit Card", TransactionTotal = finalizedTickets.Tickets.Sum(t => (decimal)t.Price), Tickets = finalizedTickets.Tickets.ToArray() }; _repository.Add(ticketSale); if (await _repository.SaveAllAsync()) { return(CreatedAtRoute(new { customerId = customerId, id = ticketSale.Id }, _mapper.Map <TicketSaleModel>(ticketSale))); } } } } catch (Exception ex) { _logger.LogError("Failed to create TicketRequest", ex); } return(BadRequest()); }
public async Task <JsonResult> InitializeEventPayment(string Fullname, string phoneNo, string email, string NoOfPersons , string TicketCategory, string Amount, string comments, int TicketType, string TicketCategoryName, string CouponValue, string ReferalId) { oGenericViewModel.rv = new ReturnValues(); TicketRequestModel ct = new TicketRequestModel(); ct.Fullname = Fullname; ct.phoneNo = phoneNo; ct.email = email; ct.NoOfPersons = Convert.ToInt32(NoOfPersons); ct.TicketCategory = TicketCategory; ct.Amount = Amount; //ct.comments = comments; ct.TicketType = TicketType; //ct.Validated = Validated; ct.ReferalId = ReferalId; var BatchCounter = oEventClassModel.GetCurrentCounter(); var Reference = RefferenceGenerator.GenerateReference(BatchCounter); var rtn = oEventClassModel.SaveTicketDetails(ct, Reference); if (rtn.sErrorText == "Success") { var tk = oEventClassModel.GetClientProfileDetails("001"); int PayStackAmount = oEventClassModel.CalculatePayStackAmount(Convert.ToInt32(TicketCategory), TicketCategoryName, Convert.ToInt32(NoOfPersons), CouponValue); PayStackRequestModel rt = new PayStackRequestModel(); rt.amount = PayStackAmount; //rt.amount = 5; rt.email = email; rt.firstName = Fullname; rt.lastName = Fullname; var paystackTransactionAPI = new PaystackTransaction(tk.ClientPayStackSecretKey); var response = await paystackTransactionAPI.InitializeTransaction(rt.email, rt.amount, rt.firstName, rt.lastName, tk.TicketPlanetFlightCallBackUrl, Reference, null, null, true); //Note that callback url is optional if (response.status == true) { await oEventClassModel.UpdatePayStackReference(Reference, response.data.reference); return(Json(new { error = false, result = response }, JsonRequestBehavior.AllowGet)); } } return(Json(new { error = true }, JsonRequestBehavior.AllowGet)); }
public ReturnValues SaveFathersTicketDetails(TicketRequestModel ctReqest, string Reference) { var returnValues = new ReturnValues(); var counter = repotk_BatchCounter.GetAllNonAsync().FirstOrDefault(); try { int id = Convert.ToInt32(ctReqest.TicketCategory); var eventCust = new tk_EventCustomers(); eventCust.DateCreated = DateTime.Now; eventCust.Email = ctReqest.email; eventCust.EventId = ctReqest.TicketType; //eventCust.NoOfPersons = ctReqest.NoOfPersons; eventCust.PhoneNo = ctReqest.phoneNo; eventCust.ReferenceNo = Reference; eventCust.TicketCategory = Convert.ToInt32(ctReqest.TicketCategory); eventCust.NoOfPersons = Convert.ToInt32(ctReqest.TicketCategory) == 9 ? 5 : 2; eventCust.Status = "PENDING"; eventCust.IsEmailSent = "N"; eventCust.Retry = 0; eventCust.Fullname = ctReqest.Fullname; eventCust.UnitPrice = repoEventCategory.GetNonAsync(o => o.Itbid == id).Amount; eventCust.TotalAmount = eventCust.UnitPrice; repoEventCustomer.Add(eventCust); var retV1 = unitOfWork.CommitNonAsync(1) > 0 ? true : false; if (retV1) { //Update batch Counter counter.BatchNo = counter.BatchNo + 1; repotk_BatchCounter.Update(counter); var ret = unitOfWork.CommitNonAsync(1) > 0 ? true : false; returnValues.nErrorCode = 0; returnValues.sErrorText = "Success"; return(returnValues); } else { returnValues.nErrorCode = -1; returnValues.sErrorText = "FailedInsert"; } return(returnValues); } catch (Exception ex) { } return(returnValues); }
public IHttpActionResult TicketWithReservation(TicketRequestModel model) { NewTicketSummery summery = newTicket.New(new Ticket( model.ReservationGuid )); if (summery.IsCreated) { return(Ok(summery.Ticket)); } else { return(BadRequest(summery.Message)); } }
public async Task <JsonResult> FlutterwaveDubaiPayment(string Fullname, string phoneNo, string email, string NoOfPersons , string TicketCategory, string Amount, string comments, int TicketType, string TicketCategoryName, string cardCategory, string Validated, string ReferalId) { oGenericViewModel.rv = new ReturnValues(); TicketRequestModel ct = new TicketRequestModel(); ct.Fullname = Fullname; ct.phoneNo = phoneNo; ct.email = email; ct.NoOfPersons = Convert.ToInt32(NoOfPersons); ct.TicketCategory = TicketCategory; ct.Amount = Amount; //ct.Amount = "5.00"; //ct.comments = comments; ct.TicketType = TicketType; ct.ReferalId = ReferalId == null ? "" : ReferalId; //ct.Validated = Validated; var BatchCounter = oEventClassModel.GetCurrentCounter(); var Reference = RefferenceGenerator.GenerateReferenceFLW(BatchCounter); var rtn = oEventClassModel.SaveTicketDetails(ct, Reference); if (rtn.sErrorText == "Success") { var tk = oEventClassModel.GetClientProfileDetails("002"); int flutterwaveAmount = oEventClassModel.CalculateFlutterTravelsAmount(Amount, Convert.ToInt32(TicketCategory), TicketCategoryName, Convert.ToInt32(NoOfPersons), cardCategory); FlutterWaveRequestModel rt = new FlutterWaveRequestModel(); rt.amount = flutterwaveAmount; //rt.amount = 5; rt.email = email; rt.firstName = Fullname; rt.lastName = Fullname; rt.publicKey = tk.MobileClientPayStackSecretKey; rt.secretKey = tk.ClientPayStackSecretKey; //rt.publicKey = testSecretKey; //rt.secretKey = testPublicKeys; rt.redirectUrl = tk.TicketPlanetEventCallBackUrl; rt.Reference = Reference; rt.phoneNo = phoneNo; return(Json(new { result = rt, error = false }, JsonRequestBehavior.AllowGet)); } return(Json(new { error = true }, JsonRequestBehavior.AllowGet)); }
public IHttpActionResult Index(TicketRequestModel model) { NewTicketSummery summery = newTicket.New(new Ticket( model.ProjectionId, model.Row, model.Column )); if (summery.IsCreated) { return(Ok(summery.Ticket)); } else { return(BadRequest(summery.Message)); } }
public async Task <JsonResult> InitializeFathersDayEventPayment(string Fullname, string phoneNo, string email , string TicketCategory, string Amount, string TicketType) { oGenericViewModel.rv = new ReturnValues(); TicketRequestModel ct = new TicketRequestModel(); ct.Fullname = Fullname; ct.phoneNo = phoneNo; ct.TicketType = Convert.ToInt32(TicketType); ct.email = email; ct.TicketCategory = TicketCategory; ct.Amount = Amount; //ct.Validated = "N"; var BatchCounter = oEventClassModel.GetCurrentCounter(); var Reference = RefferenceGenerator.GenerateReference(BatchCounter); var rtn = oEventClassModel.SaveFathersTicketDetails(ct, Reference); if (rtn.sErrorText == "Success") { var tk = oEventClassModel.GetClientProfileDetails("001"); int PayStackAmount = oEventClassModel.CalculateFathersDayPayStackAmount(Convert.ToInt32(TicketCategory)); PayStackRequestModel rt = new PayStackRequestModel(); rt.amount = PayStackAmount; rt.email = email; rt.firstName = Fullname; rt.lastName = Fullname; var paystackTransactionAPI = new PaystackTransaction(tk.ClientPayStackSecretKey); var response = await paystackTransactionAPI.InitializeTransaction(rt.email, rt.amount, rt.firstName, rt.lastName, "https://ticketplanet.ng/Events/FathersDayPaymentConfirmation", Reference, null, null, true); //Note that callback url is optional if (response.status == true) { await oEventClassModel.UpdatePayStackReference(Reference, response.data.reference); return(Json(new { error = false, result = response }, JsonRequestBehavior.AllowGet)); } } return(Json(new { error = true }, JsonRequestBehavior.AllowGet)); }
public tk_EventCustomers SaveFreeTicketDetails(TicketRequestModel ctReqest, string Reference) { var returnValues = new tk_EventCustomers(); var counter = repotk_BatchCounter.GetAllNonAsync().FirstOrDefault(); try { var eventCust = new tk_EventCustomers(); eventCust.DateCreated = DateTime.UtcNow; eventCust.Email = ctReqest.email; eventCust.EventId = ctReqest.TicketType; eventCust.NoOfPersons = ctReqest.NoOfPersons; eventCust.PhoneNo = ctReqest.phoneNo; eventCust.ReferenceNo = Reference; eventCust.Status = "SUCCESSFULL"; eventCust.IsEmailSent = "N"; eventCust.Retry = 0; eventCust.Fullname = ctReqest.Fullname; repoEventCustomer.Add(eventCust); var retV1 = unitOfWork.CommitNonAsync(1) > 0 ? true : false; if (retV1) { //Update batch Counter counter.BatchNo = counter.BatchNo + 1; repotk_BatchCounter.Update(counter); var ret = unitOfWork.CommitNonAsync(1) > 0 ? true : false; returnValues.Itbid = eventCust.Itbid; returnValues.Status = eventCust.Status; } else { returnValues.Itbid = 0; } return(returnValues); } catch (Exception ex) { } return(returnValues); }
public async Task <IActionResult> Put([FromBody] TicketRequestModel model, Guid guid) { if (ModelState.IsValid) { if (guid == Guid.Empty) { return(new BadRequestResult()); } Ticket record = await _ticketService.Get(guid); if (record == null) { return(new NoContentResult()); } InitUserCredentials(); //if (record.UserGuid != UserGuid) //{ // return new UnauthorizedResult(); //} var mapped = _mapper.Map(model, record); mapped.LastUpdateTime = DateTime.Now; mapped.LastUpdateUserGuid = UserGuid; try { await _ticketService.Save(mapped); } catch (Exception e) { Log.Error(e.StackTrace); throw; } } return(new OkResult()); }
public async Task CreatesSales() { var model = new TicketRequestModel() { CreditCard = "12345", ValidationCode = "1234", ExpirationMonth = 4, ExpirationYear = 2024, TicketIds = new int[] { 1, 2, 3, 4 } }; var result = await _controller.Post(1, model); Assert.IsType <CreatedAtRouteResult>(result.Result); var objectResult = (ObjectResult)result.Result; var sale = (TicketSaleModel)objectResult.Value; Assert.NotNull(sale); Assert.NotEmpty(sale.Tickets); Assert.True(sale.Tickets.Count() == 4); Assert.True(sale.Tickets.Sum(t => t.Price) == sale.TransactionTotal); }
public ActionResult Create(int?id) { var model = new TicketViewModel(); var ticketRequest = new TicketRequestModel { TicketId = id, EmployeeId = (int)Session["EmployeeID"] }; var GMT = Convert.ToInt32(Session["ClientGMT"]); var baseData = ticketService.GetTicketData(ticketRequest); if (baseData.Ticket != null) { model.Ticket = baseData.Ticket.MapFromServerToClient(GMT); } model.Tickets = baseData.Tickets.Select(x => x.MapFromServerToClient(GMT)).ToList(); model.TicketTypes = baseData.TicketTypes.Select(x => x.MapFromServerToClient()).OrderBy(x => x.TicketTitle).ToList(); model.EmployeeDdl = baseData.Employees.Select(x => x.MapEmployeeDdlFromServerToClient()).OrderBy(x => x.FullName).ToList(); return(View(model)); }
public async Task <JsonResult> InitializeMoviePayment(string Fullname, string phoneNo, string email, string NoOfPersons , string MovieCategory, string Amount, string comments, int CinemaLocation, int CinemaCompanyID, string MovieDay, string MovieTime, string MovieName, string IsCoupon, string Coupon, string CouponAgentId, string CouponAssignId, string CouponID, string nErrorCode, string CouponValue) { oGenericViewModel.rv = new ReturnValues(); TicketRequestModel ct = new TicketRequestModel(); ct.Fullname = Fullname; ct.phoneNo = phoneNo; ct.email = email; ct.NoOfPersons = Convert.ToInt32(NoOfPersons); ct.Amount = Amount; ct.MovieDate = MovieDay; ct.MovieTime = MovieTime; ct.CinemaCompanyID = CinemaCompanyID; ct.CinemaLocation = CinemaLocation; ct.MovieName = MovieName; ct.TicketCategory = MovieCategory; if (!string.IsNullOrEmpty(nErrorCode)) { if (nErrorCode == "1") { ct.Coupon = Coupon; ct.CouponAgentId = !string.IsNullOrEmpty(CouponAgentId) ? Convert.ToInt32(CouponAgentId) : 0; ct.CouponAssignId = !string.IsNullOrEmpty(CouponAssignId) ? Convert.ToInt32(CouponAssignId) : 0; ct.CouponID = !string.IsNullOrEmpty(CouponID) ? Convert.ToInt32(CouponID) : 0; ct.IsCoupon = IsCoupon; } } else { ct.IsCoupon = "N"; } var BatchCounter = oMoviesModelClass.GetCurrentCounter(); var Reference = RefferenceGenerator.GenerateReference(BatchCounter); var rtn = oMoviesModelClass.SaveTicketDetails(ct, Reference); if (rtn.sErrorText == "Success") { var tk = await oMoviesModelClass.GetClientProfileDetails("001"); int PayStackAmount = oMoviesModelClass.CalculatePayStackAmount(Amount, Convert.ToInt32(NoOfPersons), CouponValue); PayStackRequestModel rt = new PayStackRequestModel(); //var percent = 0.1 * PayStackAmount; //var decrease = Convert.ToInt32((PayStackAmount - percent)); rt.amount = PayStackAmount; //rt.amount = 50; rt.email = email; rt.firstName = Fullname; rt.lastName = Fullname; // var paystackTransactionAPI = new PaystackTransaction(tk.ClientPayStackSecretKey); var response = await paystackTransactionAPI.InitializeTransaction(rt.email, rt.amount, rt.firstName, rt.lastName, "https://ticketplanet.ng/Movies/PaymentConfirmation", Reference); //Note that callback url is optional if (response.status == true) { oMoviesModelClass.UpdatePayStackReference(Reference, response.data.reference); return(Json(new { error = false, result = response }, JsonRequestBehavior.AllowGet)); } } return(Json(new { error = true }, JsonRequestBehavior.AllowGet)); }
public async Task <JsonResult> FlutterwaveMoviePaymentPercent(string Fullname, string phoneNo, string email, string NoOfPersons , string MovieCategory, string Amount, string comments, int CinemaLocation, int CinemaCompanyID, string MovieDay, string MovieTime, string MovieName, string IsCoupon, string Coupon, string CouponAgentId, string CouponAssignId, string CouponID, string nErrorCode, string CouponValue) { oGenericViewModel.rv = new ReturnValues(); TicketRequestModel ct = new TicketRequestModel(); ct.Fullname = Fullname; ct.phoneNo = phoneNo; ct.email = email; ct.NoOfPersons = Convert.ToInt32(NoOfPersons); ct.Amount = Amount; var per = 0.1 * Convert.ToInt32(Amount); var dec = Convert.ToInt32((Convert.ToInt32(Amount) - per)); ct.Amount = dec.ToString(); //ct.Amount = "5.00"; ct.MovieDate = MovieDay; ct.MovieTime = MovieTime; ct.CinemaCompanyID = CinemaCompanyID; ct.CinemaLocation = CinemaLocation; ct.MovieName = MovieName; ct.TicketCategory = MovieCategory; if (!string.IsNullOrEmpty(nErrorCode)) { if (nErrorCode == "1") { ct.Coupon = Coupon; ct.CouponAgentId = !string.IsNullOrEmpty(CouponAgentId) ? Convert.ToInt32(CouponAgentId) : 0; ct.CouponAssignId = !string.IsNullOrEmpty(CouponAssignId) ? Convert.ToInt32(CouponAssignId) : 0; ct.CouponID = !string.IsNullOrEmpty(CouponID) ? Convert.ToInt32(CouponID) : 0; ct.IsCoupon = IsCoupon; } } else { ct.IsCoupon = "N"; } var BatchCounter = oMoviesModelClass.GetCurrentCounter(); var Reference = RefferenceGenerator.GenerateReferenceFLW(BatchCounter); var rtn = oMoviesModelClass.SaveTicketDetails(ct, Reference); if (rtn.sErrorText == "Success") { //string testSecretKey = "FLWSECK_TEST-b252b05cd42022b753045159413ad2ad-X"; //string testPublicKeys = "FLWPUBK_TEST-1f5f2f2bdd4e5928fdc59fc29296ea91-X"; var tk = await oMoviesModelClass.GetClientProfileDetails("002"); int flutterwaveAmount = oMoviesModelClass.CalculateFlutterAmount(Amount, Convert.ToInt32(NoOfPersons), CouponValue); FlutterWaveRequestModel rt = new FlutterWaveRequestModel(); var percent = 0.1 * flutterwaveAmount; var decrease = Convert.ToInt32((flutterwaveAmount - percent)); rt.amount = decrease; //rt.amount = flutterwaveAmount; //rt.amount = 5; rt.email = email; rt.firstName = Fullname; rt.lastName = Fullname; rt.publicKey = tk.MobileClientPayStackSecretKey; rt.secretKey = tk.ClientPayStackSecretKey; //rt.publicKey = testSecretKey; //rt.secretKey = testPublicKeys; rt.redirectUrl = tk.TicketPlanetEventCallBackUrl; rt.Reference = Reference; rt.phoneNo = phoneNo; return(Json(new { result = rt, error = false }, JsonRequestBehavior.AllowGet)); } return(Json(new { error = true }, JsonRequestBehavior.AllowGet)); }