예제 #1
0
        public void GetBeveragesTest()
        {
            Beverage beverage1 = new Beverage {
                Id = 1, Image = "image1", Name = "beverage1"
            };
            Beverage beverage2 = new Beverage {
                Id = 2, Image = "image2", Name = "beverage2"
            };
            Beverage beverage3 = new Beverage {
                Id = 3, Image = "image3", Name = "beverage3"
            };

            FakeRepository repository = new FakeRepository();

            repository.Beverages.Add(beverage2);
            repository.Beverages.Add(beverage3);
            repository.Beverages.Add(beverage1);

            List <Beverage> beverages = new List <Beverage> {
                beverage1, beverage2, beverage3
            };
            AddDrinkViewModel expected = new AddDrinkViewModel {
                Beverages = beverages
            };

            BeverageController beverageController = new BeverageController(repository);

            AddDrinkViewModel actual = beverageController.GetBeverages();

            CollectionAssert.AreEqual(actual.Beverages, expected.Beverages);
        }
예제 #2
0
        public IActionResult Add(string type)
        {
            switch (type)
            {
            case "Dish":
                var model = new AddDishViewModel();
                this.SetValuesToDishViewModel(model);
                return(this.View("AddDish", model));

            case "Drink":
                var drinkViewModel = new AddDrinkViewModel();
                this.SetValuesToDrinkViewModel(drinkViewModel);
                return(this.View("AddDrink", drinkViewModel));

            case "Ingredient":
                var ingredientViewModel = new AddIngredientViewModel();
                this.SetValuesToIngredientViewModel(ingredientViewModel);
                return(this.View("AddIngredient", ingredientViewModel));

            case "Allergen":
                return(this.View("AddAllergen", new AllergenViewModel()));

            case "DishCategory":
                return(this.View("AddDishCategory", new AddCategoryViewModel()));

            case "DrinkCategory":
                return(this.View("AddDrinkCategory", new AddCategoryViewModel()));
            }

            return(this.View());
        }
예제 #3
0
        public async Task <IActionResult> AddDrink(AddDrinkViewModel drink)
        {
            if (!this.ModelState.IsValid)
            {
                this.SetValuesToDrinkViewModel(drink);
                return(this.View(drink));
            }

            // TODO Check if the file is the right format
            await this.drinkService.AddDrinkAsync(drink, this.webHostEnvironment.WebRootPath);

            return(this.RedirectToAction("Index"));
        }
예제 #4
0
        public AddDrinkViewModel GetByUserId(string id)
        {
            var result = _context.DrinkCounts.Single(a => a.UserId == id);

            AddDrinkViewModel viewModel = new AddDrinkViewModel
            {
                Amount = result.Amount,
                UserId = result.UserId,
                TypeId = result.TypeId
            };

            return(viewModel);
        }
        public void AddDrinkShouldWorkCorrectly()
        {
            var addDrinkModel = new AddDrinkViewModel()
            {
                Name             = "test",
                Price            = 49.02m,
                Weight           = 250,
                AlchoholByVolume = 10,
                AdditionalInfo   = "This is additional info",
                DrinkTypeId      = 3,
                IngredientsId    = new List <int>()
                {
                    1, 2
                },
                PackagingTypeId = 1,
                Image           = this.GetImageMock(),
            };

            MyController <ManageController>
            .Calling(c => c.AddDrink(addDrinkModel))
            .ShouldHave()
            .ValidModelState()
            .AndAlso()
            .ShouldReturn()
            .RedirectToAction("Index");

            addDrinkModel.Weight = -5;

            MyController <ManageController>
            .Calling(c => c.AddDrink(addDrinkModel))
            .ShouldReturn()
            .View();

            //MyMvc
            //.Pipeline()
            //.ShouldMap(request => request
            //    .WithContentType("multipart/form-data")
            //    .WithLocation("/Manage/AddDish")
            //    .WithFormFields(addDishModel)
            //    .WithMethod(HttpMethod.Post)
            //    .WithUser(u => u.InRole(GlobalConstants.AdministratorRoleName))
            //    .WithAntiForgeryToken())
            //.To<ManageController>(c => c.AddDish(addDishModel))
            //.Which()
            //.ShouldHave()
            //.ValidModelState()
            //.AndAlso()
            //.ShouldReturn()
            //.View();
        }
예제 #6
0
        public int Post(AddDrinkViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                //return "Failed";
                //returHttpBadRequest (ModelState);
                return(400);
            }

            DrinkCount counter = new DrinkCount
            {
                Amount = viewModel.Amount,
                Date   = DateTime.Now,
                TypeId = viewModel.TypeId,
                UserId = viewModel.UserId
            };

            _context.DrinkCounts.Add(counter);
            _context.SaveChanges();

            return(counter.Id);
        }
예제 #7
0
        public async Task AddDrinkAsyncWorksCorrectly()
        {
            await this.PopulateDB();

            await this.AddDrinksToDB();

            var ingredients   = this.DbContext.Ingredients.Take(2).ToList();
            var ingredientsId = ingredients.Select(x => x.Id).ToList();

            var addDrinkViewModel = new AddDrinkViewModel()
            {
                Name             = "newItem",
                AdditionalInfo   = "test1",
                Weight           = 50,
                Price            = 10,
                Image            = this.GetFile("test123"),
                DrinkTypeId      = 1,
                IngredientsId    = ingredientsId,
                AlchoholByVolume = 20,
                PackagingTypeId  = 1,
            };

            await this.DrinkService.AddDrinkAsync(addDrinkViewModel, AppDomain.CurrentDomain.BaseDirectory);

            var newDrink = this.DbContext.Drinks.Include(x => x.Ingredients).FirstOrDefault(x => x.Name == "newItem");
            var expected = AutoMapperConfig.MapperInstance.Map <Drink>(addDrinkViewModel);

            expected.Ingredients = ingredients;
            Assert.Equal(expected.Name, newDrink.Name);
            Assert.Equal(expected.AdditionalInfo, newDrink.AdditionalInfo);
            Assert.Equal(expected.Weight, newDrink.Weight);
            Assert.Equal(expected.Price, newDrink.Price);
            Assert.Equal(ImageExtension.jpeg, newDrink.Image.Extension);
            Assert.Equal(expected.DrinkTypeId, newDrink.DrinkTypeId);
            expected.Ingredients.ShouldDeepEqual(newDrink.Ingredients);
            Assert.Equal(expected.AlchoholByVolume, newDrink.AlchoholByVolume);
            Assert.Equal(expected.PackagingTypeId, newDrink.PackagingTypeId);
        }
예제 #8
0
        public ActionResult AddDrunkDrink(AddDrinkViewModel model)
        {
            int      volume   = int.Parse(model.Volume.Replace("ml", ""));
            Beverage beverage = _repository.GetBeverageByName(model.Beverage);
            DateTime time     = DateTime.Now;

            DrunkDrink drink = new DrunkDrink
            {
                Volume   = volume,
                Beverage = beverage,
                Time     = time
            };

            String  userId  = User.Identity.GetUserId();
            Account account = _repository.GetAccountByUser(userId);

            account.DrunkDrinks.Add(drink);

            _repository.UpdateAccount(account);
            _repository.SaveChanges();

            return(RedirectToAction("Index", "Home"));
        }
예제 #9
0
 public async Task AddDrinkAsync(AddDrinkViewModel drink, string wwwroot)
 {
     var extension = drink.Image.FileName.Split(".")[^ 1];
예제 #10
0
 private void SetValuesToDrinkViewModel(AddDrinkViewModel addDrinkViewModel)
 {
     addDrinkViewModel.DrinkType     = this.drinkTypeService.GetAllDrinkTypesWithId().Select(x => new SelectListItem(x.Name, x.Id.ToString())).ToList();
     addDrinkViewModel.PackagingType = this.packagingService.GetAllPackagingTypes().Select(x => new SelectListItem(x.Name, x.Id.ToString())).ToList();
     addDrinkViewModel.Ingredients   = this.ingredientService.GetAllAsDishIngredientViewModel().Select(x => new SelectListItem(x.Name, x.Id.ToString())).ToList();
 }