/// <summary> /// Corrects the current position georeferenciation in order to maintain the original stop position. /// </summary> /// <param name="lastPosition"></param> /// <param name="posicion"></param> private void CorrectGeoreferenciation(LogPosicionBase lastPosition, LogPosicion posicion) { posicion.Longitud = lastPosition.Longitud; posicion.Latitud = lastPosition.Latitud; posicion.Altitud = lastPosition.Altitud; posicion.Velocidad = lastPosition.Velocidad; DaoFactory.LogPosicionDAO.SaveOrUpdate(posicion); }
internal State Evaluate(LogPosicion p) { var qLevel = _repository.GetPositionClass((float)p.Latitud, (float)p.Longitud); if (_infraccion[qLevel] >= p.Velocidad) { return(State.Inf); } return(_excesos[qLevel] >= p.Velocidad ? State.Exc : State.None); }
internal static LastPosition Create(LogPosicion position) { if (position == null) { throw new ArgumentNullException("position"); } return(new LastPosition() { Latitud = position.Latitud, Longitud = position.Longitud, Velocidad = position.Velocidad, Curso = position.Curso, Fecha = position.FechaMensaje }); }
/// <summary> /// Gets the last datamart update for the specified vehicle. /// </summary> /// <param name="coche"></param> /// <returns></returns> public DateTime GetLastDatamartUpdate(int coche) { DetachedCriteria dc = GetDatamartDetachedCriteria(coche); ICriteria crit = GetDatamartCriteria(1, dc, Order.Desc("Begin")); var data = crit.UniqueResult <Datamart>(); //Adds a minute to avoid regenerating the last hour. if (data != null) { return(data.End.AddMinutes(1)); } var posicionesDao = new LogPosicionDAO(); LogPosicion firtPosition = posicionesDao.GetFirtPosition(coche); DateTime result = firtPosition == null ? DateTime.MinValue : firtPosition.FechaMensaje; return(result); }
internal static VehicleState Create(LogPosicion position, Dispositivo dispositivo) { return(new VehicleState(LastPosition.Create(position), dispositivo)); }