Example #1
0
        public PagedResponse <UseCaseLogDto> Execute(LoggsSearch search)
        {
            var query = context.UseCaseLogs.AsQueryable();


            if (!string.IsNullOrEmpty(search.UseCaseName) || !string.IsNullOrWhiteSpace(search.UseCaseName))
            {
                query = query.Where(x => x.UseCaseName.ToLower().Contains(search.UseCaseName.ToLower()));
            }

            if (!string.IsNullOrEmpty(search.User) || !string.IsNullOrWhiteSpace(search.User))
            {
                query = query.Where(x => x.Actor.ToLower().Contains(search.User.ToLower()));
            }

            if (!string.IsNullOrEmpty(search.DateFrom) || !string.IsNullOrWhiteSpace(search.DateFrom))
            {
                DateTime od = DateTime.Parse(search.DateFrom);
                query = query.Where(x => x.Date.Date >= od);
            }
            if (!string.IsNullOrEmpty(search.DateTo) || !string.IsNullOrWhiteSpace(search.DateTo))
            {
                DateTime to = DateTime.Parse(search.DateTo);
                query = query.Where(x => x.Date.Date <= to);
            }

            var skipCount = search.PerPage * (search.Page - 1);
            var reponse   = new PagedResponse <UseCaseLogDto>
            {
                CurrentPage  = search.Page,
                ItemsPerPage = search.PerPage,
                TotalCount   = query.Count(),
                Items        = query.Skip(skipCount).Take(search.PerPage).AsEnumerable().Select(item => _mapper.Map <UseCaseLog, UseCaseLogDto>(item)).ToList()
            };

            return(reponse);
        }
 public IActionResult Get([FromQuery] LoggsSearch search, [FromServices] IGetLoggsQuery query)
 {
     return(Ok(executor.ExecuteQuery(query, search)));
 }