public async void GetSearchingData()
        {
            int    pageIndex      = 1;
            int    pageSize       = 6;
            string searchText     = null;
            string selectCategory = null;

            SearchImageData localSearchData = new SearchImageData
            {
                FilterByTag   = searchText,
                LikeForUserId = FirstTestUserId,
            };

            var mockImagesService = new Mock <IImagesService>();

            mockImagesService.Setup(x => x.GetByFilter <ListImageViewModel>(
                                        It.Is <SearchImageData>(x => x.LikeForUserId == FirstTestUserId && x.FilterByTag == searchText),
                                        pageSize,
                                        pageIndex))
            .Returns(new List <ListImageViewModel>()
            {
                new ListImageViewModel()
                {
                    Id    = "1",
                    Title = "ImageTitle",
                },
                new ListImageViewModel()
                {
                    Id    = "2",
                    Title = "ImageTitle",
                },
            });

            var mockCategoryService = new Mock <ICategoriesService>();
            UserManager <ApplicationUser> userManager = MockUserManager();
            var logger = new Mock <ILogger <ImagesController> >();

            ImagesController controller = new ImagesController(
                mockImagesService.Object,
                mockCategoryService.Object,
                userManager,
                logger.Object).WithIdentity(FirstTestUserId, "TestIdentity");

            ActionResult result = await controller.GetSearchingData(pageIndex, pageSize, searchText, selectCategory);

            Assert.IsType <PartialViewResult>(result);

            PartialViewResult viewResult = (PartialViewResult)result;

            Assert.IsType <List <ListImageViewModel> >(viewResult.Model);

            List <ListImageViewModel> model = (List <ListImageViewModel>)viewResult.Model;

            Assert.Equal(2, model.Count);

            for (int index = 0; index < model.Count; index++)
            {
                Assert.Equal(model[index].ImageIndex, index + 1);
            }
        }
        public void GetImageTestPaging()
        {
            SearchImageData searchData   = new SearchImageData();
            var             selectImages = this.imagesService.GetByFilter <ResponseSearchImageModelData>(searchData, 1, 1);

            Assert.Single(selectImages);
        }
示例#3
0
        /// <summary>
        /// Return image which related by user(upload/vote).
        /// </summary>
        public async Task <IActionResult> PreviewUserImage(int id)
        {
            if (!this.Request.Cookies.TryGetValue("imageRelateByUserData", out string readPagingDataCookie))
            {
                return(this.BadRequest());
            }

            var options = new JsonSerializerOptions
            {
                PropertyNameCaseInsensitive = true,
            };
            ImagePagingCookieData cookieSearchData = JsonSerializer.Deserialize <ImagePagingCookieData>(readPagingDataCookie, options);

            ApplicationUser userPreviewProfil = await this.userManager.FindByIdAsync(cookieSearchData.UserId);

            if (userPreviewProfil == null)
            {
                return(this.BadRequest());
            }

            SearchImageData localSearchData = null;

            if (cookieSearchData.Type == "uploads")
            {
                localSearchData = new SearchImageData
                {
                    AuthorId = userPreviewProfil.Id,
                };
            }
            else if (cookieSearchData.Type == "likes")
            {
                localSearchData = new SearchImageData
                {
                    LikeByUser = userPreviewProfil.Id,
                };
            }

            if (this.User.Identity.IsAuthenticated)
            {
                ApplicationUser loginUser = await this.userManager.GetUserAsync(this.User);

                localSearchData.LikeForUserId = loginUser.Id;
            }

            var data = this.imagesService.GetByFilter <ImagePreviewViewModel>(
                localSearchData, 1, id);

            if (!data.Any())
            {
                return(this.Json(string.Empty));
            }
            else
            {
                ImagePreviewViewModel previewImage = data.First();
                previewImage.ImageIndex = id;

                return(this.PartialView("_PreviewImagePartial", previewImage));
            }
        }
        public void GetImageByAuthor()
        {
            SearchImageData searchData = new SearchImageData
            {
                AuthorId = TestUserId1,
            };
            var selectImages = this.imagesService.GetByFilter <ResponseSearchImageModelData>(searchData, 10, 1);

            Assert.Equal(2, selectImages.Count());
        }
        public void GetImageByTagShoulReturnTwoImage()
        {
            SearchImageData searchData = new SearchImageData
            {
                FilterByTag = TestTag1,
            };
            var selectImages = this.imagesService.GetByFilter <ResponseSearchImageModelData>(searchData, 10, 1);

            Assert.Equal(2, selectImages.Count());
        }
        public void GetImageByTagShouldReturnOneImage()
        {
            SearchImageData searchData = new SearchImageData
            {
                FilterByTag = TestTag2,
            };
            var selectImages = this.imagesService.GetByFilter <ResponseSearchImageModelData>(searchData, 10, 1);

            Assert.Single(selectImages);
        }
        public void GetImageCheckIsLikeFlag()
        {
            SearchImageData searchData = new SearchImageData()
            {
                LikeByUser    = TestUserId2,
                LikeForUserId = TestUserId1,
            };

            var selectImages = this.imagesService.GetByFilter <ResponseSearchImageModelData>(searchData, 10, 1);

            Assert.True(selectImages.ToList()[0].IsLike);
        }
        public void GetImageBySearchData()
        {
            SearchImageData searchData = new SearchImageData()
            {
                LikeByUser    = TestUserId2,
                LikeForUserId = TestUserId1,
            };

            var selectImages = this.imagesService.GetByFilter <ResponseSearchImageModelData>(searchData, 10, 1);

            Assert.Single(selectImages);
        }
示例#9
0
        public async Task <ActionResult> GetSearchingData(
            int pageIndex,
            int pageSize,
            string searchText,
            string selectCategory)
        {
            SearchImageData localSearchData = new SearchImageData
            {
                FilterByTag = searchText,
            };

            if (!string.IsNullOrEmpty(selectCategory))
            {
                localSearchData.FilterCategory = JsonSerializer.Deserialize <List <string> >(selectCategory);
            }

            if (pageSize == 0)
            {
                return(this.BadRequest());
            }

            if (pageIndex == 0)
            {
                return(this.BadRequest());
            }

            if (this.User.Identity.IsAuthenticated)
            {
                ApplicationUser user = await this.userManager.GetUserAsync(this.User);

                localSearchData.LikeForUserId = user.Id;
            }

            var data = this.imagesService.GetByFilter <ListImageViewModel>(
                localSearchData, pageSize, pageIndex);

            int indexOfPage = 1;

            foreach (ListImageViewModel model in data)
            {
                model.ImageIndex = ((pageIndex - 1) * pageSize) + indexOfPage;
                indexOfPage++;
            }

            if (!data.Any())
            {
                return(this.Json(string.Empty));
            }
            else
            {
                return(this.PartialView("_ImageListPartial", data));
            }
        }
        public void GetImageByTags()
        {
            SearchImageData searchData = new SearchImageData
            {
                FilterTags = new List <string>()
                {
                    this.testTagId2
                },
            };
            var selectImages = this.imagesService.GetByFilter <ResponseSearchImageModelData>(searchData, 10, 1);

            Assert.Single(selectImages);
        }
        public void GetImageByCategory()
        {
            SearchImageData searchData = new SearchImageData
            {
                FilterCategory = new List <string>()
                {
                    this.testCategoryId1
                },
            };
            var selectImages = this.imagesService.GetByFilter <ResponseSearchImageModelData>(searchData, 10, 1);

            Assert.Equal(2, selectImages.Count());
        }
示例#12
0
        public async Task <IActionResult> PreviewImage(int id)
        {
            if (!this.Request.Cookies.TryGetValue("searchData", out string readSearchDataCookie))
            {
                return(this.BadRequest());
            }

            var options = new JsonSerializerOptions
            {
                PropertyNameCaseInsensitive = true,
            };
            SeachCookieData cookieSearchData = JsonSerializer.Deserialize <SeachCookieData>(readSearchDataCookie, options);

            SearchImageData localSearchData = new SearchImageData
            {
                FilterByTag    = cookieSearchData.SearchText,
                FilterCategory = cookieSearchData.SelectCategory,
            };

            if (this.User.Identity.IsAuthenticated)
            {
                ApplicationUser user = await this.userManager.GetUserAsync(this.User);

                localSearchData.LikeForUserId = user.Id;
            }

            var data = this.imagesService.GetByFilter <ImagePreviewViewModel>(
                localSearchData, 1, id);

            if (!data.Any())
            {
                return(this.Json(string.Empty));
            }
            else
            {
                ImagePreviewViewModel previewImage = data.First();
                previewImage.ImageIndex = id;

                return(this.PartialView("_PreviewImagePartial", previewImage));
            }
        }
示例#13
0
        public async Task <IActionResult> GetUserImagesData(
            int pageIndex,
            int pageSize,
            string userId,
            string type)
        {
            if (pageSize == 0 ||
                pageIndex == 0 ||
                string.IsNullOrEmpty(userId))
            {
                return(this.BadRequest());
            }

            ApplicationUser user = await this.userManager.FindByIdAsync(userId);

            if (user == null)
            {
                return(this.BadRequest());
            }

            SearchImageData localSearchData;

            switch (type)
            {
            case "uploads":
            {
                localSearchData = new SearchImageData
                {
                    AuthorId = user.Id,
                };
                break;
            }

            case "likes":
            {
                localSearchData = new SearchImageData
                {
                    LikeByUser = user.Id,
                };
                break;
            }

            default:
            {
                return(this.BadRequest());
            }
            }

            if (this.User.Identity.IsAuthenticated)
            {
                ApplicationUser loginUser = await this.userManager.GetUserAsync(this.User);

                localSearchData.LikeForUserId = loginUser.Id;
            }

            var data = this.imagesService.GetByFilter <ListImageViewModel>(
                localSearchData, pageSize, pageIndex);

            int indexOfPage = 1;

            foreach (ListImageViewModel model in data)
            {
                model.ImageIndex = ((pageIndex - 1) * pageSize) + indexOfPage;
                indexOfPage++;
            }

            if (!data.Any())
            {
                return(this.Json(string.Empty));
            }
            else
            {
                return(this.PartialView("_ImageListPartial", data));
            }
        }