Exemplo n.º 1
0
        public Response SearchForMetadata(MetaSearchQuery query)
        {
            try
            {
                var results = _metadataRepository.SearchForMetadata(query);

                var totalItems    = 0;
                var numberOfPages = 0;

                try
                {
                    totalItems    = results.FirstOrDefault().TotalItems;
                    numberOfPages = results.FirstOrDefault().NumberOfPages;
                }
                catch { }

                var n   = UrlHelper.Action("Search", "Metadata", query);
                var l   = Mapper.Map <List <MetaDataDTO> >(results);
                var dto = new PagingDTO <MetaDataDTO>(l, query, n, numberOfPages, totalItems);

                return(new Response
                {
                    Data = dto
                });
            }
            catch (Exception e)
            {
                return(null);
            }
        }
Exemplo n.º 2
0
        public void HasNoQuery_Is_False_When_Name_Is_Specified_And_Category_Is_Whitespace()
        {
            var query = new MetaSearchQuery
            {
                Name     = "name",
                Category = " "
            };

            Assert.False(query.HasNoQuery());
        }
Exemplo n.º 3
0
        public void HasNoQuery_Is_False_When_Category_Is_Specified_And_Name_Is_Empty()
        {
            var query = new MetaSearchQuery
            {
                Name     = "",
                Category = "Category"
            };

            Assert.False(query.HasNoQuery());
        }
Exemplo n.º 4
0
        public ActionResult <List <MetaData> > Search([FromQuery] MetaSearchQuery query = null)
        {
            var meta = _service.SearchForMetadata(query);

            if (meta != null)
            {
                return(Ok(meta));
            }

            return(InternalServerError());
        }
Exemplo n.º 5
0
        public List <MetaData> SearchForMetadata(MetaSearchQuery searchArgument)
        {
            var query = TableWithAllNestedObjects()
                        .AsQueryable();

            if (searchArgument == null || searchArgument.HasNoQuery())
            {
                return(GetAll(BaseListQuery.DefaultValues(_languageConfig.Default)));
            }

            var searchArgsHasName     = !string.IsNullOrWhiteSpace(searchArgument.Name);
            var searchArgsHasCategory = !string.IsNullOrWhiteSpace(searchArgument.Category);

            if (searchArgsHasCategory)
            {
                query = query.Where(x => x.Category.Name.ToLower().Equals(searchArgument.Category.ToLower()));
            }

            if (searchArgsHasName)
            {
                query = query.Where(x => x.Name.ToLower().Contains(searchArgument.Name.ToLower()));
            }

            var totalItems = query.Count();
            var totalPages = Convert.ToInt32(Math.Ceiling(totalItems * 1.0 / searchArgument.PageSize));

            if (searchArgument.Page > totalPages)
            {
                searchArgument.Page = 1;
            }

            var offset = searchArgument.PageSize * (searchArgument.Page - 1);

            var meta = query
                       .OrderBy(x => x.Id)
                       .Skip(offset)
                       .Take(searchArgument.PageSize)
                       .ToList();

            meta.ForEach(x =>
            {
                x.TotalItems    = totalItems;
                x.NumberOfPages = totalPages;
            });

            return(meta);
        }
Exemplo n.º 6
0
        public void SearchForMetadata_Returns_Results_Based_On_Category_Name()
        {
            var category = Mock.MockCategory("newName");

            Mock.Database.InsertCategory(category);

            Mock.Database.InsertMeta(Mock.MockMeta(_status, _category));
            Mock.Database.InsertMeta(Mock.MockMeta(_status, _category));
            Mock.Database.InsertMeta(Mock.MockMeta(_status, category));
            var query = new MetaSearchQuery {
                Category = category.Name
            };

            var searchResult = MetaRepository.SearchForMetadata(query);

            Assert.Equal(3, MetaRepository.GetAll(_queryWithDefaultValues).Count);
            Assert.Single(searchResult);
        }