private static async Task OnLocationChanged(Geoposition pos) { try { if (pos != null && pos.Coordinate.Latitude != 0) { PositionApiRequest position = new PositionApiRequest(); position.Latitude = (float)pos.Coordinate.Latitude; position.Longitude = (float)pos.Coordinate.Longitude; position.Date = DateTime.UtcNow; await SendPosition(position); } } catch (Exception exception) { } }
public static async Task <bool> Send(PositionApiRequest request, bool checkStored) { bool result = false; try { var response = await HttpController.PostData <BaseApiResult>(ApiMethods.SendPositionUrl(), request); if (ResponseValidator.Validate(response)) { result = true; if (checkStored) { List <PositionApiRequest> storedPositions = GetPositionsToSend(); if (storedPositions != null && storedPositions.Count > 0) { foreach (PositionApiRequest posToSend in storedPositions) { bool isStoredSend = await Send(posToSend, false); if (isStoredSend) { Remove(posToSend); } } } } } else { result = false; } } catch (Exception) { result = false; } return(result); }
public static void Remove(PositionApiRequest request) { PositionRepository.Delete(request.Id); }
public static void Save(PositionApiRequest request) { PositionRepository.Save(request); }