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); } }
public void HasNoQuery_Is_False_When_Name_Is_Specified_And_Category_Is_Whitespace() { var query = new MetaSearchQuery { Name = "name", Category = " " }; Assert.False(query.HasNoQuery()); }
public void HasNoQuery_Is_False_When_Category_Is_Specified_And_Name_Is_Empty() { var query = new MetaSearchQuery { Name = "", Category = "Category" }; Assert.False(query.HasNoQuery()); }
public ActionResult <List <MetaData> > Search([FromQuery] MetaSearchQuery query = null) { var meta = _service.SearchForMetadata(query); if (meta != null) { return(Ok(meta)); } return(InternalServerError()); }
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); }
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); }