示例#1
0
        private bool addNewRide()
        {
            ride = new RideView();

            ride.StartTime = dateTimePicker1.Value;

            ride.EndTime = dateTimePicker2.Value;


            ride.Rout = new Route {
                Id = route.Id
            };
            ride.CurrentStation = new Station {
                Id = route.Stations[0].Id
            };


            MongoLayer.Models.Vehical vts = comboBox2.SelectedItem as MongoLayer.Models.Vehical;
            if (vts == null)
            {
                return(false);
            }

            ride.Vehical = new Bus {
                Id = vts.Id
            };

            RideModel.AddNewRide(ride);


            return(true);
        }
示例#2
0
        protected Task <ActivityHeaderModel> CreateHeaderViewModelAsync(RideModel ride)
        {
            return(Task.Run(
                       () =>
            {
                var lap = ride.Laps[0];

                double maxSpeed = lap.MaximumSpeed * 3.6;
                EffortComputer effortComputer = HumanEffortComputer.BySpeed.OverrideDefaultMaxValue(maxSpeed);

                var dispersion = new SortedDictionary <double, IDispersionSpan>();
                var previousPoint = lap.Trackpoints[0];
                DateTime startTime = lap.Trackpoints[0].CreatedDate.Value;
                for (int index = 0; index < lap.Trackpoints.Count; index++)
                {
                    var currentPoint = lap.Trackpoints[index];

                    TimeSpan elapsedTime = currentPoint.CreatedDate.Value - startTime;

                    double?speed = null;
                    if (previousPoint != null && previousPoint.Latitude != null && previousPoint.Longitude != null &&

                        /*previousPoint.DistanceMeters > 0 && currentPoint.Position != null
                         * && currentPoint.DistanceMeters > 0 &&*/elapsedTime.TotalSeconds > 0)
                    {
                        double kilometersTraveled = GeoCalculation.HaversineDistance(
                            new LatLong(
                                previousPoint.Latitude,
                                previousPoint.Longitude),
                            new LatLong(
                                currentPoint.Latitude,
                                currentPoint.Longitude));
                        double hoursElapsed = (elapsedTime - (previousPoint.CreatedDate.Value - startTime)).TotalHours;
                        speed = kilometersTraveled / hoursElapsed;
                    }

                    //double? value = lap.AverageHeartRateBpm != null ? currentPoint.HeartRateBpm?.Value : speed;
                    //if (value == null)
                    //{
                    //    previousPoint = currentPoint;
                    //    continue;
                    //}

                    //var elapsedTimeSinceLastPoint = currentPoint.CreatedDate - previousPoint.CreatedDate;
                    //EffortSpan effortSpan = effortComputer.GetSpan(value);
                    //if (!dispersion.ContainsKey(effortSpan.Threshold))
                    //{
                    //    dispersion.Add(effortSpan.Threshold, new DispersionSpan(effortSpan.Color, 0));
                    //}

                    //dispersion[effortSpan.Threshold]
                    //   .IncrementValue(elapsedTimeSinceLastPoint.TotalMilliseconds);

                    previousPoint = currentPoint;
                }

                return new ActivityHeaderModel(ride.ToActivityHeader(), dispersion.Values.ToList());
            }));
        }
 private void button2_Click(object sender, EventArgs e)
 {
     if (listBox1.SelectedIndex == -1)
     {
         return;
     }
     RideModel.RemoveRide((listBox1.SelectedItem as RideView).Id);
     updateListBox();
 }
示例#4
0
        private void updateMap()
        {
            var rd = comboBox2.SelectedItem as RoutView;

            if (rd == null)
            {
                var test = comboBox1.SelectedItem as VihecalType;
                // List<RoutView> routs;
                if (test != null)
                {
                    var ts = TransportModel.GetTransport(test.name);
                    routs = RouteModel.GetAllRoutes(ts.Id.ToString());
                }
                else
                {
                    routs = RouteModel.GetAllRoutes();
                }
                Random rand = new Random(Environment.TickCount);
                // mapa.clearMap();
                for (int i = 0; i < routs.Count; i++)
                {
                    Color  b;
                    byte[] color = new byte[3];
                    rand.NextBytes(color);
                    b = Color.FromArgb(150, color[0], color[1], color[2]);

                    mapa.drawLines(routs[i], b);

                    // var rides = RideModel.GetAllRides(routs[i].Id);
                    // mapa.DrawVihecals(rides);
                }
                for (int i = 0; i < routs.Count; i++)
                {
                    var rides = RideModel.GetAllRides(routs[i].Id);
                    mapa.DrawVihecals(rides);
                }
            }
            else
            {
                Random rand = new Random(Environment.TickCount);
                Color  b;
                byte[] color = new byte[3];
                rand.NextBytes(color);
                b = Color.FromArgb(150, color[0], color[1], color[2]);

                mapa.drawLines(rd, b);

                var rides = RideModel.GetAllRides(rd.Id);
                mapa.DrawVihecals(rides);
            }
        }
示例#5
0
        /// <summary>
        /// Converts to activityheader.
        /// </summary>
        /// <param name="ride">The ride.</param>
        /// <returns></returns>
        public static ActivityHeader ToActivityHeader(this RideModel ride)
        {
            var lap = ride.Laps[0];

            var firstPoint = lap.Trackpoints[0];

            return(new ActivityHeader(
                       ride.Name,
                       lap.Trackpoints.Last().CreatedDate.Value,
                       TimeSpan.FromSeconds(lap.TotalTimeSeconds),
                       (int)lap.DistanceMeters,
                       lap.MaximumSpeed,
                       true));
        }
        private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
        {
            var test = comboBox1.SelectedItem as VihecalType;

            if (test == null)
            {
                return;
            }

            var ts = TransportModel.GetTransport(test.name);



            dataGridView1.DataSource = RideModel.GetRides(ts.Id.ToString(), (comboBox2.SelectedItem as RoutView).Id.ToString());
        }
示例#7
0
        public RideModel MapToRideModel()
        {
            var result = new RideModel
            {
                Id           = this.Id,
                CourseId     = this.CourseId,
                VehicleId    = this.VehicleId,
                DriverId     = this.DriverId,
                Date         = this.Date,
                TicketsCount = this.TicketsCount,
                UsedFuel     = this.UsedFuel,
                Delay        = this.Delay
            };

            return(result);
        }
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            var test = comboBox1.SelectedItem as VihecalType;

            if (test == null)
            {
                return;
            }

            var ts = TransportModel.GetTransport(test.name);

            comboBox2.Enabled = true;
            comboBox2.Items.AddRange(RouteModel.GetAllRoutes(ts.Id.ToString()).ToArray());

            dataGridView1.DataSource = RideModel.GetRides(ts.Id.ToString(), null);
        }
示例#9
0
        private void button1_Click(object sender, EventArgs e)
        {
            if (!selectedst)
            {
                selectedst = true;
                mapa.DrawStart(st);
                start = st;

                var rd    = comboBox2.SelectedItem as RoutView;
                var rides = RideModel.GetAllRides(rd.Id);

                int j = rd.Stations.IndexOf(start);



                string val = "";
                for (int i = 0; i < rides.Count; i++)
                {
                    if (rides[i].CurrentStation == start)
                    {
                        val += ",0";
                        break;
                    }
                    int x = rd.Stations.IndexOf(rides[i].CurrentStation);
                    if (x == -1)
                    {
                        x = 0;
                    }

                    int time = rd.Duration / rd.Stations.Count;
                    time *= i - x;
                    val  += "," + time.ToString();
                }
                label4.Text     = val;
                button2.Enabled = true;
            }
            else
            {
                if (st == start)
                {
                    return;
                }
                selectedst = false;
                // mapa.DrawStart(st);
                end = st;
            }
        }
示例#10
0
 public BaseContractResponse UpdateRide(RideModel rideModel)
 {
     return(ExecuteAction <BaseContractResponse>(r =>
     {
         var ride = _dbContext.Rides.FirstOrDefault(u => u.Id == rideModel.Id);
         ride.Id = rideModel.Id;
         ride.CourseId = rideModel.CourseId;
         ride.VehicleId = rideModel.VehicleId;
         ride.DriverId = rideModel.DriverId;
         ride.Date = rideModel.Date;
         ride.TicketsCount = rideModel.TicketsCount;
         ride.UsedFuel = rideModel.UsedFuel;
         ride.Delay = rideModel.Delay;
         _dbContext.Rides.Update(ride);
         _dbContext.SaveChanges();
     }));
 }
示例#11
0
        private bool changeRide()
        {
            ride.StartTime = dateTimePicker1.Value;

            ride.EndTime = dateTimePicker2.Value;

            MongoLayer.Models.Vehical vts = comboBox2.SelectedItem as MongoLayer.Models.Vehical;
            if (vts == null)
            {
                return(false);
            }
            ride.Vehical.Id = vts.Id;

            RideModel.UpdateRide(ride);

            return(true);
        }
示例#12
0
 public CreateRideResponse CreateRide(RideModel rideModel)
 {
     return(ExecuteAction <CreateRideResponse>(r =>
     {
         var ride = new Ride()
         {
             Id = rideModel.Id,
             CourseId = rideModel.CourseId,
             VehicleId = rideModel.VehicleId,
             DriverId = rideModel.DriverId,
             Date = rideModel.Date,
             TicketsCount = rideModel.TicketsCount,
             UsedFuel = rideModel.UsedFuel,
             Delay = rideModel.Delay
         };
         _dbContext.Rides.Add(ride);
         _dbContext.SaveChanges();
         r.Id = ride.Id;
     }));
 }
        public IHttpActionResult UpdateRide(RideModel ridemodel)
        {
            Ride r = new Ride();

            r.Id             = ridemodel.Id;
            r.DepartureTime  = ridemodel.DepartureTime;
            r.DepartureDate  = ridemodel.DepartureDate;
            r.PostDate       = ridemodel.PostDate;
            r.AvailableSeats = ridemodel.AvailableSeats;
            r.CostPerKm      = ridemodel.CostPerKm;
            r.RideFrequency  = ridemodel.RideFrequency;
            r.VehicleType    = ridemodel.VehicleType;
            r.Smoking        = ridemodel.Smoking;
            r.FoodDrinks     = ridemodel.FoodDrinks;
            r.UserId         = ridemodel.UserId;
            r.Source         = ridemodel.Source;
            r.Destination    = ridemodel.Destination;
            r.Checkpoints    = ridemodel.Checkpoints;
            r.RideStatusId   = 1;
            new RideDAC().RideUpdate(r);
            return(Ok());
        }
        public IHttpActionResult RidePost([FromBody] RideModel ride)
        {
            Ride r = new Ride();

            r.DepartureTime  = ride.DepartureTime;
            r.DepartureDate  = ride.DepartureDate;
            r.PostDate       = ride.PostDate;
            r.AvailableSeats = ride.AvailableSeats;
            r.CostPerKm      = ride.CostPerKm;
            r.RideFrequency  = ride.RideFrequency;
            r.VehicleType    = ride.VehicleType;
            r.Smoking        = ride.Smoking;
            r.FoodDrinks     = ride.FoodDrinks;
            r.UserId         = ride.UserId;
            r.Source         = ride.Source;
            r.Destination    = ride.Destination;
            r.Checkpoints    = ride.Checkpoints;
            r.RideStatusId   = 1;

            new RideDAC().Insert(r);
            return(Ok());
        }
示例#15
0
 public Ride(RoutView rt)
 {
     InitializeComponent();
     rout = rt;
     listBox1.Items.AddRange(RideModel.GetAllRides(rout.Id).ToArray());
 }
示例#16
0
 private void updateListBox()
 {
     listBox1.Items.Clear();
     listBox1.Items.AddRange(RideModel.GetAllRides(rout.Id).ToArray());
 }
 private void Time_Table_Load(object sender, EventArgs e)
 {
     dataGridView1.DataSource = RideModel.GetRides(null, null);
 }