private async Task ExecuteAddCheeseCommand () { try { AddCheeseCommand.ChangeCanExecute (); var newCheese = new Cheese () { CheeseName = CheeseToAdd.CheeseName, DairyName = CheeseToAdd.DairyName, DateAdded = DateTime.Now }; newCheese = await _dataService.AddCheeseAsync (newCheese).ConfigureAwait (false); var newRating = new Rating () { CheeseId = newCheese.CheeseId, Notes = CheeseToAdd.Notes, WedgeRating = CheeseToAdd.WedgeRating, DateRated = DateTime.Now }; newRating = await _dataService.RateCheeseAsync (newRating); CheeseToAdd.CheeseId = newRating.CheeseId; CheeseToAdd.RatingId = newRating.RatingId; Device.BeginInvokeOnMainThread (async () => { await Page.Navigation.PopModalAsync (true); }); } catch (NoInternetException) { await Page.DisplayAlert ("No Internet!", "Cannot Access The Internet!", "Darn!"); } finally { AddCheeseCommand.ChangeCanExecute (); } }
public AddRatingViewModel (Cheese cheese, ContentPage page) { _dataService = DependencyService.Get<ICheeseDataService> (); RatingToAdd = new CheeseAndRating () { CheeseId = cheese.CheeseId, CheeseName = cheese.CheeseName, DairyName = cheese.DairyName }; Page = page; }
public AddRatingView(Cheese cheese) { _viewModel = new AddRatingViewModel(cheese, this); BindingContext = _viewModel; var cheeseName = new Label(); cheeseName.Text = string.Format("The cheese name is {0}", _viewModel.RatingToAdd.CheeseName); var dairyName = new Label() { Text = "Dairy Name" }; dairyName.Text = string.Format("The dairy name is {0}", _viewModel.RatingToAdd.DairyName); var ratingLabel = new Label() { Text = "Rating:" }; var notesLabel = new Label() { Text = "Notes:" }; var ratingView = new RatingView(true); ratingView.SetBinding(RatingView.WedgeRatingProperty, "RatingToAdd.WedgeRating"); var notesEntry = new Entry() { }; notesEntry.SetBinding(Entry.TextProperty, "RatingToAdd.Notes"); var entryGrid = new Grid() { ColumnSpacing = 0, RowSpacing = 2, VerticalOptions = LayoutOptions.Start }; entryGrid.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto }); entryGrid.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto }); entryGrid.ColumnDefinitions.Add(new ColumnDefinition() { Width = GridLength.Auto }); entryGrid.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(1, GridUnitType.Star) }); entryGrid.Children.Add(ratingLabel, 0, 0); entryGrid.Children.Add(ratingView, 1, 0); entryGrid.Children.Add(notesLabel, 0, 1); entryGrid.Children.Add(notesEntry, 1, 1); var saveButton = new Button() { Text = "Save", FontAttributes = FontAttributes.Bold, BackgroundColor = CheeseColors.RED, TextColor = Color.White, FontSize = 18, BorderRadius = 0 }; saveButton.Command = _viewModel.AddRatingCommand; var cancelButton = new Button() { Text = "Cancel", FontAttributes = FontAttributes.Bold, BackgroundColor = CheeseColors.GRAY, TextColor = Color.White, FontSize = 18, BorderRadius = 0 }; var grid = new Grid() { RowDefinitions = { new RowDefinition { Height = new GridLength(40, GridUnitType.Star) } }, ColumnDefinitions = { new ColumnDefinition() { Width = new GridLength(.5, GridUnitType.Star) }, new ColumnDefinition() { Width = new GridLength(.5, GridUnitType.Star) } }, Padding = new Thickness(0, 0, 0, 0), RowSpacing = 0, ColumnSpacing = 0 }; grid.Children.Add(saveButton, 0, 0); grid.Children.Add(cancelButton, 1, 0); cancelButton.Clicked += async(sender, e) => { await Navigation.PopAsync(true); }; var scroll = new ScrollView(); scroll.Content = new StackLayout { Children = { cheeseName, dairyName, entryGrid, grid } }; var headerImage = new Image { Source = "Header.png" }; Content = new StackLayout() { Children = { headerImage, scroll } }; }
public AddRatingView(Cheese cheese) { _viewModel = new AddRatingViewModel (cheese, this); BindingContext = _viewModel; var cheeseName = new Label (); cheeseName.Text = string.Format ("The cheese name is {0}", _viewModel.RatingToAdd.CheeseName); var dairyName = new Label () { Text = "Dairy Name" }; dairyName.Text = string.Format ("The dairy name is {0}", _viewModel.RatingToAdd.DairyName); var ratingLabel = new Label () { Text = "Rating:" }; var notesLabel = new Label () { Text = "Notes:" }; var ratingView = new RatingView (true); ratingView.SetBinding (RatingView.WedgeRatingProperty, "RatingToAdd.WedgeRating"); var notesEntry = new Entry () { }; notesEntry.SetBinding (Entry.TextProperty, "RatingToAdd.Notes"); var entryGrid = new Grid () { ColumnSpacing = 0, RowSpacing = 2, VerticalOptions = LayoutOptions.Start }; entryGrid.RowDefinitions.Add (new RowDefinition (){ Height = GridLength.Auto }); entryGrid.RowDefinitions.Add (new RowDefinition () { Height = GridLength.Auto }); entryGrid.ColumnDefinitions.Add (new ColumnDefinition () { Width = GridLength.Auto }); entryGrid.ColumnDefinitions.Add (new ColumnDefinition (){ Width = new GridLength (1, GridUnitType.Star) }); entryGrid.Children.Add (ratingLabel, 0, 0); entryGrid.Children.Add (ratingView, 1, 0); entryGrid.Children.Add (notesLabel, 0, 1); entryGrid.Children.Add (notesEntry, 1, 1); var saveButton = new Button () { Text = "Save", FontAttributes = FontAttributes.Bold, BackgroundColor = CheeseColors.RED, TextColor = Color.White, FontSize = 18, BorderRadius = 0 }; saveButton.Command = _viewModel.AddRatingCommand; var cancelButton = new Button () { Text = "Cancel", FontAttributes = FontAttributes.Bold, BackgroundColor = CheeseColors.GRAY, TextColor = Color.White, FontSize = 18, BorderRadius = 0 }; var grid = new Grid () { RowDefinitions = { new RowDefinition { Height = new GridLength (40, GridUnitType.Star) } }, ColumnDefinitions = { new ColumnDefinition () { Width = new GridLength (.5, GridUnitType.Star) }, new ColumnDefinition () { Width = new GridLength (.5, GridUnitType.Star) } }, Padding = new Thickness (0, 0, 0, 0), RowSpacing = 0, ColumnSpacing = 0 }; grid.Children.Add (saveButton, 0, 0); grid.Children.Add (cancelButton, 1, 0); cancelButton.Clicked += async (sender, e) => { await Navigation.PopAsync(true); }; var scroll = new ScrollView (); scroll.Content = new StackLayout { Children = { cheeseName, dairyName, entryGrid, grid } }; var headerImage = new Image { Source = "Header.png" }; Content = new StackLayout() { Children = { headerImage, scroll } }; }
public async Task<Cheese> AddCheeseAsync (Cheese newCheese) { if (!_isInitialized) await InitializeDataStore(); newCheese.CheeseId = Guid.NewGuid ().ToString (); await _sqliteConn.InsertAsync (newCheese).ConfigureAwait (false); return newCheese; }
public async Task<Cheese> AddCheeseAsync (Cheese newCheese) { if (!_isInitialized) await InitializeDataStore (); var cheeseSync = _client.GetSyncTable<Cheese> (); await cheeseSync.InsertAsync (newCheese); if (CrossConnectivity.Current.IsConnected) { await _client.SyncContext.PushAsync (); } return newCheese; }
public async Task<Cheese> AddCheeseAsync (Cheese newCheese) { if (!CrossConnectivity.Current.IsConnected) throw new NoInternetException(); if (!_isInitialized) await InitializeDataStore (); await _client.GetTable<Cheese> ().InsertAsync (newCheese).ConfigureAwait (false); return newCheese; }