Exemple #1
0
        public IEnumerable <Route> GetRouteById(int id, string lang = "en")
        {
            IEnumerable <Route> routeList = databasePlaceholder.Get(id, lang);

            //if (routeList.Count() == 0)
            //{
            //    throw new HttpResponseException(HttpStatusCode.NotFound);
            //}
            return(routeList);
        }
Exemple #2
0
        public Route GetRouteById(int id, string lang)
        {
            Route route = databasePlaceholder.Get(id, lang);

            if (route == null)
            {
                throw new HttpResponseException(HttpStatusCode.NotFound);
            }
            return(route);
        }
Exemple #3
0
        public string MakePayment(int RouteId)
        {
            //var routeToMakePayment = _routeService.getRouteDetail(RouteId);
            //var customerInfor = _customerService.FindCustomerById(routeToMakePayment.CutomerId);
            //var creditCardToMakePayment = _creditCardService.GetCardToPayment(routeToMakePayment.CustomerId);
            var routeToMakePayment      = _routeRepository.Get(x => x.Id == RouteId);
            var customerInfor           = _customerRepository.Get(x => x.Id == routeToMakePayment.CustomerId);
            var creditCardToMakePayment = _creditCardRepository.Get(x => x.Deleted == false && x.CustomerId == routeToMakePayment.CustomerId && x.Isdefault == true);

            //Stripe charge money
            StripeConfiguration.SetApiKey(SETTING.Value.SecretStripe);

            var options = new ChargeCreateOptions
            {
                Amount      = Convert.ToInt64(routeToMakePayment.TotalAmount * 100),
                Currency    = "usd",
                Description = customerInfor.FullName.ToUpper() + "-" + customerInfor.Email + "-" + customerInfor.PhoneNumber +
                              " buy Route Code: " + routeToMakePayment.Code,
                SourceId   = creditCardToMakePayment.CardId, // obtained with Stripe.js,
                CustomerId = customerInfor.StripeId,
            };
            var service = new ChargeService();

            service.ExpandBalanceTransaction = true;
            Charge charge = service.Create(options);


            PaymentCreateViewModel model = new PaymentCreateViewModel();

            model.RouteId        = routeToMakePayment.Id;
            model.CreditCartId   = creditCardToMakePayment.Id;
            model.Description    = "You bought route " + routeToMakePayment.Code + ". Thank you for using our service.";
            model.Amount         = routeToMakePayment.TotalAmount;
            model.Status         = PaymentStatus.Success;
            model.StripeChargeId = charge.Id;
            model.FeeAmount      = Convert.ToDecimal(charge.BalanceTransaction.Fee) / 100;
            var payment = _mapper.Map <PaymentCreateViewModel, Payment>(model); //map từ ViewModel qua Model

            _paymentRepository.Add(payment);
            _unitOfWork.CommitChanges();
            return("");
        }
Exemple #4
0
        public IEnumerable <Route> GetRouteByID(int id, string lang = "", string active = "")
        {
            //Route route = databasePlaceholder.Get(id, lang, active);
            IEnumerable <Route> routeList = databasePlaceholder.Get(id, lang, active);

            if (routeList.Count() == 0)
            {
                throw new HttpResponseException(HttpStatusCode.NotFound);
            }
            return(routeList);
        }
        public IActionResult GetBestRoute([FromRoute] string origin, string destination)
        {
            var routes = _repository.Get();

            var bestRoute = RouteService.BestRouteProcess(routes.Find(q => q.AirportName == origin), routes.Find(q => q.AirportName == destination));
            var result    = new RouteVM()
            {
                RoutePathDescription = bestRoute.RoutePathDescription, TotalCost = bestRoute.TotalCost
            };

            return(Ok(JsonSerializer.Serialize(result)));
        }
        /// <summary>
        /// Zeigt eine Liste der Bewertungen für Route <paramref name="id"/> an.
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public ActionResult BewertungsListe(int id)
        {
            var route = _RouteRepository.Get(id);

            return(View("BewertungsListe", route));
        }
 public RoutingService(IRouteRepository routeRepository)
 {
     _routeRepository = routeRepository;
     _routeConfigurations = _routeRepository.Get();
 }
 public async Task <IEnumerable <Route> > Get()
 {
     return(await repo.Get());
 }
 /// <summary>
 /// Return the driver with the given id
 /// </summary>
 /// <param name="id"></param>
 /// <returns></returns>
 public DriverInfo GetDriverById(int id)
 {
     return(repository.Get(id));
 }
Exemple #10
0
        //Payment
        public void SendEmailReceiptForBuyer(int routeId)
        {
            try
            {
                var    apiKey             = SETTING.Value.SendGridKey;
                var    client             = new SendGridClient(apiKey);
                string emailTemplateHtml  = _hostingEnvironment.ContentRootPath + "\\EmailTemplate\\EmailTemplate.html";
                string ticketTemplatehtml = _hostingEnvironment.ContentRootPath + "\\EmailTemplate\\TicketsTemplate.html";
                string body       = string.Empty;
                string ticketList = string.Empty;
                var    route      = _routeRepository.Get(r => r.Id == routeId);
                var    customer   = _customerRepository.Get(c => c.Id == route.CustomerId);
                //using streamreader for reading my htmltemplate
                using (StreamReader reader = new StreamReader(emailTemplateHtml))
                {
                    body = reader.ReadToEnd();
                }
                var customerEmail = _customerRepository.Get(c => c.Id == route.CustomerId).Email;
                var customerName  = customer.FullName;
                var customerPhone = customer.PhoneNumber;
                var routeCode     = route.Code;
                var totalAmount   = route.TotalAmount;
                var date          = DateTime.UtcNow;
                var routeTickets  = _routeTicketRepository.GetAllQueryable().Where(r => r.RouteId == routeId);
                List <TicketRowViewModel> tickets = new List <TicketRowViewModel>();
                foreach (var routeTicket in routeTickets)
                {
                    var ticket             = _ticketRepository.Get(t => t.Id == routeTicket.TicketId);
                    var ticketRowViewModel = _mapper.Map <Ticket, TicketRowViewModel>(ticket);
                    tickets.Add(ticketRowViewModel);
                }
                //replacing the required things
                body = body.Replace("{routeCode}", routeCode);
                body = body.Replace("{customerName}", customerName);
                body = body.Replace("{customerEmail}", customerEmail);
                body = body.Replace("{customerPhone}", customerPhone);
                body = body.Replace("{Date}", date.ToString());
                body = body.Replace("{subTotal}", totalAmount.ToString());
                body = body.Replace("{Total}", totalAmount.ToString());

                body = body.Replace("{Term}", SETTING.Value.Term);
                body = body.Replace("{Title}", SETTING.Value.Title);
                body = body.Replace("{fromName}", SETTING.Value.FromName);
                body = body.Replace("{fromEmail}", SETTING.Value.FromEmail);
                body = body.Replace("{Street}", SETTING.Value.Street);
                body = body.Replace("{City}", SETTING.Value.City);
                body = body.Replace("{addressNumber}", SETTING.Value.AddressNumber);
                body = body.Replace("{phoneNumber}", SETTING.Value.PhoneNumber);
                body = body.Replace("{bussinessNumber}", SETTING.Value.BussinessNumber);
                foreach (var ticket in tickets)
                {
                    using (StreamReader reader = new StreamReader(ticketTemplatehtml))
                    {
                        var ticketRow        = reader.ReadToEnd();
                        var departureStation = _stationRepository.Get(s => s.Id == ticket.DepartureStationId).Name;
                        var arrivalStation   = _stationRepository.Get(s => s.Id == ticket.ArrivalStationId).Name;
                        ticketRow = ticketRow.Replace("{ticketCode}", ticket.TicketCode);
                        ticketRow = ticketRow.Replace("{Description}", ticket.Description);
                        ticketRow = ticketRow.Replace("{departureCity}", ticket.DepartureCity);
                        ticketRow = ticketRow.Replace("{departureStation}", departureStation);
                        ticketRow = ticketRow.Replace("{departureTime}", ticket.DepartureDateTime.ToString());
                        ticketRow = ticketRow.Replace("{arrivalCity}", ticket.ArrivalCity);
                        ticketRow = ticketRow.Replace("{arrivalStation}", arrivalStation);
                        ticketRow = ticketRow.Replace("{arrivalTime}", ticket.ArrivalDateTime.ToString());
                        ticketRow = ticketRow.Replace("{Amount}", ticket.SellingPrice.ToString());

                        ticketList += ticketRow;
                    }
                }
                body = body.Replace("{ticketList}", ticketList);

                var from             = new EmailAddress(SETTING.Value.FromEmail, SETTING.Value.FromName);
                var subject          = routeCode + " - Receipt - Payment";
                var to               = new EmailAddress(customerEmail, customerName);
                var plainTextContent = "";
                var htmlContent      = body;
                var msg              = MailHelper.CreateSingleEmail(from, to, subject, plainTextContent, htmlContent);
                client.SendEmailAsync(msg);
            }
            catch (Exception)
            {
            }
        }