Пример #1
0
        public IEnumerable <ContractInfo> GetContracts(
            KeyValuePair <string, string> orderBy,
            ContractInfoFilter filters,
            Paging paging,
            out int totalCount)
        {
            var contract = _contractRepository
                           .GetByFilters(filters)
                           .Include(x => x.Status)
                           .WithPagination(paging, out totalCount);


            var sql = contract.ToSql();

            // TODO прикрутить мапер
            var result = contract
                         .Select(x => new ContractInfo
            {
                Id          = x.Id,
                Description = x.Description,
                Initiator   = x.Initiator,
                Name        = x.Name,
                Performer   = x.Performer,
                StatusName  = x.Status.Name
            })
                         .CustomOrderBy(orderBy);

            return(result);
        }
Пример #2
0
        public IQueryable <DbContract> GetByFilters(ContractInfoFilter filters)
        {
            var contracts = _context.Contracts.AsQueryable();

            if (filters == null)
            {
                return(contracts);
            }

            if (!string.IsNullOrWhiteSpace(filters.Name))
            {
                contracts = contracts.Where(x => x.Name.Contains(filters.Name));
            }
            if (!string.IsNullOrWhiteSpace(filters.Performer))
            {
                contracts = contracts.Where(x => x.Performer.Contains(filters.Performer));
            }
            if (!string.IsNullOrWhiteSpace(filters.Initiator))
            {
                contracts = contracts.Where(x => x.Initiator.Contains(filters.Initiator));
            }
            if (filters.StatusId.HasValue)
            {
                contracts = contracts.Where(x => x.StatusId == filters.StatusId.Value);
            }

            return(contracts);
        }
Пример #3
0
        public async Task <ActionResult> GetContracts(
            [FromQuery] KeyValuePair <string, string> orderBy,
            [FromBody] ContractInfoFilter filters,
            [FromQuery] Paging paging)
        {
            var data = _contractService.GetContracts(orderBy, filters, paging, out int totalCount);

            var result = new PagingWrapper <ContractInfo>
            {
                DataCollection = data,
                TotalCount     = totalCount
            };

            return(new JsonResult(result));
        }