protected async override void OnAppearing() { base.OnAppearing(); TablesPageModel.NavigateToDrinksPage += HandleNavigateToDrinksPage; TablesPageModel.NavigateToOrderPage += HandleNavigateToOrderPage; if (WcfServicesProxy.Instance.ServiceCallConfig != WcfServicesProxy.ServiceCallConfigType.AllServiceCallsOff) { TableList.IsEnabled = false; TableList.IsRefreshing = true; //Moved to app.xaml.cs //if (FirstTimeLoadMenu) //{ // await DataLoader.LoadToppingsFromFileOrServer(); // //var toppingsTask = DataBaseDictionaries.LoadToppingsFromServerAsync(); // //var menuTask = WcfServicesProxy.Instance.GetMenuAsync(); // //await Task.WhenAll(toppingsTask, menuTask); // FirstTimeLoadMenu = false; //} var tablesServerTaskSuccess = await DataBaseDictionaries.LoadTableDataAsync(); if (tablesServerTaskSuccess) { TableList.IsRefreshing = false; TableList.IsEnabled = true; } //Don't know how to get an exception from the above await..... //if (exception != null) //{ // await DisplayAlert("Warning!", "Loading data from server encountered the exception: " + exception.InnerException.Message, "OK"); //} } }
public static void LoadToppingsFromFileOrServer() { string pizzaToppingsFileName = "WaiterClientPizzaToppings.json"; string saladToppingsFileName = "WaiterClientSaladToppings.json"; string writeFilePath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); var pizzaTopPathWithFileName = Path.Combine(writeFilePath, pizzaToppingsFileName); var saladTopPathWithFileName = Path.Combine(writeFilePath, saladToppingsFileName); if (File.Exists(pizzaTopPathWithFileName)) { DataBaseDictionaries.PizzaToppingsDictionary = JsonConvert.DeserializeObject <Dictionary <decimal, DBModifier> >(File.ReadAllText(pizzaTopPathWithFileName)); } else { DataBaseDictionaries.LoadPizzaToppingsFromServer(); File.WriteAllText(pizzaTopPathWithFileName, JsonConvert.SerializeObject(DataBaseDictionaries.PizzaToppingsDictionary)); } if (File.Exists(saladTopPathWithFileName)) { DataBaseDictionaries.SaladToppingsDictionary = JsonConvert.DeserializeObject <Dictionary <decimal, DBModifier> >(File.ReadAllText(saladTopPathWithFileName)); } else { DataBaseDictionaries.LoadSaladToppingsFromServer(); File.WriteAllText(saladTopPathWithFileName, JsonConvert.SerializeObject(DataBaseDictionaries.SaladToppingsDictionary)); } }
private async Task OnRefreshing(object sender, EventArgs e) { try { await Task.Run(() => DataBaseDictionaries.LoadTableDataAsync()); } finally { ((ListView)sender).IsRefreshing = false; } }