async Task ExecuteTapContainerCommandAsync(ASECloudTable table) { if (table == null) { return; } MessagingService.Current.Subscribe <MessageArgsDeleteTable>(MessageKeys.DeleteTable, async(m, argsDeleteTable) => { Navigation.PopAsync(); IProgressDialog deletingDialog = UserDialogs.Loading("Deleting Table"); deletingDialog.Show(); try { var aseTable = Tables.Where(t => t.TableName == argsDeleteTable.TableName && t.StorageAccountName == argsDeleteTable.StorageAccountName).FirstOrDefault(); if (aseTable == null) { return; } await aseTable.BaseTable.DeleteIfExistsAsync(); App.Logger.Track(AppEvent.DeleteTable.ToString()); Tables.Remove(aseTable); SortTables(); var realm = App.GetRealm(); await realm.WriteAsync(temprealm => { temprealm.Remove(temprealm.All <RealmCloudTable>() .Where(t => t.TableName == argsDeleteTable.TableName && t.StorageAccountName == argsDeleteTable.StorageAccountName).First()); }); } catch (Exception ex) { Logger.Report(ex, "Method", "HandleMessageArgsDeleteTable"); MessagingService.Current.SendMessage(MessageKeys.Error, ex); } finally { if (deletingDialog != null) { if (deletingDialog.IsShowing) { deletingDialog.Hide(); } deletingDialog.Dispose(); } } }); var tableRowsPage = new TableRowsPage(table); App.Logger.TrackPage(AppPage.TableRows.ToString()); await testPage.Navigation.PushAsync(tableRowsPage); }
public TableRowsPage(ASECloudTable table) { InitializeComponent(); BindingContext = new TableRowsViewModel(Navigation, UserDialogs.Instance, table); Title = table.BaseTable.Name; ViewModel.LoadTableRowsCommand.Execute(false); if (Device.RuntimePlatform == Device.Android) { ToolbarItems.Add(new ToolbarItem { Order = ToolbarItemOrder.Secondary, Text = "Add Row", Command = vm.AddTableRowCommand }); ToolbarItems.Add(new ToolbarItem { Order = ToolbarItemOrder.Secondary, Text = "Delete Table", Command = vm.DeleteTableCommand }); } else if (Device.RuntimePlatform == Device.iOS) { ToolbarItems.Add(new ToolbarItem { Text = "More", Icon = "toolbar_overflow.png", Command = new Command(async() => { string[] items = new[] { "Add Row", "Delete Table" }; var action = await DisplayActionSheet("Options", "Cancel", null, items); if (action == items[0]) { vm.AddTableRowCommand.Execute(null); } else if (action == items[1]) { vm.DeleteTableCommand.Execute(null); } }) }); } lvTableRows.ItemSelected += (sender, e) => { lvTableRows.SelectedItem = null; }; }
public TableRowsViewModel(INavigation navigation, IUserDialogs userDialogs, ASECloudTable table) : base(navigation, userDialogs) { Table = table; NoTableRowsFoundMessage = "No Queue Messages Found"; RowsLoadedCount = 0; }
public void AddTable(ASECloudTable aseCloudTable) { Tables.Add(aseCloudTable); SortTables(); }