Пример #1
0
        public async Task<bool> QuickCheckIn(BeerItem beer)
        {
            var checkin = new CheckInItem
            {
                Beer = beer,
                BeerId = beer.Id,
                CheckedInBy = Client.Instance.BeerDrinkinClient.GetUserId
            };

            var locator = CrossGeolocator.Current;
            var position = await locator.GetPositionAsync();

            //Track the location of where the user consumed the beer
            if (position != null)
            {
                checkin.Longitude = position.Longitude;
                checkin.Latitude = position.Latitude;
            }

            var checkInResult = await Client.Instance.BeerDrinkinClient.CheckInBeerAsync(checkin);
            if (!checkInResult.HasError)
                return checkInResult.Result;

            UserDialogs.Instance.ShowError(checkInResult.ErrorMessage);
            return false;
        }
Пример #2
0
        public static BeerItem ToBeerItem(this Beer beer, BeerItem beerItem = null)
        {
            if (beerItem == null)
            {
                beerItem = new BeerItem
                {
                    Id = beer.Id,
                    BreweryDBId = beer.Id,
                };
            }

            beerItem.Name = beer.Name;
            beerItem.Description = beer.Description;
            if (beer.Breweries!=null && beer.Breweries.Any())
                beerItem.Brewery = beer.Brewery;
            
            beerItem.ABV = beer.Abv;
            if (beer.Labels != null)
            {
                beerItem.Icon = beer.Labels.Icon;
                beerItem.Medium = beer.Labels.Medium;
                beerItem.Large = beer.Labels.Large;
            }
            return beerItem;
        }
Пример #3
0
 public void AddItem (BeerItem beer, int quanity)
 {
     if (_beerBasket.ContainsKey (beer)) {
         _beerBasket [beer] += _beerBasket [beer];
     } else {
         _beerBasket.Add (beer, quanity);
     }
 }
        public void SetBeer(BeerItem item)
        {
            beer = item;           

            //Start adding cells 
            AddHeaderImage();
            AddHeaderInfo();
            AddDescription();
            AddBarCode();
            AddCheckIn();
            TableView.ReloadData();
        }
        public void SetBeer(BeerItem beer)
        {
            this.beer = beer;  

            AddSourceTypeCell();
            if(UIImagePickerController.IsSourceTypeAvailable(UIImagePickerControllerSourceType.Camera) == true)
            {
                AddBarcodeCell();
                AddPhotosCell();
            }
            AddRatingCell();
            AddNotesCell();
        }
Пример #6
0
 public void RemoveItem (BeerItem beer, int quanity, bool all)
 {
     if (_beerBasket.ContainsKey (beer)) {
         if (all) {
             _beerBasket.Remove (beer); 
         } else {
             _beerBasket [beer] -= quanity;
             if (_beerBasket [beer] <= 0) {
                 _beerBasket.Remove (beer); 
             }
         }
     } 
 }
Пример #7
0
        public override void PrepareForSegue(UIStoryboardSegue segue, NSObject sender)
        {            
            if (segue.Identifier != "beerDescriptionSegue")
                return;
            /*
            var index = placeHolderTableView.IndexPathForSelectedRow.Row;
            selectedBeer = selectedBeer ?? viewModel.Beers[index];
*/
            selectedBeer.Upc = barcodeLookupService.UPC;
            selectedBeer.RateBeerId = barcodeLookupService.RateBeerID;

            var beerDescriptoinViewController = segue.DestinationViewController as BeerDescriptionTableView;
            if (beerDescriptoinViewController == null)
                return;

            beerDescriptoinViewController.EnableCheckIn = true;
            beerDescriptoinViewController.SetBeer(selectedBeer);

            selectedBeer = null;
        }
Пример #8
0
        public override bool ContinueUserActivity (UIApplication application, NSUserActivity userActivity, UIApplicationRestorationHandler completionHandler)
        {
            switch (userActivity.ActivityType) 
            {
				case "com.micjames.beerdrinkin.mybeers":
                    break;
				case "com.micjames.beerdrinkin.wishlist":
                break;
				case "com.micjames.beerdrinkin.search":
                break;
				case "com.micjames.beerdrinkin.profile":
                break;
				case "com.micjames.beerdrinkin.beerdetails":
                    var info = userActivity.UserInfo;
                if (this.Window.RootViewController.ChildViewControllers[0] is UITabBarController) 
                {
					var tabController = this.Window.RootViewController.ChildViewControllers[0] as UITabBarController;
					tabController.SelectedIndex = 2;

						var beerItem = new BeerItem();

						var id = new NSObject();
						info.TryGetValue(new NSString("id"), out id);

						var name = new NSObject();
						info.TryGetValue(new NSString("name"), out name);

						var description = new NSObject();
						info.TryGetValue(new NSString("description"), out description);

						var imageUrl = new NSObject();
						info.TryGetValue(new NSString("imageUrl"), out imageUrl);

						var breweryDbId = new NSObject();
						info.TryGetValue(new NSString("breweryDbId"), out breweryDbId);

						beerItem.Name = name.ToString();
						beerItem.Description = description.ToString();
						beerItem.ImageMedium = imageUrl.ToString();
						beerItem.BreweryDbId = breweryDbId.ToString();

						if (!string.IsNullOrEmpty(beerItem.BreweryDbId))
						{
							var storyboard = UIStoryboard.FromName("Main", null);
							var vc = storyboard.InstantiateViewController ("beerDescriptionTableView") as BeerDescriptionTableView;
							vc.SetBeer (beerItem);
							var navigationControler = tabController.SelectedViewController as UINavigationController;
							navigationControler.PushViewController (vc, true);
						}
                }
                break;
            }

            return true;
        }
 public void SetBeer (BeerItem item)
 {
     beer = item;    
 }
Пример #10
0
 private async void SearchForBeers (object sender, EventArgs e)
 {
     UserDialogs.Instance.ShowLoading("Searching");
     var response = await indexClient.Documents.SearchAsync<BeerDrinkin.Models.IndexedBeer>(searchBar.Text);             
     var beers = new List<BeerItem>();
     foreach(var result in response)
     {
         var beerResult = result.Document; 
         if (beerResult != null)
         {
             var beer = new BeerItem
             {
                 ABV = beerResult.Abv,
                 Name = beerResult.Name,
                 Brewery = beerResult.BreweryName,
                 Description = beerResult.Description,
                 BreweryDbId = beerResult.Id,
                 BreweryId = beerResult.BreweryId,
                 Upc = beerResult.Upc
             };
             try
             {
                 if(beerResult.Images != null || beerResult.Images[0] != null)
                 {
                     beer.ImageLarge = beerResult.Images[0];
                     beer.ImageMedium = beerResult.Images[1];
                     beer.ImageSmall = beerResult.Images[2];
                 }
             }
             catch(Exception ex)
             {
                 Insights.Report(ex);
             }
             beers.Add(beer);
         }
     }
     var source = new SearchDataSource(beers);
     source.DidSelectBeer += (beer) => 
     {
         selectedBeer = beer;
         PerformSegue("beerDescriptionSegue", this);
         searchResultsTableView.DeselectRow(placeHolderTableView.IndexPathForSelectedRow, true);
     };
     
     searchResultsTableView.Source = source;
     searchResultsTableView.ReloadData();
     View.BringSubviewToFront(searchResultsTableView);
     UserDialogs.Instance.HideLoading();
 }