Beispiel #1
0
        public async Task <IEnumerable <Entity> > GetPagedPositionReponseAsync(GetPositionsQuery requestParameter)
        {
            var positionNumber = requestParameter.PositionNumber;
            var positionTitle  = requestParameter.PositionTitle;

            var pageNumber = requestParameter.PageNumber;
            var pageSize   = requestParameter.PageSize;
            var orderBy    = requestParameter.OrderBy;
            var fields     = requestParameter.Fields;

            var result = _positions
                         .AsNoTracking()
                         .AsExpandable()
                         .Skip((pageNumber - 1) * pageSize)
                         .Take(pageSize);

            // filter
            FilterByColumn(ref result, positionNumber, positionTitle);
            // order by
            if (!string.IsNullOrWhiteSpace(orderBy))
            {
                result = result.OrderBy(orderBy);
            }
            // query field limit
            if (!string.IsNullOrWhiteSpace(fields))
            {
                result = result.Select <Position>("new(" + fields + ")");
            }
            // retrieve data to list
            var resultData = await result.ToListAsync();

            // shape data
            return(_dataShaper.ShapeData(resultData, fields));
        }
        public async Task <IActionResult> GetAsync()
        {
            var query = new GetPositionsQuery();
            var res   = await _mediator.Send(query);

            return(Ok(res));
        }
        public async Task <PagedResponse <IEnumerable <Entity> > > Handle(GetPositionsQuery request, CancellationToken cancellationToken)
        {
            var validFilter = request;
            var pagination  = request;

            //filtered fields security
            if (!string.IsNullOrEmpty(validFilter.Fields))
            {
                //limit to fields in view model
                validFilter.Fields = _modelHelper.ValidateModelFields <GetPositionsViewModel>(validFilter.Fields);
            }
            if (string.IsNullOrEmpty(validFilter.Fields))
            {
                //default fields from view model
                validFilter.Fields = _modelHelper.GetModelFields <GetPositionsViewModel>();
            }
            // query based on filter
            var entityPositions = await _positionRepository.GetPagedPositionReponseAsync(validFilter);

            var          data        = entityPositions.data;
            RecordsCount recordCount = entityPositions.recordsCount;

            // response wrapper
            return(new PagedResponse <IEnumerable <Entity> >(data, validFilter.PageNumber, validFilter.PageSize, recordCount));
        }
        public async Task <ICollection <PositionResponse> > Handle(GetPositionsQuery request, CancellationToken cancellationToken)
        {
            var positions = await _positionRepository.GetAll();

            var res = _mapper.Map <ICollection <PositionDto>, ICollection <PositionResponse> >(positions);

            return(res);
        }
Beispiel #5
0
        public async Task <IEnumerable <PositionViewModel> > Handle(GetPositionsQuery request, CancellationToken cancellationToken)
        {
            var positions = await PositionRepository.Select();

            var viewmodel = new List <PositionViewModel>();

            foreach (var item in positions)
            {
                var vm = new PositionViewModel();
                vm.LoadFromDomain(item);
                vm.IsSelected = item.Id == request.SelectedId;
                viewmodel.Add(vm);
            }
            return(viewmodel.OrderByDescending(item => item.Grade).ThenBy(item => item.Name).ToList());
        }
Beispiel #6
0
        public async Task <PagedDataTableResponse <IEnumerable <Entity> > > Handle(PagedPositionsQuery request, CancellationToken cancellationToken)
        {
            var validFilter = new GetPositionsQuery();

            // Draw map to PageNumber
            validFilter.PageNumber = (request.Start / request.Length) + 1;
            // Length map to PageSize
            validFilter.PageSize = request.Length;

            // Map order > OrderBy
            var colOrder = request.Order[0];

            switch (colOrder.Column)
            {
            case 0:
                validFilter.OrderBy = colOrder.Dir == "asc" ? "PositionNumber" : "PositionNumber DESC";
                break;

            case 1:
                validFilter.OrderBy = colOrder.Dir == "asc" ? "PositionTitle" : "PositionTitle DESC";
                break;

            case 2:
                validFilter.OrderBy = colOrder.Dir == "asc" ? "PositionDescription" : "PositionDescription DESC";
                break;
            }

            // Map Search > searchable columns
            if (!string.IsNullOrEmpty(request.Search.Value))
            {
                //limit to fields in view model
                validFilter.PositionNumber = request.Search.Value;
                validFilter.PositionTitle  = request.Search.Value;
            }
            if (string.IsNullOrEmpty(validFilter.Fields))
            {
                //default fields from view model
                validFilter.Fields = _modelHelper.GetModelFields <GetPositionsViewModel>();
            }
            // query based on filter
            var entityPositions = await _positionRepository.GetPagedPositionReponseAsync(validFilter);

            var          data        = entityPositions.data;
            RecordsCount recordCount = entityPositions.recordsCount;

            // response wrapper
            return(new PagedDataTableResponse <IEnumerable <Entity> >(data, request.Draw, recordCount));
        }
Beispiel #7
0
 public async Task <IActionResult> Get([FromQuery] GetPositionsQuery filter)
 {
     return(Ok(await Mediator.Send(filter)));
 }
        public async Task <(IEnumerable <Entity> data, RecordsCount recordsCount)> GetPagedPositionReponseAsync(GetPositionsQuery requestParameter)
        {
            var positionNumber = requestParameter.PositionNumber;
            var positionTitle  = requestParameter.PositionTitle;

            var pageNumber = requestParameter.PageNumber;
            var pageSize   = requestParameter.PageSize;
            var orderBy    = requestParameter.OrderBy;
            var fields     = requestParameter.Fields;

            int recordsTotal, recordsFiltered;

            // Setup IQueryable
            var result = _positions
                         .AsNoTracking()
                         .AsExpandable();

            // Count records total
            recordsTotal = await result.CountAsync();

            // filter data
            FilterByColumn(ref result, positionNumber, positionTitle);

            // Count records after filter
            recordsFiltered = await result.CountAsync();

            //set Record counts
            var recordsCount = new RecordsCount
            {
                RecordsFiltered = recordsFiltered,
                RecordsTotal    = recordsTotal
            };

            // set order by
            if (!string.IsNullOrWhiteSpace(orderBy))
            {
                result = result.OrderBy(orderBy);
            }

            // select columns
            if (!string.IsNullOrWhiteSpace(fields))
            {
                result = result.Select <Position>("new(" + fields + ")");
            }
            // paging
            result = result
                     .Skip((pageNumber - 1) * pageSize)
                     .Take(pageSize);

            // retrieve data to list
            var resultData = await result.ToListAsync();

            // shape data
            var shapeData = _dataShaper.ShapeData(resultData, fields);

            return(shapeData, recordsCount);
        }
 public async Task <IActionResult> Get([FromQuery] GetPositionsQuery filter)
 {
     Log.Information($"GET Position called at {DateTime.Now}");
     _loggerFactory.CreateLogger("GET Position called at");
     return(Ok(await Mediator.Send(filter)));
 }
Beispiel #10
0
 public async Task <IEnumerable <Position> > Handle(GetPositionsQuery request, CancellationToken cancellationToken)
 {
     return(await appDbContext.Positions.ToListAsync(cancellationToken));
 }