public override async void Prepare() { base.Prepare(); var appEnvironnement = _preferences.Get(ApplicationSettingsConstants.AppEnvironnement, "unknown_env"); var appVersion = _versionTracking.CurrentVersion; DisplayVersion = appEnvironnement != "unknown_env" ? $"{appEnvironnement} - v{appVersion}" : $"v{appVersion}"; LoggedUser = _userSettingsService.GetIngressName(); var selectedOpId = _preferences.Get(UserSettingsKeys.SelectedOp, string.Empty); if (!string.IsNullOrWhiteSpace(selectedOpId)) { var op = await _operationsDatabase.GetOperationModel(selectedOpId); SelectedOpName = op == null ? "ERROR loading OP" : op.Name; } if (_preferences.Get(UserSettingsKeys.LiveLocationSharingEnabled, false)) { _isLiveLocationSharingEnabled = true; _messenger.Publish(new LiveGeolocationTrackingMessage(this, Action.Start)); await RaisePropertyChanged(() => IsLiveLocationSharingEnabled); } }
private async Task RefreshOperationExecuted() { if (IsBusy) { return; } LoggingService.Trace("Executing OperationRootTabbedViewModel.RefreshOperationCommand"); IsBusy = true; _userDialogs.ShowLoading(); var selectedOpId = _preferences.Get(UserSettingsKeys.SelectedOp, string.Empty); if (string.IsNullOrWhiteSpace(selectedOpId)) { return; } var hasUpdated = false; try { var localData = await _operationsDatabase.GetOperationModel(selectedOpId); var updatedData = await _wasabeeApiV1Service.Operations_GetOperation(selectedOpId); if (localData != null && updatedData != null && !localData.Modified.Equals(updatedData.Modified)) { await _operationsDatabase.SaveOperationModel(updatedData); hasUpdated = true; } } catch (Exception e) { LoggingService.Error(e, "Error Executing OperationRootTabbedViewModel.RefreshOperationCommand"); } finally { IsBusy = false; _userDialogs.HideLoading(); _userDialogs.Toast(hasUpdated ? "Operation data updated" : "You already have latest OP version"); if (hasUpdated) { _messenger.Publish(new MessageFrom <OperationRootTabbedViewModel>(this)); } _messenger.Publish(new RefreshAllAgentsLocationsMessage(this)); } }
private async Task RefreshExecuted() { if (IsLoading) { _pendingRefreshCount++; return; } IsLoading = true; _pendingRefreshCount = 0; LoggingService.Trace("Executing ChecklistViewModel.RefreshCommand"); try { var selectedOpId = _preferences.Get(UserSettingsKeys.SelectedOp, string.Empty); if (string.IsNullOrWhiteSpace(selectedOpId)) { return; } Operation = await _operationsDatabase.GetOperationModel(selectedOpId); if (Operation == null) { return; } var assignedLinks = new List <LinkAssignmentData>(); var assignedMarkers = new List <MarkerAssignmentData>(); if (!Operation.Links.IsNullOrEmpty()) { assignedLinks = Operation.Links.Select(CreateLinkAssignmentData).ToList(); } if (!Operation.Markers.IsNullOrEmpty()) { assignedMarkers = Operation.Markers.Select(CreateMarkerAssignmentData).ToList(); } var orderedAssignments = new List <AssignmentData>(); if (!assignedLinks.IsNullOrEmpty()) { orderedAssignments.AddRange(assignedLinks); } if (!assignedMarkers.IsNullOrEmpty()) { orderedAssignments.AddRange(assignedMarkers); } Elements.Clear(); if (!orderedAssignments.IsNullOrEmpty()) { orderedAssignments = orderedAssignments.OrderBy(x => x.Order).ToList(); Elements.AddRange(orderedAssignments); } } catch (Exception e) { LoggingService.Error(e, "Error Executing ChecklistViewModel.RefreshCommand"); } finally { await RaisePropertyChanged(() => Elements); IsLoading = false; if (_pendingRefreshCount > 0) { await RefreshCommand.ExecuteAsync().ConfigureAwait(false); } } }
private async Task RefreshExecuted() { if (IsLoading) { _pendingRefreshCount++; return; } IsLoading = true; _pendingRefreshCount = 0; LoggingService.Trace("Executing AssignmentsListViewModel.RefreshCommand"); try { var selectedOpId = _preferences.Get(UserSettingsKeys.SelectedOp, string.Empty); if (string.IsNullOrWhiteSpace(selectedOpId)) { return; } Operation = await _operationsDatabase.GetOperationModel(selectedOpId); if (Operation == null) { return; } var userGid = _userSettingsService.GetLoggedUserGoogleId(); if (string.IsNullOrWhiteSpace(userGid)) { return; } var assignedLinks = new List <LinkAssignmentData>(); var assignedMarkers = new List <MarkerAssignmentData>(); if (!Operation.Links.IsNullOrEmpty()) { assignedLinks = Operation.Links.Where(l => l.AssignedTo.Equals(userGid)) .Select(l => new LinkAssignmentData(Operation.Id, l.ThrowOrderPos) { Link = l, FromPortal = Operation.Portals?.FirstOrDefault(p => p.Id.Equals(l.FromPortalId)), ToPortal = Operation.Portals?.FirstOrDefault(p => p.Id.Equals(l.ToPortalId)), Color = WasabeeColorsHelper.GetColorFromWasabeeName(l.Color, Operation.Color) }).OrderBy(x => x.Link !.ThrowOrderPos).ToList(); } if (!Operation.Markers.IsNullOrEmpty()) { assignedMarkers = Operation.Markers.Where(m => m.AssignedTo.Equals(userGid)) .Select(m => new MarkerAssignmentData(Operation.Id, m.Order) { Marker = m, Portal = Operation.Portals?.FirstOrDefault(p => p.Id.Equals(m.PortalId)) }).OrderBy(x => x.Marker !.Order).ToList(); } var orderedAssignments = new List <AssignmentData>(); if (!assignedLinks.IsNullOrEmpty()) { orderedAssignments.AddRange(assignedLinks); } if (!assignedMarkers.IsNullOrEmpty()) { orderedAssignments.AddRange(assignedMarkers); } Assignments.Clear(); if (!orderedAssignments.IsNullOrEmpty()) { orderedAssignments = orderedAssignments.OrderBy(x => x.Order).ToList(); Assignments.AddRange(orderedAssignments); } } catch (Exception e) { LoggingService.Error(e, "Error Executing AssignmentsListViewModel.RefreshCommand"); } finally { await RaisePropertyChanged(() => Assignments); IsLoading = false; if (_pendingRefreshCount > 0) { await RefreshCommand.ExecuteAsync().ConfigureAwait(false); } } }