Beispiel #1
0
        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));
        }
Beispiel #2
0
 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);
 }