Пример #1
0
        public async Task AddPromoCodeAsyncWorksCorrectly()
        {
            await this.PopulateDB();

            var dishTypes = this.DbContext.DishTypes.ToList();
            var drinkType = this.DbContext.DrinkTypes.ToList();

            var addPromoCode = new AddPromoCodeViewModel()
            {
                ExpirationDate        = DateTime.Now.AddDays(1),
                PromoPercent          = 99,
                MaxUsageTimes         = 99,
                ValidDishCategoriesId = new List <int>()
                {
                    1, 2,
                },
                ValidDrinkCategoriesId = new List <int>()
                {
                    3
                },
            };

            await this.PromoCodeService.AddPromoCodeAsync(addPromoCode);

            var promoCode = this.DbContext.PromoCodes.FirstOrDefault(x => x.PromoPercent == 99 && x.MaxUsageTimes == 99);

            Assert.Equal(99, promoCode.PromoPercent);
            Assert.Equal(99, promoCode.MaxUsageTimes);
            Assert.Equal(2, promoCode.ValidDishCategories.Count);
            Assert.Equal(1, promoCode.ValidDrinkCategories.Count);
        }
Пример #2
0
        public IActionResult AddPromoCode()
        {
            var promoCode = new AddPromoCodeViewModel();

            this.SetValuesToPromoCodeViewModel(promoCode);
            return(this.View(promoCode));
        }
Пример #3
0
        public async Task <IActionResult> AddPromoCode(AddPromoCodeViewModel promoCodeModel)
        {
            if (!this.ModelState.IsValid)
            {
                this.SetValuesToPromoCodeViewModel(promoCodeModel);
                return(this.View(promoCodeModel));
            }

            await this.promoCodeService.AddPromoCodeAsync(promoCodeModel);

            return(this.RedirectToAction("Index"));
        }
Пример #4
0
        public async Task AddPromoCodeAsync(AddPromoCodeViewModel addPromoCode)
        {
            var promoCode = new PromoCode()
            {
                ExpirationDate       = addPromoCode.ExpirationDate,
                PromoPercent         = addPromoCode.PromoPercent,
                MaxUsageTimes        = addPromoCode.MaxUsageTimes,
                ValidDishCategories  = this.dishTypeService.GetAllDishTypesWithIds(addPromoCode.ValidDishCategoriesId.ToArray()),
                ValidDrinkCategories = this.drinkTypeService.GetAllDrinkTypesWithIds(addPromoCode.ValidDrinkCategoriesId.ToArray()),
            };
            Random random = new Random();

            promoCode.Code = this.RandomString(random.Next(6, 10));

            await this.promoCodeRepository.AddAsync(promoCode);

            await this.promoCodeRepository.SaveChangesAsync();
        }
Пример #5
0
 private void SetValuesToPromoCodeViewModel(AddPromoCodeViewModel addPromoCodeModel)
 {
     addPromoCodeModel.ValidDrinkCategories = this.drinkTypeService.GetAllDrinkTypes().Select(x => new SelectListItem(x.Name, x.Id.ToString())).ToList();
     addPromoCodeModel.ValidDishCategories  = this.dishTypeService.GetAllDishTypesWithId().Select(x => new SelectListItem(x.Name, x.Id.ToString())).ToList();
 }