/// <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)); }
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)); }