示例#1
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public async Task <JsonResult> AllVehiclesWithLastPosition()
        {
            var report    = new ActivitiesRerport();
            var user      = User.Identity;
            var positions = report.PositionViewModels(await _positionService.GetLastVehiclPosition(user.Name));

            return(Json(positions, JsonRequestBehavior.AllowGet));
        }
示例#2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="vehicleId"></param>
        /// <returns></returns>
        public async Task <JsonResult> GetCurrentDayPosition(string vehicleId)
        {
            var id = Guid.Parse(vehicleId);
            //var start =
            var endPeriod   = DateTime.Now;
            var startPeriod = DateTime.Now.Date;
            var vehicle     = await _vehicleService.GetVehicleByIdAsync(id);

            var positions = await _positionService.GetVehiclePositionsByPeriod(id, startPeriod, endPeriod);

            if (!positions.Any())
            {
                return(Json(new List <TargetViewModel>(), JsonRequestBehavior.AllowGet));
            }
            var gpsCollection = positions.Select(x =>
                                                 new { Latitude = x.Lat, Longitude = x.Long, GpsStatement = x.Timestamp.ToString("O") });
            var positionReport = new ActivitiesRerport();

            return(Json(new { Periods = positionReport.BuildDailyReport(positions, startPeriod, vehicle.VehicleName), GpsCollection = gpsCollection }, JsonRequestBehavior.AllowGet));
        }
示例#3
0
        public async Task <JsonResult> GetPositionByDate(string vehicleId, string start)
        {
            var id = Guid.Parse(vehicleId);
            // var endPeriod = DateTime.Now;
            var startPeriod = default(DateTime);

            startPeriod = start.ParseToDate();
            var endPeriod = startPeriod.Date.AddDays(1).AddTicks(-1);
            var vehicle   = await ObjectContext.Vehicles.FindAsync(id);

            var positions = await _positionService.GetVehiclePositionsByPeriod(id, startPeriod.ToUniversalTime(), endPeriod.ToUniversalTime());

            if (!positions.Any())
            {
                return(Json(new List <TargetViewModel>(), JsonRequestBehavior.AllowGet));
            }
            var gpsCollection = positions.OrderBy(x => x.Timestamp)
                                .Select(x => new { Latitude = x.Lat, Longitude = x.Long, GpsStatement = x.Timestamp.ToString("O") });
            var positionReport = new ActivitiesRerport();
            var result         = positionReport.BuildDailyReport(positions.OrderBy(x => x.Timestamp).ToList(), startPeriod, vehicle.VehicleName);
            var distance       = result.Where(x => x.MotionStatus == "Moving").Sum(x => x.Distance);

            return(Json(new { Vehiclename = vehicle?.VehicleName, Distance = Math.Round(distance, 2), Periods = result, GpsCollection = gpsCollection.Distinct() }, JsonRequestBehavior.AllowGet));
        }