// GET: Coffees/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            // Get coffee object using FK JournalID sent from ActionLink
            Coffee coffee = (from c in db.Coffees
                             where c.JournalID == id
                             select c).FirstOrDefault();

            if (coffee == null)
            {
                return(HttpNotFound());
            }

            Journal journal = db.Journals.Find(coffee.JournalID);

            if (journal == null)
            {
                return(HttpNotFound());
            }
            // Journal record exists, make ViewModel and pass to edit view
            CoffeeViewModel cvm = new CoffeeViewModel()
            {
                Author = (from a in db.Authors
                          where a.AuthorID == journal.AuthorID
                          select a).FirstOrDefault(),
                Journal = journal,
                Coffee  = coffee
            };

            return(View(cvm));
        }
        public void Setup()
        {
            dbProvider = new TestDbConnectionProvider("pwetDb");

            _favoriteSvc = new FavoriteService(dbProvider);
            _viewModel   = new CoffeeViewModel(_favoriteSvc, null);
        }
示例#3
0
        private void CoffeeViewControl_Loaded(object sender, RoutedEventArgs e)
        {
            CoffeeViewModel coffeeViewModelObject = new CoffeeViewModel();

            coffeeViewModelObject.LoadCoffee(Coffee2);
            CoffeeViewControl.DataContext = coffeeViewModelObject;
        }
        // GET: Coffees/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            // Get coffee object using FK JournalID
            Coffee coffee = (from c in db.Coffees
                             where c.JournalID == id
                             select c).FirstOrDefault();

            if (coffee == null)
            {
                return(HttpNotFound());
            }
            Journal journal = db.Journals.Find(coffee.JournalID);

            if (journal == null)
            {
                return(HttpNotFound());
            }
            // Journal record exists, make ViewModel and pass to edit view
            CoffeeViewModel cvm = new CoffeeViewModel()
            {
                Author = (from a in db.Authors
                          where a.AuthorID == journal.AuthorID
                          select a).FirstOrDefault(),
                Journal = journal,
                Coffee  = coffee
            };

            // Set dropdownlist to preselected privacy type.
            ViewBag.PrivacyList = GetPrivacyList(journal.PrivacyType);
            return(View(cvm));
        }
        // GET: Coffee/Create
        public IActionResult Create()
        {
            CoffeeViewModel vm = new CoffeeViewModel
            {
                Countries = new SelectList(_context.Countries.ToList(), "Id", "Name"),
                Varieties = new SelectList(_context.Varieties.ToList(), "Id", "Name")
            };

            return(View(vm));
        }
示例#6
0
        public ViewResult Index()
        {
            ViewBag.Title = "Coffee World";

            var coffees = _coffeeRepository.GetAllCoffees().OrderBy(c => c.Name);

            var coffeeViewModel = new CoffeeViewModel()
            {
                Coffees = coffees.ToList(),
                Title   = "Welcome to Esspreso Coffee"
            };

            return(View(coffeeViewModel));
        }
示例#7
0
        public static IEnumerable <CoffeeViewModel> ConvertToCoffeeViewModel(this IEnumerable <Coffee> coffees)
        {
            foreach (Coffee nextCoffee in coffees)
            {
                CoffeeViewModel model = new CoffeeViewModel();
                model.Id = nextCoffee.Id;
                model.ImageThumbnailUrl = nextCoffee.ImageThumbnailUrl;
                model.Name      = nextCoffee.Name;
                model.Price     = nextCoffee.Price;
                model.ShortDesc = nextCoffee.ShortDesc;

                yield return(model);
            }
        }
        public ResultPage(String roast, String brew, String extra, String rarity)
        {
            InitializeComponent();

            CoffeeViewModel cvm   = new CoffeeViewModel();
            Coffee          match = cvm.FindClosest(roast, brew, extra, rarity);

            imgName.Source = match.imagePath;
            lblName.Text   = match.name;
            lblRoast.Text  = match.roast;
            lblBrew.Text   = match.brew;
            lblExtra.Text  = match.extra;
            lblRarity.Text = match.rarity;
        }
        public async Task favoriteService_should_add_favorite_to_db()
        {
            await dbProvider.InitializeDb();

            var p = new Navigation();

            p.CurrentParameter = new CoffeeShop {
                Id = "abcId"
            };
            _viewModel = new CoffeeViewModel(_favoriteSvc, p);
            _viewModel.Initialize();

            await _viewModel.AddToFavorite();

            Assert.IsTrue((await _favoriteSvc.GetFavorites()).Count(f => f == "abcId") == 1);
        }
        // GET: Coffee
        public async Task <IActionResult> Index()
        {
            List <CoffeeViewModel> lcvm       = new List <CoffeeViewModel>();
            List <CoffeeModel>     coffeeList = await _context.Coffees.ToListAsync();

            foreach (var c in coffeeList)
            {
                _context.Entry(c).Reference("Country").Load();
                _context.Entry(c).Reference("Variety").Load();
                CoffeeViewModel cvm = new CoffeeViewModel
                {
                    Item = c
                };
                lcvm.Add(cvm);
            }

            return(View(lcvm));
        }
        // GET: Coffee/Details/5
        public async Task <IActionResult> Details(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            CoffeeViewModel cvm = new CoffeeViewModel();

            cvm.Item = await _context.Coffees.FirstOrDefaultAsync(m => m.Id == id);

            if (cvm == null)
            {
                return(NotFound());
            }
            _context.Entry(cvm.Item).Reference("Country").Load();
            _context.Entry(cvm.Item).Reference("Variety").Load();
            return(View(cvm));
        }
        public async Task favoriteService_should_remove_favorite_to_db()
        {
            await dbProvider.InitializeDb();

            var p = new Navigation();

            p.CurrentParameter = new CoffeeShop {
                Id = "abcId"
            };
            _viewModel = new CoffeeViewModel(_favoriteSvc, p);
            _viewModel.Initialize();

            await _favoriteSvc.AddToFavorite("abcId");

            Assert.IsTrue((await _favoriteSvc.GetFavorites()).Count(f => f == "abcId") == 1, "Favorite is not in the db");

            await _viewModel.RemoveFromFavorite();

            Assert.IsTrue((await _favoriteSvc.GetFavorites()).Count(f => f == "abcId") == 0, "Favorite is still is db");
        }
        // GET: Coffee/Edit/5
        public async Task <IActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            CoffeeViewModel CoffeeVM = new CoffeeViewModel
            {
                Item = await _context.Coffees.FindAsync(id)
            };

            if (CoffeeVM.Item == null)
            {
                return(NotFound());
            }
            _context.Entry(CoffeeVM.Item).Reference(c => c.Country).Load();
            _context.Entry(CoffeeVM.Item).Reference(v => v.Variety).Load();
            return(View(CoffeeVM));
        }
        public async Task <IActionResult> Edit(int id, [Bind("Item")] CoffeeViewModel cvm)
        {
            if (id != cvm.Item.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    CountryModel newCountry = _context.Countries.FirstOrDefault(c => c.Name == cvm.Item.Country.Name) ?? new CountryModel(null, cvm.Item.Country.Name);
                    if (newCountry.Id == null)
                    {
                        _context.Add(newCountry);
                    }
                    VarietyModel newVariety = _context.Varieties.FirstOrDefault(v => v.Name == cvm.Item.Variety.Name) ?? new VarietyModel(null, cvm.Item.Variety.Name);
                    if (newVariety.Id == null)
                    {
                        _context.Add(newVariety);
                    }
                    cvm.Item.Country = newCountry;
                    cvm.Item.Variety = newVariety;
                    _context.Update(cvm.Item);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!CoffeeModelExists(cvm.Item.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(cvm));
        }
示例#15
0
        // Get: Coffees/AddToBasket
        public ActionResult AddToBasket(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var coffee = srv1.FindCoffeeById((int)id);

            if (coffee == null)
            {
                return(HttpNotFound());
            }
            ViewBag.coffeeInfo = coffee;
            var itemToAdd = new CoffeeViewModel()
            {
                Name     = coffee.Name,
                Price    = coffee.Price,
                Quantity = 1
            };

            return(View(itemToAdd));
        }
        // Get: Coffees/AddToBasket
        public ActionResult AddToBasket(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Coffee coffee = db.Coffees.Find(id);

            if (coffee == null)
            {
                return(HttpNotFound());
            }
            ViewBag.coffeeInfo = coffee;
            var itemToAdd = new CoffeeViewModel()
            {
                Name   = coffee.Name,
                Price  = coffee.Price,
                Amount = 1
            };

            return(View(itemToAdd));
        }
        public ActionResult Edit([Bind(Include = "Journal,Author,Coffee")] CoffeeViewModel cvm, int PrivacyList)
        {
            if (ModelState.IsValid)
            {
                // Pull Journal from database, check authorization (same user), update, and save
                Journal journal = (from j in db.Journals
                                   where j.JournalID == cvm.Journal.JournalID
                                   select j).FirstOrDefault();
                if (journal.AuthorID == 1 || journal.AuthorID == 2)    // TODO: Update this if statement to check authorid against the current identity
                {
                    // TODO: send user to login page, or a "your kicked out" page
                    RedirectToAction("Index", "Home");
                }
                journal.Description = cvm.Journal.Description;
                journal.ImagePath   = cvm.Journal.ImagePath;
                journal.Location    = cvm.Journal.Location;
                journal.Rating      = cvm.Journal.Rating;
                journal.Title       = cvm.Journal.Title;
                journal.PrivacyType = PrivacyList;

                // Pull Coffee from database, update fields, and save
                Coffee coffee = (from c in db.Coffees
                                 where c.JournalID == journal.JournalID
                                 select c).FirstOrDefault();

                coffee.FoodPairing = cvm.Coffee.FoodPairing;
                coffee.Origin      = cvm.Coffee.Origin;
                coffee.RoastType   = cvm.Coffee.RoastType;


                // Set objects and save
                db.Entry(journal).State = EntityState.Modified;
                db.Entry(coffee).State  = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            ViewBag.PrivacyList = GetPrivacyList(PrivacyList);
            return(View(cvm));
        }
        public async Task <IActionResult> Create([Bind("Item")] CoffeeViewModel cvm)
        {
            if (ModelState.IsValid)
            {
                CountryModel newCountry = _context.Countries.FirstOrDefault(c => c.Name == cvm.Item.Country.Name) ?? new CountryModel(null, cvm.Item.Country.Name);
                if (newCountry.Id == null)
                {
                    _context.Add(newCountry);
                }
                VarietyModel newVariety = _context.Varieties.FirstOrDefault(v => v.Name == cvm.Item.Variety.Name) ?? new VarietyModel(null, cvm.Item.Variety.Name);
                if (newVariety.Id == null)
                {
                    _context.Add(newVariety);
                }
                cvm.Item.Country = newCountry;
                cvm.Item.Variety = newVariety;
                _context.Add(cvm.Item);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(cvm));
        }
        public ActionResult Create([Bind(Include = "Journal,Coffee")] CoffeeViewModel cvm, int PrivacyList)
        {
            if (ModelState.IsValid)
            {
                // Create journal object and add to database
                Journal j = new Journal()
                {
                    AuthorID    = 1, // TODO: use Identity to set this property
                    Date        = DateTime.Now,
                    Description = cvm.Journal.Description,
                    JType       = "co",
                    Location    = cvm.Journal.Location,
                    Maker       = cvm.Journal.Maker,
                    PrivacyType = PrivacyList,
                    Rating      = cvm.Journal.Rating,
                    Title       = cvm.Journal.Title
                };
                db.Journals.Add(j);
                db.SaveChanges();

                // Create pairing coffee object and add to database
                Coffee c = new Coffee()
                {
                    FoodPairing = cvm.Coffee.FoodPairing,
                    JournalID   = j.JournalID,
                    Origin      = cvm.Coffee.Origin,
                    RoastType   = cvm.Coffee.RoastType
                };

                db.Coffees.Add(c);
                db.SaveChanges();
                return(RedirectToAction("Index"));   // TODO: make sure this links to appropriate page. Consider the user's profile.
            }
            ViewBag.PrivacyList = GetPrivacyList(null);
            return(View(cvm));
        }
 public AddCoffee()
 {
     InitializeComponent();
     BindingContext = new CoffeeViewModel(this.Navigation);
 }
 public CoffeeCatalog()
 {
     InitializeComponent();
     DataContext = new CoffeeViewModel();
 }
示例#22
0
 private CoffeeViewModel CreateViewModel(Coffee coffee)
 {
     return(CoffeeViewModel.GetViewModel(coffee));
 }