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())));
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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));
        }
Beispiel #5
0
        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));
        }
Beispiel #6
0
        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));
        }
Beispiel #8
0
        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());
        }
Beispiel #11
0
        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);
        }
Beispiel #13
0
        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));
            }
        }
Beispiel #14
0
        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));
        }
Beispiel #15
0
        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));
            }
        }
Beispiel #16
0
        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);
        }
Beispiel #20
0
        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));
        }