예제 #1
0
        public async Task <BaseViewModel <PagingResult <PaymentMethodViewModel> > > GetAllPaymentMethods(BasePagingRequestViewModel request)
        {
            var    pageSize      = request.PageSize;
            var    pageIndex     = request.PageIndex;
            var    result        = new BaseViewModel <PagingResult <PaymentMethodViewModel> >();
            var    currentUserId = _repository.GetCurrentUserId();
            var    defaultFilter = $"_.UserId.Equals(new System.Guid(\"{currentUserId}\")) && {Constants.DEAFAULT_DELETE_STATUS_EXPRESSION}";
            string filter        = SearchHelper <PaymentMethod> .GenerateStringExpression(request.Filter, defaultFilter);

            Expression <Func <PaymentMethod, bool> > FilterExpression = await LinqHelper <PaymentMethod> .StringToExpression(filter);

            QueryArgs <PaymentMethod> queryArgs = new QueryArgs <PaymentMethod>
            {
                Offset = pageSize * (pageIndex - 1),
                Limit  = pageSize,
                Filter = FilterExpression,
                Sort   = request.SortBy,
            };


            var data = _repository.Get(queryArgs.Filter, queryArgs.Sort, queryArgs.Offset, queryArgs.Limit).ToList();

            //var sql = data.ToSql();

            if (data == null || data.Count == 0)
            {
                result.Description = MessageHandler.CustomMessage(MessageConstants.NO_RECORD);
                result.Code        = MessageConstants.NO_RECORD;
            }
            else
            {
                var pageSizeReturn = pageSize;
                if (data.Count < pageSize)
                {
                    pageSizeReturn = data.Count;
                }
                result.Data = new PagingResult <PaymentMethodViewModel>
                {
                    Results      = _mapper.Map <IEnumerable <PaymentMethodViewModel> >(data),
                    PageIndex    = pageIndex,
                    PageSize     = pageSizeReturn,
                    TotalRecords = _repository.Count(queryArgs.Filter)
                };
            }

            return(result);
        }
예제 #2
0
        public IndexViewModel Create(string orderBy, string direction, int skip, int take, string filter)
        {
            IPaymentMethodRepository paymentMethodRepository   = this.RequestHandler.Storage.GetRepository <IPaymentMethodRepository>();
            IStringLocalizer <IndexViewModelFactory> localizer = this.RequestHandler.GetService <IStringLocalizer <IndexViewModelFactory> >();

            return(new IndexViewModel()
            {
                Grid = new GridViewModelFactory(this.RequestHandler).Create(
                    orderBy, direction, skip, take, paymentMethodRepository.Count(filter),
                    new[] {
                    new GridColumnViewModelFactory(this.RequestHandler).Create(localizer["Code"], "Code"),
                    new GridColumnViewModelFactory(this.RequestHandler).Create(localizer["Name"], "Name"),
                    new GridColumnViewModelFactory(this.RequestHandler).Create(localizer["Position"], "Position"),
                    new GridColumnViewModelFactory(this.RequestHandler).CreateEmpty()
                },
                    paymentMethodRepository.Range(orderBy, direction, skip, take, filter).ToList().Select(pm => new PaymentMethodViewModelFactory(this.RequestHandler).Create(pm)),
                    "_PaymentMethod"
                    )
            });
        }