private async Task SaveAsync(Object argument) { var canSaveResult = this.CanSave(); if (canSaveResult != null && canSaveResult.Length > 0) { var translateExtension = new Citizen.Extensions.TranslateExtension(); translateExtension.Text = canSaveResult.Length == 1 ? "Is" : "Are"; var verb = translateExtension.ProvideValue(null) as string; var dialogService = Xamarin.Forms.DependencyService.Get <IDialogService>(); await dialogService.AlertInfo("Error", "SavingRequirement", String.Join(",", canSaveResult), verb); return; } this.State = ViewStatesHelper.MoveToState(this.State, ViewStates.Saving); var permanentlySaved = this.OnSaving(); var storeService = Xamarin.Forms.DependencyService.Get <IDataStoreService>(); storeService.SaveTemporarily <T>(CurrentItem); this.State = ViewStatesHelper.MoveToState(this.State, ViewStates.Viewing); if (this.InitialState == ViewStates.Viewing && permanentlySaved == false) { this._initialState = ViewStatesHelper.MoveToState(this.InitialState, ViewStates.Updating, this.InitialState); } RefreshParentContainer(); }
private ViewStates _tempState; // used exclusively by editAsync and CancelAsync to reset state to previous state. private void EditAsync(Object argument) { _tempState = this.State; this.State = ViewStatesHelper.MoveToState(this.State, ViewStates.Updating); if (this.InitialState != ViewStates.Creating) { this.RaisePropertyChanged(nameof(this.State)); } this._refreshAction(); }
private async Task DeleteItemsAsync() { LoggingService.Debug($"{LoggingPrefix}DeleteItemsAsync() - Start "); var selectedItemViewModelsList = SelectedItemViewModels.ToList(); var deletionCount = selectedItemViewModelsList.Count; if (deletionCount < 1) { return; } var dialogService = Xamarin.Forms.DependencyService.Get <IDialogService>(); var deleteStringContent = deletionCount > 1 ? $"{deletionCount}" : selectedItemViewModelsList.First().GetModelDisplayString(selectedItemViewModelsList.First().CurrentItem); var answer = await dialogService.ConfirmDeletion(deleteStringContent, deletionCount == 1); if (answer != true) { return; } await Task.Delay(100); lock (this.syncObj) { foreach (var viewModel in selectedItemViewModelsList) { var state = viewModel.InitialState; var newState = ViewStatesHelper.MoveToState(viewModel.State, ViewStates.Deleting); LoggingService.Debug($"{LoggingPrefix}DeleteItemsAsync() - InitialState: {state}; newState: {newState}. "); LoggingService.Debug($"{LoggingPrefix}DeleteItemsAsync() - Removing from selectedItemViewModels"); if (state != ViewStates.Creating && state != ViewStates.UpdatingCreate) { LoggingService.Debug($"{LoggingPrefix}DeleteItemsAsync() - this is an existing item. continuing. "); viewModel.IsSelected = false; viewModel.State = newState; continue; } LoggingService.Debug($"{LoggingPrefix}DeleteItemsAsync() - newly created item. can be easely discarded.. Removing from ItemViewModels. "); ItemViewModels.Remove(viewModel); } LoggingService.Debug($"{LoggingPrefix}DeleteItemsAsync() - End "); this.RaisePropertyChanged(nameof(WrappedItemViewModels)); } }
private async Task DeleteAsync(Object argument) { var canDeleteResult = this.CanDelete(); if (canDeleteResult != null && canDeleteResult.Length > 0) { var dialogDeleteService = Xamarin.Forms.DependencyService.Get <IDialogService>(); await dialogDeleteService.AlertInfo("Error", "DeleteRequirement", String.Join(",", canDeleteResult)); return; } var dialogService = Xamarin.Forms.DependencyService.Get <IDialogService>(); var answer = await dialogService.ConfirmDeletion(this.GetModelDisplayString(this.CurrentItem), true); if (answer != true) { return; } this.State = ViewStatesHelper.MoveToState(this.State, ViewStates.Deleting); this._refreshAction(); }