示例#1
0
        public async Task <IActionResult> CreateFilterCategory(InserFilterCategoryViewModel form)
        {
            var categories = await this.productsServices.GetAllCategoryNamesAsync();

            form.Categories = form.Categories;

            if (!categories.Any(x => x == form.Category))
            {
                this.ModelState.AddModelError("Category", "Category does not exist");
            }

            if (await this.service.FilterForCategoryExistsAsync(form.Category, form.CategoryViewSubName))
            {
                this.ModelState.AddModelError("View Sub Name", "Already exists");
            }

            if (this.ModelState.IsValid)
            {
                await this.service.CreateFilterCategoryAsync(form);

                return(this.RedirectToAction("Success", "Blacksmith", new { message = $"Successfully created Filter Category: {form.Category} View Sub Name: {form.CategoryViewSubName}" }));
            }


            return(this.View(form));
        }
示例#2
0
        public async Task CreateFilterCategoryAsync(InserFilterCategoryViewModel form)
        {
            await this.context.FilterCategories.AddAsync(new FilterCategory
            {
                CategoryName        = form.Category,
                ViewSubCategoryName = form.CategoryViewSubName,
            });

            await this.context.SaveChangesAsync();
        }
示例#3
0
        public async Task <IActionResult> CreateFilterCategory()
        {
            var categories = await this.productsServices.GetAllCategoryNamesAsync();

            var model = new InserFilterCategoryViewModel
            {
                Categories = categories.ToList()
            };

            return(View(model));
        }
示例#4
0
        public async Task TestIfFilterForCategoryExistsReturnsTrue(string category, string subName)
        {
            var context        = PCHUBDbContextInMemoryInitializer.InitializeContext();
            var filtersService = new Areas.Administration.Services.AdminFiltersServices(context);


            var form = new InserFilterCategoryViewModel();

            form.Category = category;

            form.CategoryViewSubName = subName;
            await filtersService.CreateFilterCategoryAsync(form);

            Assert.True(await filtersService.FilterForCategoryExistsAsync(category, subName));
        }
示例#5
0
        public async Task TestIfCreateFilterCategoryWorksAccordingly(string category, string subName)
        {
            var context        = PCHUBDbContextInMemoryInitializer.InitializeContext();
            var filtersService = new Areas.Administration.Services.AdminFiltersServices(context);

            var form = new InserFilterCategoryViewModel();

            form.Category = category;

            form.CategoryViewSubName = subName;
            await filtersService.CreateFilterCategoryAsync(form);

            var result = await context.FilterCategories.FirstOrDefaultAsync(x => x.CategoryName == category);

            Assert.Equal(subName, result.ViewSubCategoryName);
        }
示例#6
0
        public async Task TestIfUpdateCategoryWorksAccordinglyForKeyboards(string category)
        {
            var context = PCHUBDbContextInMemoryInitializer.InitializeContext();

            var filtersService = new Areas.Administration.Services.AdminFiltersServices(context);

            Account cloudinaryCredentials = new Account(
                CloudinaryAccountTests.CloudName,
                CloudinaryAccountTests.ApiKey,
                CloudinaryAccountTests.ApiSecret);

            var cloudinaryUtility = new Cloudinary(cloudinaryCredentials);
            var cloudinary        = new CloudinaryServices(cloudinaryUtility);

            var adminProductServices = new Areas.Administration.Services.AdminProductsServices(context, cloudinary);

            var model = new InsertJsonProductViewModel();

            var keyboardsJson = await
                                File.ReadAllTextAsync(
                @"C:\Users\velis\source\repos\PCHUBStore\PCHUBStore.Tests\AdminServicesTests\JSONKeyboards\keyboards.json");

            var keyboards = JsonConvert.DeserializeObject <List <JsonProductModel> >(keyboardsJson);

            await adminProductServices.CreateCategoryAsync(category);

            foreach (var keyboard in keyboards)
            {
                var jsonBasic = JsonConvert.SerializeObject(keyboard.BasicChars);

                var jsonAdvanced = JsonConvert.SerializeObject(keyboard.AdvancedChars);
                model.Category             = category;
                model.BasicCharacteristics = jsonBasic;
                model.FullCharacteristics  = jsonAdvanced;

                await adminProductServices.CreateKeyboardFromJSONAsync(model);
            }

            var listOfSubNames = new List <string>
            {
                "Make", "Type", "Interface", "Mechanical",
            };

            for (int i = 0; i < listOfSubNames.Count; i++)
            {
                var formFilterCategory = new InserFilterCategoryViewModel();
                formFilterCategory.CategoryViewSubName = listOfSubNames[i];
                formFilterCategory.Category            = category;
                await filtersService.CreateFilterCategoryAsync(formFilterCategory);
            }

            await filtersService.UpdateCategoryAsync(category);


            for (int i = 0; i < listOfSubNames.Count; i++)
            {
                var result = await context.FilterCategories.FirstOrDefaultAsync(x => x.CategoryName == category && x.ViewSubCategoryName == listOfSubNames[i]);

                Assert.NotNull(result);

                Assert.NotEmpty(result.Filters);
            }
        }