Exemple #1
0
        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));
        }
Exemple #2
0
 public IHttpActionResult SearchAccounts(DTO.SearchFilterAccount filter)
 {
     try
     {
         return(Ok(accountApp.Search(filter)));
     }
     catch (ArgumentException ex)
     {
         return(BadRequest(ex));
     }
     catch (Exception ex)
     {
         return(InternalServerError(ex));
     }
 }