/// <summary> /// Gets the elements. /// </summary> /// <param name="customerId">The customer identifier.</param> /// <param name="searchCriteriaDto">The search criteria dto.</param> /// <returns></returns> public async Task <PagedResultDto <TextMediaElementResponseDto> > GetElements( int customerId, TextMediaElementSearchDto searchCriteriaDto ) { var result = await textMediaElementsService.GetElements(customerId, searchCriteriaDto); return(Mapper.Map <PagedResult <TextMediaElement>, PagedResultDto <TextMediaElementResponseDto> >(result)); }
public async Task <IHttpActionResult> GetTextMediaElements( int customerId, [FromUri] TextMediaElementSearchDto searchModel, string language = null ) { var elements = await controllerHelper.GetElements(customerId, searchModel); return(Ok(elements)); }
public async Task <PagedResult <TextMediaElement> > GetElements( int customerId, TextMediaElementSearchDto searchRequest = null ) { Expression <Func <TextMediaElement, bool> > expression = tm => !tm.IsDeleted && tm.CustomerId == customerId; if (searchRequest != null) { if (searchRequest.Tags != null && searchRequest.Tags.Any()) { Expression <Func <TextMediaElement, bool> > tagsExpression = PredicateBuilder.False <TextMediaElement>(); foreach (var tag in searchRequest.Tags) { tagsExpression = tagsExpression.Or(se => se.Tags.Any(t => t.Name.ToLower() == tag.ToLower())); } expression = expression.And(tagsExpression); } if (!string.IsNullOrEmpty(searchRequest.Q)) { var terms = searchRequest.Q.Split(' ').Where(r => !string.IsNullOrWhiteSpace(r)); foreach (var term in terms) { expression = expression.And(tm => tm.Name.Contains(term)); } } if (searchRequest.Type.HasValue) { expression = expression.And(tm => tm.MediaType == searchRequest.Type.Value); } } return(await textMediaElementsRepository.FindPagedAsync( expression, o => o.OrderBy(e => e.Id), new List <Expression <Func <TextMediaElement, object> > > { e => e.Tags, e => e.TextLocalizedStrings, e => e.TextMediaElementsToMedias.Select(t => t.Media) }, searchRequest != null?searchRequest.Skip : (int?)null, searchRequest != null?searchRequest.Take : (int?)null )); }