/// <summary> /// Añade la posición de un vehículo dada la referencia de este /// </summary> /// <param name="reference"></param> /// <param name="value"></param> /// <returns></returns> public async Task <bool> AddVehiclePosition(string reference, PositionAPI value) { // Si ni es un vehiculo ni administrador no podemos añadir la posición if (!IsVehicle() && !IsAdmin()) { return(false); } // Buscamos el vehículo var vehicle = await _vehicleRepository.Find(reference); if (vehicle == null) { return(false); } // Si el usuario no es administrador vemos si es el usuario asociado al vehículo if (!IsAdmin() && vehicle.UserId != GetUserId()) { return(false); } if (value.SetDate == DateTime.MinValue) { value.SetDate = DateTime.Now; } // Añadimos la posición bool retValue = await _vehicleRepository.AddVehiclePosition(vehicle.Id, value); // Notificamos la posicion _notifyService.NotifyPosition(vehicle.Id, value); return(retValue); }