public async Task <dynamic> GetMyDictionaries([FromUri] DictionaryFilterViewModel filter) { var query = _dbContext.Dictionaries.Where(d => d.OwnerId == User.Identity.Name); query = PrepareQueryByFilter(query, filter); var dictionaries = await query.OrderByDescending(d => d.CreationDate).ToListAsync(); return(Request.CreateResponse(HttpStatusCode.OK, dictionaries)); }
private IQueryable <Dictionary> PrepareQueryByFilter(IQueryable <Dictionary> query, DictionaryFilterViewModel filter) { if (filter != null) { if (!string.IsNullOrEmpty(filter.Name)) { query = query.Where(d => d.Name.ToLower().Contains(filter.Name.ToLower())); } if (!string.IsNullOrEmpty(filter.SourceLanguage)) { query = query.Where(d => d.SourceLanguage.ToLower().Contains(filter.SourceLanguage.ToLower())); } if (!string.IsNullOrEmpty(filter.TargetLanguage)) { query = query.Where(d => d.TargetLanguage.ToLower().Contains(filter.TargetLanguage.ToLower())); } if (!string.IsNullOrEmpty(filter.OwnerId)) { query = query.Where(d => d.OwnerId.ToLower().Contains(filter.OwnerId.ToLower())); } } return(query); }