public VO.SearchResult <Account> Search(DTO.SearchFilterAccount filter) { #if DEBUG Context.Database.Log = (s) => Debug.WriteLine(s); #endif IQueryable <Account> result = Collection.AsQueryable(); if (!filter.Code.IsNull() && !filter.Code.IsEmpty()) { result = result.Where(a => a.Code == filter.Code); } if (!filter.Document.IsNullOrWhiteSpace()) { result = result.Where(a => a.Document == filter.Document); } if (!filter.Email.IsNullOrWhiteSpace()) { result = result.Where(a => a.Email == filter.Email); } result = result.Where(a => a.Removed == false); result = result.OrderBy(i => i.SaveDate); var count = result.Count(); result = result.Skip((filter.Skip.Value) * filter.Take.Value); result = result.Take(filter.Take.Value); return(new VO.SearchResult <Account>(result.ToList(), filter, count)); }
public IHttpActionResult SearchAccounts(DTO.SearchFilterAccount filter) { try { return(Ok(accountApp.Search(filter))); } catch (ArgumentException ex) { return(BadRequest(ex)); } catch (Exception ex) { return(InternalServerError(ex)); } }