public VehiculoGps getPlate(string placa) { var auth = getAuth().Result; var values = new Dictionary <string, string> { { "plate", placa } }; var data = getDataPlate(auth, values).Result; var response = (JObject)JsonConvert.DeserializeObject(data); VehiculoGps vehicleData = new VehiculoGps(); vehicleData.latitude = response["latitude"].Value <string>(); vehicleData.longitude = response["longitude"].Value <string>(); vehicleData.trips = response["trips"].Value <int>(); vehicleData.speeding = response["speeding"].Value <int>(); vehicleData.hardbraking = response["hardBraking"].Value <int>(); vehicleData.sharpacceleration = response["sharpAcceleration"].Value <int>(); vehicleData.sharpturn = response["sharpTurn"].Value <int>(); return(vehicleData); }
public string Get(string plate) { var datalist = _context.vehiculos.Where(p => p.Placa == plate); var count = datalist.Count <Vehiculo>(); if (count == 1) { var plateData = datalist.First <Vehiculo>(); var provider = plateData.gps_provider; var deviceId = plateData.gps_id; var vehicle = new VehiculoGps(); if (provider.Equals("CGB")) { CGBController cgb = new CGBController(); vehicle = cgb.getPlate(plate); _context.vehiculosGps.Add(vehicle); _context.SaveChanges(); } else if (provider.Equals("LOCATION-WORLD")) { LWController lw = new LWController(); var token = lw.getToken(); var clientId = lw.getClientId(token); lw.getDataDevices(token); var obj = lw.getVehicleData(deviceId, token, clientId); } else if (provider.Contains("CHEVISTAR")) { } } //foreach (var elem in datalist) //{ // Console.WriteLine(elem); //} return(""); }
public async Task getDataTrips(Vehiculo vehiculo, string clientId, string token) { DateTime now = DateTime.Now; var firstDayOfMonth = new DateTime(now.Year, now.Month, 1, 0, 0, 0); var currentDay = new DateTime(now.Year, now.Month, now.Day, 23, 59, 59); var desde = firstDayOfMonth.ToString("yyyy-MM-ddTHH:mm:ss"); var hasta = currentDay.ToString("yyyy-MM-ddTHH:mm:ss"); var url = "https://fleet-api.location-world.com/devices"; var urlQuery = url + "/" + vehiculo.gps_id + "/trips?clientId=" + clientId + "&from=" + desde + "&to=" + hasta + "&page=0&pageSize=50"; var stringPayload = await Task.Run(() => JsonConvert.SerializeObject("")); var httpContent = new StringContent(stringPayload, Encoding.UTF8, "application/json"); VehiculoGps vehicleGPS = new VehiculoGps(); using (HttpClient cliente = new HttpClient()) { cliente.DefaultRequestHeaders.Add("domain", "fleet"); cliente.DefaultRequestHeaders.Add("subdomain", "condelpi"); cliente.DefaultRequestHeaders.Add("Authorization", "Bearer " + token); using (HttpResponseMessage response = await cliente.GetAsync(urlQuery)) { var content = response.Content.ReadAsStringAsync(); var resp = (JObject)JsonConvert.DeserializeObject(content.Result); var valores = resp["items"]; var date = ""; var day = ""; var year = ""; var month = ""; var trips = 0; var distance = 0M; var sharpAcceleration = 0; var speeding = 0; var hardBreaking = 0; var score = 0M; var longitude = ""; var latitude = ""; var sharpTurn = 0; if (valores.Count() > 0) { foreach (var elem in valores) { distance += elem["distance"].Value <decimal>(); score += elem["score"].Value <decimal>(); speeding += elem["overSpeeds"].Value <int>(); hardBreaking += elem["suddenBreakings"].Value <int>(); sharpAcceleration += elem["harshAccelerations"].Value <int>(); } JArray items = (JArray)valores; var dateDB = valores.First["endedOn"].Value <string>(); var dateDT = DateTime.ParseExact(dateDB, "MM/dd/yyyy HH:mm:ss", CultureInfo.InvariantCulture); latitude = valores.First["endLatitude"].Value <string>(); longitude = valores.First["endLongitude"].Value <string>(); //vehicle_id = id; date = dateDT.ToString(); day = dateDT.Day.ToString(); year = dateDT.Year.ToString(); month = dateDT.Month.ToString(); trips = items.Count; //score /= trips; //hardBreaking /= trips; //sharpAcceleration /= trips; var datosgps = await _vehiculoGpsRepository.GetVehiculoByDateAsync(DateTime.Now.Day, DateTime.Now.Month, DateTime.Now.Year, vehiculo.Id); var vehiculopro = await _vehiculoProvGpsRepository.GetVehiculoByIdAsync(vehiculo.Id); var incidencias = await _incidenciasRepository.GetIncidenciaByNitAsync(vehiculopro.user.Cedula); var conductores = await _datosRepository.GetConductoresAsync(vehiculopro.user.Cedula, vehiculopro.Placa); var talleres = await _datosRepository.GetIngresosTallerAsync(vehiculopro.user.Cedula, vehiculopro.Placa); var siniestros = await _datosRepository.GetSiniestrosAsync(vehiculopro.user.Cedula, vehiculopro.Placa); var sustitutos = await _datosRepository.GetDiasSustitutosAsync(vehiculopro.user.Cedula, vehiculopro.Placa); int diassustitutos = 0; var conductor = await _datosRepository.GetConductorPlacasAsync(vehiculo.Placa); if (sustitutos.Count() > 0) { var strgama = sustitutos.ToList().FirstOrDefault().Gama.ToString(); var diassust = sustitutos.ToList().FirstOrDefault().Dias.ToString(); var gama = await _gamaRepository.GetGamaByTypeAsync(strgama); if (gama != null) { diassustitutos = gama.Monto * Convert.ToInt32(diassust); } } var suma = 0M; if (incidencias != null) { suma = incidencias.ExcesoVelocidad * Convert.ToInt32(speeding) + incidencias.FrenazoBrusco * Convert.ToInt32(hardBreaking) + incidencias.AceleracionesBruscas * Convert.ToInt32(sharpAcceleration) + incidencias.GiroBrusco * Convert.ToInt32(sharpTurn); //TODO } else { suma = 0; } if (distance > 0) { score = 100 - (suma / (Convert.ToDecimal(distance) / 100)); } if (datosgps == null) { VehiculoGps vehiculoGPS = new VehiculoGps { vehiculo = vehiculo, dia = DateTime.Now.Day, mes = DateTime.Now.Month, anio = DateTime.Now.Year, //kilometerstraveled = Convert.ToInt32(response["odometer"].Value<string>().Replace(".","")), kilometerstraveled = distance, trips = trips, speeding = speeding, hardbraking = hardBreaking, sharpacceleration = sharpAcceleration, sharpturn = 0, ///no tiene latitude = latitude, longitude = longitude, score = score, conductores = conductores.Count() > 0 ? conductores.Sum(c => c.Conductores) : 0, talleres = talleres.Count() > 0 ? talleres.Sum(t => t.Ingresos) : 0, siniestros = siniestros.Count() > 0 ? siniestros.Sum(s => s.Total_Siniestros) : 0, ahorro = sustitutos.Count() > 0 ? diassustitutos : 0, usuario = conductor.ToUpper(), }; try { await _vehiculoGpsRepository.CreateAsync(vehiculoGPS); } catch (Exception ex) { var mensaje = ex.Message; } } else { datosgps.kilometerstraveled = distance; datosgps.trips = trips; datosgps.speeding = speeding; datosgps.hardbraking = hardBreaking; datosgps.sharpacceleration = sharpAcceleration; datosgps.sharpturn = 0; datosgps.latitude = latitude; datosgps.longitude = longitude; datosgps.score = score; datosgps.conductores = conductores.Count() > 0 ? conductores.Sum(c => c.Conductores) : 0; datosgps.talleres = talleres.Count() > 0 ? talleres.Sum(t => t.Ingresos) : 0; datosgps.siniestros = siniestros.Count() > 0 ? siniestros.Sum(s => s.Total_Siniestros) : 0; datosgps.ahorro = sustitutos.Count() > 0 ? diassustitutos : 0; datosgps.usuario = conductor.ToUpper(); await _vehiculoGpsRepository.UpdateAsync(datosgps); } //return vehicleGPS; } } } }
public async Task getDataTrips(Vehiculo vehiculo, string clientId, IturanDatosGps ituranDatosGps, int dia, int mes, int año) { var datosgps = await _vehiculoGpsRepository.GetVehiculoByDateAsync(dia, mes, año, vehiculo.Id); var vehiculopro = await _vehiculoProvGpsRepository.GetVehiculoByIdAsync(vehiculo.Id); var incidencias = await _incidenciasRepository.GetIncidenciaByNitAsync(vehiculopro.user.Cedula); var conductores = await _datosRepository.GetConductoresAsync(vehiculopro.user.Cedula, vehiculopro.Placa); var talleres = await _datosRepository.GetIngresosTallerAsync(vehiculopro.user.Cedula, vehiculopro.Placa); var siniestros = await _datosRepository.GetSiniestrosAsync(vehiculopro.user.Cedula, vehiculopro.Placa); var sustitutos = await _datosRepository.GetDiasSustitutosAsync(vehiculopro.user.Cedula, vehiculopro.Placa); int diassustitutos = 0; var conductor = await _datosRepository.GetConductorPlacasAsync(vehiculo.Placa); if (sustitutos.Count() > 0) { var strgama = sustitutos.ToList().FirstOrDefault().Gama.ToString(); var diassust = sustitutos.ToList().FirstOrDefault().Dias.ToString(); var gama = await _gamaRepository.GetGamaByTypeAsync(strgama); if (gama != null) { diassustitutos = gama.Monto * Convert.ToInt32(diassust); } } var distance = ituranDatosGps.kilometros; var suma = 0M; var score = 0M; if (incidencias != null) { suma = incidencias.ExcesoVelocidad * ituranDatosGps.speeding + incidencias.FrenazoBrusco * ituranDatosGps.hardbraking + incidencias.AceleracionesBruscas * ituranDatosGps.sharpacceleration + incidencias.GiroBrusco * ituranDatosGps.sharpturn; } else { suma = 0; } if (distance > 0) { score = 100 - (suma / (Convert.ToDecimal(distance) / 100)); } if (datosgps == null) { VehiculoGps vehiculoGPS = new VehiculoGps { vehiculo = vehiculo, dia = dia, mes = mes, anio = año, //kilometerstraveled = Convert.ToInt32(response["odometer"].Value<string>().Replace(".","")), kilometerstraveled = distance, trips = ituranDatosGps.viajes, speeding = ituranDatosGps.speeding, hardbraking = ituranDatosGps.hardbraking, sharpacceleration = ituranDatosGps.sharpacceleration, sharpturn = ituranDatosGps.sharpturn, ///no tiene latitude = ituranDatosGps.latitud, longitude = ituranDatosGps.longitud, score = score, conductores = conductores.Count() > 0 ? conductores.Sum(c => c.Conductores) : 0, talleres = talleres.Count() > 0 ? talleres.Sum(t => t.Ingresos) : 0, siniestros = siniestros.Count() > 0 ? siniestros.Sum(s => s.Total_Siniestros) : 0, ahorro = sustitutos.Count() > 0 ? diassustitutos : 0, usuario = conductor.ToUpper(), }; try { await _vehiculoGpsRepository.CreateAsync(vehiculoGPS); } catch (Exception ex) { var mensaje = ex.Message; } } else { datosgps.kilometerstraveled = distance; datosgps.trips = ituranDatosGps.viajes; datosgps.speeding = ituranDatosGps.speeding; datosgps.hardbraking = ituranDatosGps.hardbraking; datosgps.sharpacceleration = ituranDatosGps.sharpacceleration; datosgps.sharpturn = ituranDatosGps.sharpturn; datosgps.latitude = ituranDatosGps.latitud; datosgps.longitude = ituranDatosGps.longitud; datosgps.score = score; datosgps.conductores = conductores.Count() > 0 ? conductores.Sum(c => c.Conductores) : 0; datosgps.talleres = talleres.Count() > 0 ? talleres.Sum(t => t.Ingresos) : 0; datosgps.siniestros = siniestros.Count() > 0 ? siniestros.Sum(s => s.Total_Siniestros) : 0; datosgps.ahorro = sustitutos.Count() > 0 ? diassustitutos : 0; datosgps.usuario = conductor.ToUpper(); await _vehiculoGpsRepository.UpdateAsync(datosgps); } }
async static Task <VehiculoGps> getDataTrips(string id, string clientId, string token) { DateTime now = DateTime.Now; var firstDayOfMonth = new DateTime(now.Year, now.Month, 1, 0, 0, 0); var currentDay = new DateTime(now.Year, now.Month, now.Day, 23, 59, 59); var desde = firstDayOfMonth.ToString("yyyy-MM-ddTHH:mm:ss"); var hasta = currentDay.ToString("yyyy-MM-ddTHH:mm:ss"); var url = "https://fleet-api.location-world.com/devices"; var urlQuery = url + "/" + id + "/trips?clientId=" + clientId + "&from=" + desde + "&to=" + hasta + "&page=0&pageSize=50"; var stringPayload = await Task.Run(() => JsonConvert.SerializeObject("")); var httpContent = new StringContent(stringPayload, Encoding.UTF8, "application/json"); VehiculoGps vehicleGPS = new VehiculoGps(); using (HttpClient cliente = new HttpClient()) { cliente.DefaultRequestHeaders.Add("domain", "fleet"); cliente.DefaultRequestHeaders.Add("subdomain", "condelpi"); cliente.DefaultRequestHeaders.Add("Authorization", "Bearer " + token); using (HttpResponseMessage response = await cliente.GetAsync(urlQuery)) { var content = response.Content.ReadAsStringAsync(); var resp = (JObject)JsonConvert.DeserializeObject(content.Result); var valores = resp["items"]; var consorID = ""; var vehicle_id = ""; var date = ""; var day = ""; var year = ""; var month = ""; var trips = 0; var distance = 0.00; var sharpAcceleration = 0.00; var speeding = 0.00; var hardBreaking = 0.00; var longitude = ""; var latitude = ""; foreach (var elem in valores) { distance += elem["distance"].Value <double>(); speeding += elem["overSpeeds"].Value <double>(); hardBreaking += elem["suddenBreakings"].Value <double>(); sharpAcceleration += elem["harshAccelerations"].Value <double>(); } JArray items = (JArray)valores; var dateDB = valores.First["endedOn"].Value <string>(); var dateDT = DateTime.ParseExact(dateDB, "MM/dd/yyyy HH:mm:ss", CultureInfo.InvariantCulture); latitude = valores.First["endLatitude"].Value <string>(); longitude = valores.First["endLongitude"].Value <string>(); vehicle_id = id; date = dateDT.ToString(); day = dateDT.Day.ToString(); year = dateDT.Year.ToString(); month = dateDT.Month.ToString(); trips = items.Count; speeding /= trips; hardBreaking /= trips; sharpAcceleration /= trips; vehicleGPS.longitude = longitude; vehicleGPS.latitude = latitude; vehicleGPS.dia = day; vehicleGPS.mes = month; vehicleGPS.anio = year; vehicleGPS.trips = trips; vehicleGPS.speeding = speeding; vehicleGPS.hardbraking = hardBreaking; vehicleGPS.sharpacceleration = sharpAcceleration; return(vehicleGPS); } } }