Esempio n. 1
0
        public TripDetail FromTaxi838(TaxiRequest order, Taxi838.Models.Responses.PriceEstimateResponse response,
                                      DistanceResponse distance)
        {
            var cost = int.Parse(response.Price.Split(' ').First());

            var detail = new TripDetail
            {
                CarType     = order.CarType,
                TaxiService = TaxiService.Taxi838,
                Details     = new TripData
                {
                    Price = new Price
                    {
                        Cost     = cost,
                        MinPrice = cost - new Random().Next(10),
                        MaxPrice = cost + new Random().Next(30)
                    },
                    Distance = distance.Distance,
                    Duration = distance.Duration,
                    Seats    = order.CarType == CarType.Minibus ? 8 : 4
                }
            };

            return(detail);
        }
Esempio n. 2
0
        public TripDetail FromUber(TaxiRequest order, Uber.Models.Responses.PriceEstimateResponse priceEstimate,
                                   Uber.Models.Responses.TimeEstimateResponse timeEstimate)
        {
            var price = order.CarType == CarType.Business
                ? priceEstimate.Prices.Single(x => x.DisplayName.Equals("UberSelect"))
                : priceEstimate.Prices.Single(x => x.DisplayName.Equals("UberX"));
            var time = order.CarType == CarType.Business
                ? timeEstimate.Times.Single(x => x.DisplayName.Equals("UberSelect"))
                : timeEstimate.Times.Single(x => x.DisplayName.Equals("UberX"));

            var detail = new TripDetail
            {
                CarType     = order.CarType,
                TaxiService = TaxiService.Uber,
                Details     = new TripData
                {
                    Price = new Price
                    {
                        Cost     = (int)((price.LowEstimate + price.HighEstimate) / 2),
                        MinPrice = (int?)price.LowEstimate,
                        MaxPrice = (int?)price.HighEstimate
                    },
                    Distance   = price.Distance,
                    Duration   = (int)price.Duration,
                    Seats      = 4,
                    PickupTime = (int?)time.Estimate
                }
            };

            return(detail);
        }
Esempio n. 3
0
        public void CannotFindDirectFlightBetweenTwoLocationNotNextToEachother()
        {
            Node  nodeA   = new Node("A");
            Node  nodeB   = new Node("B");
            Node  nodeC   = new Node("C");
            Node  nodeD   = new Node("D");
            Node  nodeE   = new Node("E");
            Node  nodeF   = new Node("F");
            Graph myGraph = new Graph(nodeA);

            myGraph.AddEdge(nodeA, nodeB, 150);
            myGraph.AddEdge(nodeA, nodeC, 82);
            myGraph.AddEdge(nodeB, nodeC, 99);
            myGraph.AddEdge(nodeB, nodeD, 42);
            myGraph.AddEdge(nodeC, nodeD, 105);
            myGraph.AddEdge(nodeD, nodeF, 73);
            myGraph.AddEdge(nodeC, nodeF, 26);
            myGraph.AddEdge(nodeF, nodeE, 250);
            myGraph.AddEdge(nodeF, nodeC, 37);

            TripDetail td = Program.GetEdge(myGraph, "A", "F");

            Assert.Equal(0, td.Price);
            Assert.False(td.IsDirect);
        }
Esempio n. 4
0
        // To Add the Trip Details
        public int AddOrEditTrip(TripDetail tripDetail)
        {
            try
            {
                int result;
                using (SqlConnection con = new SqlConnection(connString))
                {
                    SqlCommand cmd = new SqlCommand("usp_AddEditTrip", con);
                    cmd.CommandType = System.Data.CommandType.StoredProcedure;
                    cmd.Parameters.AddWithValue("@Trip_Id", tripDetail.TripId);
                    cmd.Parameters.AddWithValue("@No_Of_Days", tripDetail.NoOfDays);
                    cmd.Parameters.AddWithValue("@No_Of_People", tripDetail.NoOfPeople);
                    cmd.Parameters.AddWithValue("@Budget", tripDetail.Budget);

                    SqlParameter outputParam = cmd.Parameters.Add("@out_trip_Id", SqlDbType.Int);
                    outputParam.Direction = ParameterDirection.Output;
                    con.Open();
                    cmd.ExecuteNonQuery();
                    con.Close();
                    result = (int)cmd.Parameters["@out_trip_Id"].Value;
                }

                return(result);
            }
            catch (Exception ex)
            {
                return(0);
            }
        }
Esempio n. 5
0
        public void CanFindDirectRouteBetweenToLocations()
        {
            Node  nodeA   = new Node("A");
            Node  nodeB   = new Node("B");
            Node  nodeC   = new Node("C");
            Node  nodeD   = new Node("D");
            Node  nodeE   = new Node("E");
            Node  nodeF   = new Node("F");
            Graph myGraph = new Graph(nodeA);

            myGraph.AddEdge(nodeA, nodeB, 150);
            myGraph.AddEdge(nodeA, nodeC, 82);
            myGraph.AddEdge(nodeB, nodeC, 99);
            myGraph.AddEdge(nodeB, nodeD, 42);
            myGraph.AddEdge(nodeC, nodeD, 105);
            myGraph.AddEdge(nodeD, nodeF, 73);
            myGraph.AddEdge(nodeC, nodeF, 26);
            myGraph.AddEdge(nodeF, nodeE, 250);
            myGraph.AddEdge(nodeF, nodeC, 37);

            TripDetail td = Program.GetEdge(myGraph, "E", "F");

            Assert.Equal(250, td.Price);
            Assert.True(td.IsDirect);
        }
Esempio n. 6
0
        public async Task StartTrip()
        {
            var trip = new Trip()
            {
                StartTime = DateTime.Now
            };

            trip.Id = await connection.InsertAsync(trip);

            SelectedTrip            = trip;
            IsNewTrip               = true;
            cancellationTokenSource = new CancellationTokenSource();
            await Task.Run(async() =>
            {
                while (true)
                {
                    var tripDetail = new TripDetail()
                    {
                        TripId = SelectedTrip.Id, Time = DateTime.Now
                    };
                    tripDetail.Id      = await connection.InsertAsync(tripDetail);
                    SelectedTripDetail = tripDetail;
                    await Task.Delay(TimeSpan.FromMilliseconds(500));
                    if (cancellationTokenSource.IsCancellationRequested)
                    {
                        break;
                    }
                }
            }).ConfigureAwait(false);

            IsNewTrip = false;
        }
Esempio n. 7
0
        static void Main(string[] args)
        {
            Node  nodeA   = new Node("A");
            Node  nodeB   = new Node("B");
            Node  nodeC   = new Node("C");
            Node  nodeD   = new Node("D");
            Node  nodeE   = new Node("E");
            Node  nodeF   = new Node("F");
            Graph myGraph = new Graph(nodeA);

            myGraph.AddEdge(nodeA, nodeB, 150);
            myGraph.AddEdge(nodeA, nodeC, 82);
            myGraph.AddEdge(nodeB, nodeC, 99);
            myGraph.AddEdge(nodeB, nodeD, 42);
            myGraph.AddEdge(nodeC, nodeD, 105);
            myGraph.AddEdge(nodeD, nodeF, 73);
            myGraph.AddEdge(nodeC, nodeF, 26);
            myGraph.AddEdge(nodeF, nodeE, 250);
            myGraph.AddEdge(nodeF, nodeC, 37);

            TripDetail td = GetEdge(myGraph, "E", "F");

            Console.WriteLine($"The direct flight exists: {td.IsDirect}");
            Console.WriteLine($"The price is: {td.Price}");
            Console.ReadLine();
        }
Esempio n. 8
0
        public TripDetail FromBolt(TaxiRequest order, Bolt.Models.Responses.PriceEstimateResponse response,
                                   DistanceResponse distance)
        {
            var price = order.CarType == CarType.Business
                ? response.Data.SearchCategories.Single(x => x.Name.Equals("Comfort"))
                : response.Data.SearchCategories.Single(x => x.Name.Equals("Bolt"));

            var minCost = int.Parse(price.PricePrediction.Trim('₴').Split('–').First());
            var maxCost = int.Parse(price.PricePrediction.Trim('₴').Split('–').Last());
            var avgCost = (minCost + maxCost) / 2;

            var detail = new TripDetail
            {
                CarType     = order.CarType,
                TaxiService = TaxiService.Bolt,
                Details     = new TripData
                {
                    Price = new Price
                    {
                        MinPrice        = minCost,
                        MaxPrice        = maxCost,
                        Cost            = avgCost,
                        SurgeMultiplier = price.SurgeMultiplier
                    },
                    Distance   = distance.Distance,
                    Duration   = distance.Duration,
                    PickupTime = price.PickupTime,
                    Seats      = 4
                }
            };

            return(detail);
        }
Esempio n. 9
0
        public IEnumerable <TripDetail> GetTripDetails()
        {
            try
            {
                List <TripDetail> tripDetailsList = new List <TripDetail>();
                using (SqlConnection con = new SqlConnection(connString))
                {
                    SqlCommand cmd = new SqlCommand("Select * from Trip_detail_tbl", con);
                    cmd.CommandType = System.Data.CommandType.Text;
                    con.Open();

                    SqlDataReader rdr = cmd.ExecuteReader();
                    while (rdr.Read())
                    {
                        TripDetail tripDetails = new TripDetail();
                        tripDetails.TripId     = Convert.ToInt32(rdr["Trip_Id"]);
                        tripDetails.NoOfDays   = Convert.ToInt32(rdr["No_Of_Days"]);
                        tripDetails.NoOfPeople = Convert.ToInt32(rdr["No_Of_People"]);
                        tripDetails.Budget     = Convert.ToInt32(rdr["Budget"]);

                        tripDetailsList.Add(tripDetails);
                    }
                }
                return(tripDetailsList);
            }
            catch (Exception ex)
            {
                return(null);
            }
        }
        public IActionResult AddEditTrip(int Id = 0)
        {
            TripDetail model = _TripService.GetTrip(Id);

            //TripDetail model = new TripDetail();

            return(View(model));
        }
        public ActionResult DeleteConfirmed(int id)
        {
            TripDetail tripDetail = db.TripDetails.Find(id);

            db.TripDetails.Remove(tripDetail);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
 public IActionResult AddEditTrip(TripDetail tripDetail)
 {
     if (ModelState.IsValid)
     {
         int TripId = _TripService.AddOrEditTrip(tripDetail);
     }
     TempData["Message"] = "Successfully Created";
     return(RedirectToAction("Index"));
 }
Esempio n. 13
0
		public RatesClient Get (TripDetail getInfo)
		{
			return InvokeStrategy<RatesClient> (() => {
				
				PostObject (
					UrlPaths.Rates, getInfo
				);
			
			});
			
		}
 public ActionResult Edit([Bind(Include = "Id,Destination,TimeStart,TimeEnd,Activity,Food,Budget,TripId")] TripDetail tripDetail)
 {
     if (ModelState.IsValid)
     {
         db.Entry(tripDetail).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.TripId = new SelectList(db.Trips, "Id", "TripTitle", tripDetail.TripId);
     return(View(tripDetail));
 }
Esempio n. 15
0
 public FareDetailsBuilder CalculateFare(TripDetail tripDetail)
 {
     return(builder//new FareDetails()
            .AddInitialAmount()
            .AddNewyorkTaxSurcharge()
            .CalculateLessThan6MilesPerHourSpeedRangeIndicator(tripDetail.LessThan6MilesPerHourSpeedRangeIndicator)
            .CalculateMoreThan6MilesPerHourOr60SecondsDurationIndicator(tripDetail.MoreThan6MilesPerHourOr60SecondsDurationIndicator)
            .CalculateNightSurcharge(tripDetail.TripDate)
            .CalculatePeakHourWeekDaySurcharge(tripDetail.TripDate)
            .AddInitialAmount());
 }
Esempio n. 16
0
 public FareDetailsTests()
 {
     tripDetail = new TripDetail()
     {
         CityBasedSurchargeAmount = 0.5,
         LessThan6MilesPerHourSpeedRangeIndicator          = 2,
         MoreThan6MilesPerHourOr60SecondsDurationIndicator = 5,
         TripDate = Convert.ToDateTime("01/17/2020 5:30pm")
     };
     subject = new FareDetailsBuilder();
 }
Esempio n. 17
0
        public void UpdateTrip(int TripId, TripDetail trip)
        {
            var data = context.TripDetails.SingleOrDefault(s => s.TripId == TripId);

            data.DepartureAirportName = trip.DepartureAirportName;
            data.ArrivedAirportName   = trip.ArrivedAirportName;
            data.DepatureCity         = trip.DepatureCity;
            data.ArrivedCity          = trip.ArrivedCity;
            data.DepartDateTime       = trip.DepartDateTime;
            data.ArrivedDateTime      = trip.ArrivedDateTime;
            context.SaveChanges();
        }
 public ActionResult InsertTrip(TripDetail trip)
 {
     try
     {
         repository.InsertTrip(trip);
         return(Ok("Trip is Inserted Successfully"));
     }
     catch (Exception e)
     {
         return(BadRequest(e));
     }
 }
 public ActionResult UpdateTrip(int TripId, TripDetail trip)
 {
     try
     {
         repository.UpdateTrip(TripId, trip);
         return(Ok("Trip is Updated Successfully"));
     }
     catch (Exception e)
     {
         return(BadRequest(e));
     }
 }
        // GET: TripDetails/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            TripDetail tripDetail = db.TripDetails.Find(id);

            if (tripDetail == null)
            {
                return(HttpNotFound());
            }
            return(View(tripDetail));
        }
        // GET: TripDetails/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            TripDetail tripDetail = db.TripDetails.Find(id);

            if (tripDetail == null)
            {
                return(HttpNotFound());
            }
            ViewBag.TripId = new SelectList(db.Trips, "Id", "TripTitle", tripDetail.TripId);
            return(View(tripDetail));
        }
Esempio n. 22
0
        public int SaveTripDetails(TripDetails tripDetails)
        {
            var trip = new TripDetail
            {
                TripTitle   = tripDetails.TripTitle,
                Description = tripDetails.Description,
                StartDate   = tripDetails.fromDate,
                EndDate     = tripDetails.toDate,
                UserId      = tripDetails.UserId,
                Created_On  = DateTime.Now,
                Status      = true
            };

            _db.TripDetails.Add(trip);
            _db.SaveChanges();
            return(trip.Id);
        }
Esempio n. 23
0
        public TripDetail GetTrip(int Id)
        {
            using (SqlConnection con = new SqlConnection(connString))
            {
                TripDetail tripDetail = new TripDetail();
                SqlCommand cmd        = new SqlCommand("Select * from Trip_detail_tbl where Trip_Id=" + Id, con);
                cmd.CommandType = System.Data.CommandType.Text;
                con.Open();

                SqlDataReader rdr = cmd.ExecuteReader();
                while (rdr.Read())
                {
                    tripDetail.TripId     = Convert.ToInt32(rdr["Trip_Id"]);
                    tripDetail.NoOfDays   = Convert.ToInt32(rdr["No_Of_Days"]);
                    tripDetail.NoOfPeople = Convert.ToInt32(rdr["No_Of_People"]);
                    tripDetail.Budget     = Convert.ToInt32(rdr["Budget"]);
                }
                return(tripDetail);
            }
        }
Esempio n. 24
0
        /// <summary>
        /// Takes in a graph, two locations. Checks if the first location is on the graph, if so checks if its neighbors are location2.
        /// If so returns the weight of the edge and true, if not, returns a 0 and false. If first location is not on the graph returns false
        /// </summary>
        /// <param name="graph">The graph</param>
        /// <param name="location">string of location 1</param>
        /// <param name="location2">string of location 2</param>
        /// <returns>a TripDetail object or null</returns>
        public static TripDetail GetEdge(Graph graph, string location, string location2)
        {
            Node startNode = graph.Nodes.Find(node => node.Value == location);

            if (startNode != null)
            {
                TripDetail returnDetail = new TripDetail();
                foreach (Edge item in startNode.Edges)
                {
                    if (item.Neighbor.Value == location2)
                    {
                        returnDetail.Price    = item.Price;
                        returnDetail.IsDirect = true;
                        return(returnDetail);
                    }
                }
                returnDetail.Price    = 0;
                returnDetail.IsDirect = false;
                return(returnDetail);
            }
            return(null);
        }
Esempio n. 25
0
        public TripDetail FromUklon(TaxiRequest order, Uklon.Models.Responses.PriceEstimateResponse response,
                                    DistanceResponse distance)
        {
            var detail = new TripDetail
            {
                CarType     = order.CarType,
                TaxiService = TaxiService.Uklon,
                Details     = new TripData
                {
                    Price = new Price
                    {
                        Cost            = response.Cost,
                        MinPrice        = response.LowCost,
                        MaxPrice        = response.HighCost,
                        SurgeMultiplier = response.CostMultiplier
                    },
                    Distance = response.Distance,
                    Duration = distance.Duration,
                    Seats    = order.CarType == CarType.Minibus ? 8 : 4
                }
            };

            return(detail);
        }
Esempio n. 26
0
        public bool EditTrip(TripDetail tripDetail)
        {
            try
            {
                using (SqlConnection con = new SqlConnection(connString))
                {
                    SqlCommand cmd = new SqlCommand("usp_EditTrip", con);
                    cmd.CommandType = System.Data.CommandType.StoredProcedure;
                    cmd.Parameters.AddWithValue("@Trip_Id", tripDetail.TripId);
                    cmd.Parameters.AddWithValue("@No_Of_Days", tripDetail.NoOfDays);
                    cmd.Parameters.AddWithValue("@No_Of_People", tripDetail.NoOfPeople);
                    cmd.Parameters.AddWithValue("@Budget", tripDetail.Budget);

                    con.Open();
                    cmd.ExecuteNonQuery();

                    return(true);
                }
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
Esempio n. 27
0
        public void CannotFindDirectFlightIfLocationMissing()
        {
            Node  nodeA   = new Node("A");
            Node  nodeB   = new Node("B");
            Node  nodeC   = new Node("C");
            Node  nodeD   = new Node("D");
            Node  nodeE   = new Node("E");
            Node  nodeF   = new Node("F");
            Graph myGraph = new Graph(nodeA);

            myGraph.AddEdge(nodeA, nodeB, 150);
            myGraph.AddEdge(nodeA, nodeC, 82);
            myGraph.AddEdge(nodeB, nodeC, 99);
            myGraph.AddEdge(nodeB, nodeD, 42);
            myGraph.AddEdge(nodeC, nodeD, 105);
            myGraph.AddEdge(nodeD, nodeF, 73);
            myGraph.AddEdge(nodeC, nodeF, 26);
            myGraph.AddEdge(nodeF, nodeE, 250);
            myGraph.AddEdge(nodeF, nodeC, 37);

            TripDetail td = Program.GetEdge(myGraph, "X", "F");

            Assert.Null(td);
        }
        public int AddOrEditTrip(TripDetail tripDetail)
        {
            int TripId = _ITripRepository.AddOrEditTrip(tripDetail);

            return(TripId);
        }
        public TripDetail GetTrip(int Id)
        {
            TripDetail tripDetail = _ITripRepository.GetTrip(Id);

            return(tripDetail);
        }
Esempio n. 30
0
 public void InsertTrip(TripDetail trip)
 {
     context.TripDetails.Add(trip);
     context.SaveChanges();
 }