async public Task LoadMenuItemsAsync() { if (IsBusy) { return; } IsBusy = true; try { EditMenuItems.Clear(); WPPod.Models.MenuItem menuItemSeed = new WPPod.Models.MenuItem(); menuItemSeed.Menu = _selectedMenu; ServerStatus status = await ResultMultiple <WPPod.Models.MenuItem> .WaitForObjectAsync( NesterControl.DeployedApp, true, menuItemSeed, false); if (status.Code >= 0) { _menuItems = status.PayloadToList <WPPod.Models.MenuItem>(); OnPropertyChanged("EditMenuItems"); SelectedMenuItem = _menuItems.FirstOrDefault(); } } catch (Exception ex) { Debug.WriteLine(ex); } finally { IsBusy = false; } }
public MenuViewModel(Inkton.Nester.Models.App app = null) : base(app) { _menus = new ObservableCollection <WPPod.Models.Menu>(); _menuItems = new ObservableCollection <WPPod.Models.MenuItem>(); MessagingCenter.Subscribe <Views.MenuItemPage, WPPod.Models.MenuItem>(this, "AddItem", async(obj, item) => { WPPod.Models.MenuItem menuItem = item as WPPod.Models.MenuItem; menuItem.Id = null; menuItem.Menu = _selectedMenu; ServerStatus status = await NesterControl.DeployedApp.CreateAsync(menuItem); if (status.Code == 0) { await LoadMenusAsync(); } }); LoadMenusCommand = new Command(async() => await LoadMenusAsync()); LoadMenuItemsCommand = new Command(async() => await LoadMenuItemsAsync()); }
async public Task LoadOrdersAsync(DateTime date) { if (IsBusy) { return; } IsBusy = true; try { WPPod.Models.Order orderSeed = new WPPod.Models.Order(); Dictionary <string, string> filter = new Dictionary <string, string>(); filter["date"] = date.ToString("yyyy-MM-dd"); ServerStatus status = await ResultMultiple <WPPod.Models.Order> .WaitForObjectAsync( NesterControl.DeployedApp, true, orderSeed, false, filter); if (status.Code >= 0) { _orders = status.PayloadToList <WPPod.Models.Order>(); WPPod.Models.OrderItem itemSeed = new WPPod.Models.OrderItem(); foreach (var order in _orders) { itemSeed.Order = order; status = await ResultMultiple <WPPod.Models.OrderItem> .WaitForObjectAsync( NesterControl.DeployedApp, true, itemSeed); if (status.Code >= 0) { order.Items = status.PayloadToList <WPPod.Models.OrderItem>(); WPPod.Models.MenuItem menuItemSeed = new WPPod.Models.MenuItem(); foreach (var orderItem in order.Items) { menuItemSeed.Menu = new WPPod.Models.Menu(); menuItemSeed.Menu.Id = orderItem.MenuId; menuItemSeed.Id = orderItem.MenuItemId; status = await ResultSingle <WPPod.Models.MenuItem> .WaitForObjectAsync( true, menuItemSeed, new CachedHttpRequest <WPPod.Models.MenuItem>( NesterControl.DeployedApp.QueryAsync), false, null, null); orderItem.MenuItem = status.PayloadToObject <WPPod.Models.MenuItem>(); } } } OnPropertyChanged("Orders"); } } catch (Exception ex) { Debug.WriteLine(ex); } finally { IsBusy = false; } }