Beispiel #1
0
        public ActionResult Index()
        {
            DrinksViewModel dvm = new DrinksViewModel();

            dvm.Drinks = Drinks.Get_AllDrinks();
            return(View(dvm));
        }
        public IActionResult List(string category)
        {
            IEnumerable <Drink> drinks;
            string currentCategory = string.Empty;

            if (string.IsNullOrEmpty(category))
            {
                drinks          = _drinkRepository.Drinks.OrderBy(d => d.DrinkId);
                currentCategory = "All Drink";
            }
            else
            {
                if (string.Equals("Alcoholic", category, StringComparison.OrdinalIgnoreCase))
                {
                    drinks = _drinkRepository.Drinks
                             .Where(p => p.Category.CategoryName == "Alcoholic").OrderBy(p => p.Name);
                }
                else
                {
                    drinks = _drinkRepository.Drinks
                             .Where(p => p.Category.CategoryName == "Non-alcoholic").OrderBy(p => p.Name);
                }
                currentCategory = category;
            }
            var model = new DrinksViewModel()
            {
                Drinks          = drinks,
                CurrentCategory = currentCategory
            };

            return(View(model));
        }
        public ActionResult Index(DrinksViewModel model)
        {
            if (ModelState.IsValid)
            {
                if (model.SelectedDrink != null)
                {
                    var selectedDrink = _context.GetCachedDrinks().FirstOrDefault(x => x.ID == model.SelectedDrink);
                    var updatedStocks = BusinessUtilities.UpdateStocksByDrinkPurchased(_context.GetCachedStocks(), selectedDrink);

                    foreach (var stock in updatedStocks)
                    {
                        _context.AddOrUpdateStock(stock);
                    }

                    model.IsSubmitSuccessful = true;

                    _context.AddOrderHistory
                    (
                        new OrderHistory()
                    {
                        DrinkName = selectedDrink.Name,
                        OrderTime = DateTime.Now
                    }
                    );
                }

                model.AvailableDrinks = BusinessUtilities.FilterDrinksByStocks(_context.GetCachedDrinks(), _context.GetCachedStocks());
            }

            return(View(model));
        }
        public IActionResult SearchByIngredients(string searchString, int?pageNumber,
                                                 string searchCondition = "any")
        {
            var drinks = _drinkRepository.GetAllDrinks();

            if (!string.IsNullOrEmpty(searchString))
            {
                Task.Run(() =>
                         _apiService.CreateUserActivity(PerformedAction.SearchByIngredients, this.User.Identity.Name, searchedPhrase: searchString));
                var searchDrinkIngredientsCondition =
                    searchCondition.Equals("all") ? SearchDrinkOption.All : SearchDrinkOption.Any;
                drinks = _drinkSearchService.SearchByIngredients(new SortedSet <string>(searchString.Split(' ')),
                                                                 searchDrinkIngredientsCondition);
            }

            ViewData["SearchString"]    = searchString;
            ViewData["SearchCondition"] = searchCondition;
            ViewData["SearchType"]      = "SearchByIngredients";


            var model = new DrinksViewModel
            {
                Drinks = PaginatedList <Drink> .CreatePaginatedList(drinks,
                                                                    pageNumber ?? 1, _pageSize)
            };

            return(View(model));
        }
        public GoodsButtonControl()
        {
            _template = (ControlTemplate)XamlReader.Parse("<ControlTemplate xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml' TargetType=\"Button\"><Border Name=\"brdr\" BorderBrush=\"Black\" BorderThickness=\"1\"><Grid><Image x:Name=\"ibtn\" Stretch=\"None\" VerticalAlignment=\"Center\" HorizontalAlignment=\"Center\"><Image.Style><Style TargetType=\"{x:Type Image}\"></Style></Image.Style></Image><Label x:Name=\"tbtn\" VerticalAlignment=\"Top\" HorizontalAlignment=\"Right\" Margin=\"0,-4,-1,0\" /></Grid></Border><ControlTemplate.Triggers><Trigger Property=\"IsMouseOver\" Value=\"true\"><Setter TargetName=\"brdr\" Property=\"BorderThickness\" Value=\"2\" /><Setter TargetName=\"brdr\" Property=\"BorderBrush\" Value=\"Cyan\" /><Setter TargetName=\"tbtn\" Property=\"Margin\" Value=\"0,-5,-2,0\" /></Trigger></ControlTemplate.Triggers></ControlTemplate>");
            DrinksViewModel model = new DrinksViewModel(ResourceLoadHelper.GetLocalString("GoodsDescription")).BindToMainModel();
            int             count = model.Drinks.Count();

            ScrollableWidth = (count > 6 ? Math.Ceiling((double)count / 2) : 3) * 102;
            InitializeComponent();
            Drinks.Header = ResourceLoadHelper.GetLocalString("DrinksGroup");
            DataContext   = model;
            foreach (Product p in model.Drinks)
            {
                Button b = new Button();
                model.SetToolTip(p.id, p.quantity, p.price, ResourceLoadHelper.GetLocalName(p.locals), b);
                model.SetTemplate(p.id, _template);
                model.DrinkButton[p.id].PropertyChanged += Template_PropertyChanged;
                Binding toolTip = new Binding(string.Format("DrinkButton[{0}].ToolTip", p.id));
                toolTip.Source = model;
                toolTip.Mode   = BindingMode.OneWay;
                b.SetBinding(Button.ToolTipProperty, toolTip);
                Binding Visible = new Binding(string.Format("DrinkButton[{0}].Visible", p.id));
                Visible.Source = model;
                Visible.Mode   = BindingMode.OneWay;
                b.SetBinding(Button.VisibilityProperty, Visible);
                Binding Template = new Binding(string.Format("DrinkButton[{0}].Template", p.id));
                Template.Source = model;
                Template.Mode   = BindingMode.OneWay;
                b.SetBinding(Button.TemplateProperty, Template);
                b.CommandParameter = p.id;
                Binding cmd = new Binding();
                cmd.Source = model;
                cmd.Path   = new PropertyPath("PurchaseCommand");
                b.SetBinding(Button.CommandProperty, cmd);
                b.Width  = 100;
                b.Height = 100;
                b.Margin = new Thickness(0, 0, 2, 2);
                Image rimg = ResourceLoadHelper.GetDrinksButtonImage(new Size(96, 96), (Color)ColorConverter.ConvertFromString(p.color), p.type);
                b.AddHandler(LoadedEvent, new RoutedEventHandler((object s, RoutedEventArgs e) => {
                    Button btn = s as Button;
                    if (btn.Template != null)
                    {
                        Label text           = btn.Template.FindName("tbtn", btn) as Label;
                        text.Foreground      = new SolidColorBrush(p.parsedColor.R + p.parsedColor.G + p.parsedColor.B > 381 ? (Color)ColorConverter.ConvertFromString("Black") : (Color)ColorConverter.ConvertFromString("White"));
                        text.FontWeight      = FontWeights.Bold;
                        Binding quantityInfo = new Binding("quantity");
                        quantityInfo.Source  = p;
                        quantityInfo.Mode    = BindingMode.OneWay;
                        text.SetBinding(Label.ContentProperty, quantityInfo);
                        Image img  = btn.Template.FindName("ibtn", btn) as Image;
                        Style simg = new Style(typeof(Image));
                        img.Style.Setters.ToList().ForEach(x => simg.Setters.Add(x));
                        simg.Setters.Add(new Setter(Image.SourceProperty, rimg.Source));
                        img.Style = simg;
                    }
                }));
                DrinksContainer.Children.Add(b);
            }
            model.DisposeRequest += Dispose;
        }
Beispiel #6
0
        public DrinksPage()
        {
            InitializeComponent();

            _drinksViewModel = new DrinksViewModel(new DrinksService());

            // Connecting context of this page to the our View Model class
            BindingContext = _drinksViewModel;
        }
        public IActionResult FavouriteDrinks(int?pageNumber)
        {
            var drinks = _favouriteRepository.GetUserFavouriteDrinks(_userManager.GetUserId(User));

            var model = new DrinksViewModel
            {
                Drinks = PaginatedList <Drink> .CreatePaginatedList(drinks, pageNumber ?? 1, _pageSize)
            };

            return(View(model));
        }
        public IActionResult Index(int?pageNumber)
        {
            Task.Run(() => _apiService.CreateUserActivity(PerformedAction.AllDrinks, this.User.Identity.Name));
            var drinks = _drinkRepository.GetAllDrinks().OrderBy(x => x.Name);
            var model  = new DrinksViewModel
            {
                Drinks = PaginatedList <Drink> .CreatePaginatedList(drinks, pageNumber ?? 1, _pageSize)
            };

            return(View(model));
        }
        public ActionResult Index()
        {
            var availableDrinks = BusinessUtilities.FilterDrinksByStocks(_context.GetCachedDrinks(), _context.GetCachedStocks());

            var drinksViewModel = new DrinksViewModel()
            {
                AvailableDrinks    = availableDrinks,
                IsSubmitSuccessful = false
            };

            return(View(drinksViewModel));
        }
Beispiel #10
0
        public IActionResult Index()
        {
            ViewBag.Title = "Drinks World";

            var drinks = _drinksRepostiory.GetAllDrinks().OrderBy(d => d.Name);

            var drinksViewModel = new DrinksViewModel()
            {
                Drinks = drinks.ToList(),
                Title  = "Welcome to our drinks menu"
            };

            return(View(drinksViewModel));
        }
        public void Dispose()
        {
            DrinksViewModel model = DataContext as DrinksViewModel;

            //if (model != null)
            //{
            model.DrinkButton.ToList().ForEach(x => { if (x.Value != null)
                                                      {
                                                          x.Value.PropertyChanged -= Template_PropertyChanged;
                                                      }
                                               });
            model.DisposeRequest -= Dispose;
            //}
        }
        public IActionResult ManagerDrinks()
        {
            IEnumerable <Drink> drinks;

            drinks = _drinkRepository.Drinks.OrderBy(d => d.DrinkId);

            var model = new DrinksViewModel()
            {
                Drinks          = drinks,
                CurrentCategory = "All Drink"
            };

            return(View(model));
        }
        public IActionResult SearchByAlcoholContent(int?pageNumber, bool alcoholics = true, bool nonAlcoholics = true, bool optionalAlcoholics = true)
        {
            ViewData["Alcoholics"]         = alcoholics;
            ViewData["nonAlcoholics"]      = nonAlcoholics;
            ViewData["optionalAlcoholics"] = optionalAlcoholics;
            var drinks = _drinkSearchService
                         .SearchByAlcoholContent(alcoholics, nonAlcoholics, optionalAlcoholics);

            //Model saves alcoholic content info passed by controller to save
            //user choices while going through PaginatedList pages
            var model = new DrinksViewModel
            {
                Drinks             = PaginatedList <Drink> .CreatePaginatedList(drinks, pageNumber ?? 1, _pageSize),
                Alcoholics         = alcoholics,
                NonAlcoholics      = nonAlcoholics,
                OptionalAlcoholics = optionalAlcoholics
            };

            return(View(model));
        }
        public IActionResult SearchByName(string searchString, int?pageNumber)
        {
            var drinks = _drinkRepository.GetAllDrinks();

            if (!string.IsNullOrEmpty(searchString))
            {
                Task.Run(() =>
                         _apiService.CreateUserActivity(PerformedAction.SearchByName, this.User.Identity.Name, searchedPhrase: searchString));
                drinks = _drinkSearchService.SearchByName(searchString);
            }

            ViewData["SearchString"] = searchString;
            ViewData["SearchType"]   = "SearchByName";

            var model = new DrinksViewModel
            {
                Drinks = PaginatedList <Drink> .CreatePaginatedList(drinks.AsEnumerable(),
                                                                    pageNumber ?? 1, _pageSize)
            };

            return(View(model));
        }
 public DrinksView()
 {
     InitializeComponent();
     BindingContext = new DrinksViewModel();
 }