Exemplo n.º 1
0
        public ActionResult <RideList> GetRides()
        {
            List <Ride> rides    = new List <Ride>();
            RideList    rideList = new RideList();

            try{
                var query = from r in motherload.Rides
                            select r;
                var query2 = from r in motherload.Seats
                             select r;

                foreach (var q in query)
                {
                    rides.Add(q);
                }


                rideList.Rides = rides;
                foreach (var s in query2)
                {
                    for (int i = 0; i < rideList.Rides.Count; i++)
                    {
                        if (rideList.Rides[i].RideId == s.RideId)
                        {
                            rideList.Rides[i].passangers.Add(s.Email);
                        }
                    }
                }
                return(rideList);
            }
            catch (Exception e) {
                return(rideList);
            }
        }
Exemplo n.º 2
0
        private void BindListView()
        {
            try
            {
                using (OdbcConnection connection = new OdbcConnection(System.Configuration.ConfigurationManager.ConnectionStrings["MySQLConnStr"].ConnectionString))
                {
                    connection.Open();

                    string query = "SELECT * from ride";

                    // testing
                    OdbcDataAdapter ada = new OdbcDataAdapter(query, connection);
                    try
                    {
                        DataTable dt = new DataTable();
                        ada.Fill(dt);
                        RideList.DataSource = dt;
                        RideList.DataBind();
                    }
                    catch (Exception ex)
                    {
                        Response.Write("An error occured: " + ex.Message);
                    }
                    connection.Close();
                }
            }
            catch (Exception ex)
            {
                Response.Write("An error occured: " + ex.Message);
            }
        }
Exemplo n.º 3
0
        private void LoadData()
        {
            ParsedFile _file = new ParsedFile(_inputPath);

            IParsedLine firstLine = _file.NextLine();

            /*long gridRow = */
            firstLine.NextElement <long>();
            /*long gridCol = */
            firstLine.NextElement <long>();

            //Grid = new Grid(gridRow, gridCol);

            long n_vehicles = firstLine.NextElement <long>();

            for (int i = 0; i < n_vehicles; ++i)
            {
                VehicleList.Add(new Vehicle(i));
            }

            long n_rides = firstLine.NextElement <long>();
            long bonus   = firstLine.NextElement <long>();

            TotalSimulationSteps = firstLine.NextElement <long>();

            long rideId = 0;

            while (!_file.Empty)
            {
                IParsedLine line = _file.NextLine();

                long row = line.NextElement <long>();
                long col = line.NextElement <long>();

                long endrow = line.NextElement <long>();
                long endcol = line.NextElement <long>();

                long start = line.NextElement <long>();
                long end   = line.NextElement <long>();

                RideList.Add(new Ride(
                                 rideId,
                                 bonus,
                                 new Position(row, col),
                                 new Position(endrow, endcol),
                                 start,
                                 end,
                                 TotalSimulationSteps));

                ++rideId;
            }

            if (n_rides != RideList.Count)
            {
                throw new ParsingException();
            }
        }
Exemplo n.º 4
0
 public void GenerateCreatedRides()
 {
     try{
         client = new ClientSocket();
         rides  = JsonConvert.DeserializeObject <RideList>(client.GetCreatedRides(User.FindFirst(ClaimTypes.Email)?.Value));
     }
     catch (Exception e) {
         Message = "Something went wrong :( \n Please reload the page or try again later.";
     }
 }
Exemplo n.º 5
0
        public void ExampleReproduction()
        {
            LoadData();

            VehicleList.First().SuccessfullRides.Add(RideList.SingleOrDefault(ride => ride.Id == 0));
            VehicleList.First().SuccessfullRides.First().Done = true;
            VehicleList.First().SuccessfullRides.First().DoneInEarlyStart = true;

            VehicleList.Last().SuccessfullRides.Add(RideList.SingleOrDefault(ride => ride.Id == 2));
            VehicleList.Last().SuccessfullRides.First().Done = true;
            VehicleList.Last().SuccessfullRides.Add(RideList.SingleOrDefault(ride => ride.Id == 1));
            VehicleList.Last().SuccessfullRides.Last().Done = true;

            PrintData();
        }
Exemplo n.º 6
0
        public ActionResult <RideList> GetCreatedRides(string Request)
        {
            List <Ride> rides    = new List <Ride>();
            RideList    rideList = new RideList();

            try{
                var query = from r in motherload.Rides
                            where (r.Driver == Request)
                            select r;

                foreach (var q in query)
                {
                    rides.Add(q);
                }

                rideList.Rides = rides;
                return(rideList);
            }
            catch (Exception e) {
                return(rideList);
            }
        }
Exemplo n.º 7
0
 protected void OnPagePropertiesChanging(object sender, PagePropertiesChangingEventArgs e)
 {
     (RideList.FindControl("DataPager") as DataPager).SetPageProperties(e.StartRowIndex, e.MaximumRows, false);
     this.BindListView();
 }
Exemplo n.º 8
0
 private Ride GetOptimalRide(long currentStep)
 {
     return(RideList.FirstOrDefault(r => r.EarlyStart == currentStep));
 }
Exemplo n.º 9
0
        private void ProcessData()
        {
            RideList = RideList.OrderBy(ride => ride.Distance).ToList();    // Room for improvement

            long currentStep = 0;

            while (currentStep < TotalSimulationSteps)
            {
                // Update Vehicle State
                UpdateVehicleState(currentStep);

                Ride optimalRideForCurrentStep = GetOptimalRide(currentStep);

                if (optimalRideForCurrentStep != null)
                {
                    VehicleList = VehicleList.OrderBy(v => v.CalculateDistanceToAPoint(optimalRideForCurrentStep.InitialPosition)).ToList();
                }
                // Possible improvement: always provide an optimalRideAlternative and a Vehicle Ordered list according to previous one

                foreach (Vehicle v in VehicleList.Where(v => v.Free).ToList())
                {
                    if (!RideList.Any())
                    {
                        break;
                    }

                    /// Next ride choice for each vehicle
                    Ride ride = (optimalRideForCurrentStep != null && optimalRideForCurrentStep.Done == false) // Since optimalRide is declared before entering foreach, null comprobation is not enough and .Done needs to checked too here
                        ? optimalRideForCurrentStep                                                            // Current behavior: chose only according to bonus give for early start
                        : null;

                    // Possible improvement : ride selection taking into account distance vehicle-ride init, etc. (has to do with ordering vehicleList)
                    // Alternatives to main ride choice (already done or impossible to do)

                    if (ride == null)   // Alternatives to optimal ride
                    {
                        switch (_inputFileName)
                        {
                        case ("b_should_be_easy.in"):
                            ride = GetRandomRemainingRide();
                            break;

                        case ("c_no_hurry.in"):         // Deterministic output
                        {
                            ride = MoreLinq.MoreEnumerable.MinBy(RideList, r => v.CalculateDistanceToAPoint(r.InitialPosition));
                        }
                        break;

                        case ("d_metropolis.in"):
                        {
                            ride = currentStep <= 0.75 * TotalSimulationSteps
                                        ? GetRandomRemainingRide()
                                        : MoreLinq.MoreEnumerable.MinBy(RideList, r => v.CalculateDistanceToAPoint(r.InitialPosition));
                        }
                        break;

                        case ("e_high_bonus.in"):
                        {
                            ride = currentStep <= 0.75 * TotalSimulationSteps
                                        ? ride ?? GetRandomRemainingRide()
                                        : ride ?? MoreLinq.MoreEnumerable.MinBy(RideList, r => v.CalculateDistanceToAPoint(r.InitialPosition));
                        }
                        break;

                        default:
                            throw new Exception("File behavior needs to be defined");
                        }
                    }

                    /// Step simulation actions
                    if (ride.IsOnTimeOrAfterEarlyStart(currentStep + v.CalculateDistanceToAPoint(ride.InitialPosition)))
                    {
                        RideList.Remove(ride);
                        ride.Distance        += v.CalculateDistanceToAPoint(ride.InitialPosition);
                        ride.Done             = true;
                        ride.DoneInEarlyStart = currentStep == ride.EarlyStart;
                        v.Free = false;
                        v.StepWhenWillBeFee = currentStep + ride.Distance;  // Including trip to position

                        v.SuccessfullRides.Add(ride);
                    }
                }
                currentStep++;
            }
        }
Exemplo n.º 10
0
 public void GenerateRides()
 {
     rides  = new RideList();
     client = new ClientSocket();
     rides  = JsonConvert.DeserializeObject <RideList>(client.GetRides());
 }