Пример #1
0
        private ApiResponse <PagedListResponse <ParameterViewModel> > Search(SearchParameterViewModel model)
        {
            var apiResp = new ApiResponse <PagedListResponse <ParameterViewModel> >
            {
                Type = ResponseType.Fail,
                Data = new PagedListResponse <ParameterViewModel>()
            };

            var request = new FilteredPagedListRequest <SearchParameterCriteria>
            {
                FilterCriteria = new SearchParameterCriteria
                {
                    UserId = GetUserId().Value,
                    Name   = model.Name
                },
                IncludeRecordsTotal = model.IncludeRecordsTotal,
                Limit  = model.Limit,
                Offset = model.Offset
            };

            var resp = _parameterBusiness.Search(request);

            apiResp.Data.Items = resp.Items.Select(p => new ParameterViewModel
            {
                Id = p.Id,
                ParameterTypeId = p.ParameterTypeId,
                Order           = p.Order,
                Name            = p.Name
            });

            apiResp.Data.RecordsTotal = resp.RecordsTotal;
            apiResp.Type = ResponseType.Success;

            return(apiResp);
        }
Пример #2
0
        public PagedListResponse <Entities.Parameter> Search(FilteredPagedListRequest <SearchParameterCriteria> request)
        {
            var result = new PagedListResponse <Entities.Parameter>();

            var query = Entities.Where(p => p.IsDeleted == false);

            if (!request.FilterCriteria.IncludeSystemParameters)
            {
                query = query.Where(p => p.IsSystem == false);
            }

            if (!string.IsNullOrEmpty(request.FilterCriteria.Name))
            {
                var nameLikeText = $"%{request.FilterCriteria.Name}%";
                query = query.Where(p => EF.Functions.ILike(p.Value, nameLikeText));
            }

            if (request.IncludeRecordsTotal)
            {
                result.RecordsTotal = query.Count();
            }

            result.Items = query
                           .OrderBy(p => p.Order)
                           .ThenBy(p => p.Value)
                           .Skip(request.Offset)
                           .Take(request.Limit)
                           .ToList();

            return(result);
        }
Пример #3
0
        private ApiResponse <PagedListResponse <TransactionViewModel> > Search(SearchTransactionViewModel model)
        {
            var apiResp = new ApiResponse <PagedListResponse <TransactionViewModel> >
            {
                Type = ResponseType.Fail,
                Data = new PagedListResponse <TransactionViewModel>()
            };

            var request = new FilteredPagedListRequest <SearchTransactionCriteria>
            {
                FilterCriteria = new SearchTransactionCriteria
                {
                    UserId     = GetUserId().Value,
                    CustomerId = model.CustomerId,
                    TypeId     = model.TypeId,
                    IsDebt     = model.IsDebt,
                    SortType   = model.GetSortType()
                },
                IncludeRecordsTotal = model.IncludeRecordsTotal,
                Limit  = model.Limit,
                Offset = model.Offset
            };

            _transactionBusiness.OwnerId = GetUserId().Value;

            var resp = _transactionBusiness.Search(request);

            apiResp.Data.Items = resp.Items.Select(p => new TransactionViewModel
            {
                Id       = p.Id,
                Customer = new CustomerViewModel
                {
                    Id    = p.Customer.Id,
                    Title = p.Customer.Title,
                    AuthorizedPersonName = p.Customer.AuthorizedPersonName
                },
                Type = new ParameterViewModel
                {
                    Id = p.Type.Id,
                    ParameterTypeId = p.Type.ParameterTypeId,
                    Name            = p.Type.Name
                },
                Amount         = p.Amount,
                Description    = p.Description,
                AttachmentName = p.AttachmentName,
                IsDebt         = p.IsDebt,
                CreatedAt      = p.CreatedAt,
                ModifiedAt     = p.ModifiedAt,
                Date           = p.Date
            });;

            apiResp.Data.RecordsTotal = resp.RecordsTotal;
            apiResp.Type = ResponseType.Success;

            return(apiResp);
        }
Пример #4
0
        public PagedListResponse <Dto.Customer> Search(FilteredPagedListRequest <SearchCustomerCriteria> request)
        {
            var resp = Repository.Search(request);

            var customers = Mapper.Map <IEnumerable <Dal.Entities.Customer>, IEnumerable <Dto.Customer> >(resp.Items);

            return(new PagedListResponse <Dto.Customer>
            {
                Items = customers,
                RecordsTotal = resp.RecordsTotal
            });
        }
        public PagedListResponse <Dto.Transaction> Search(FilteredPagedListRequest <SearchTransactionCriteria> request)
        {
            var resp = Repository.Search(request);

            var transactions = Mapper.Map <IEnumerable <Dal.Entities.Transaction>, IEnumerable <Dto.Transaction> >(resp.Items);

            SetTransactionTypes(transactions);

            return(new PagedListResponse <Dto.Transaction>
            {
                Items = transactions,
                RecordsTotal = resp.RecordsTotal
            });
        }
        public PagedListResponse <Entities.Customer> Search(FilteredPagedListRequest <SearchCustomerCriteria> request)
        {
            var result = new PagedListResponse <Entities.Customer>();

            var query = Entities.Where(p => p.UserId == request.FilterCriteria.UserId);

            if (!string.IsNullOrEmpty(request.FilterCriteria.Title))
            {
                var titleLikeText = $"%{request.FilterCriteria.Title}%";
                query = query.Where(p => EF.Functions.ILike(p.Title, titleLikeText));
            }

            if (!string.IsNullOrEmpty(request.FilterCriteria.AuthorizedPersonName))
            {
                var personLikeText = $"{request.FilterCriteria.AuthorizedPersonName}%";
                query = query.Where(p => EF.Functions.ILike(p.AuthorizedPersonName, personLikeText));
            }

            if (request.IncludeRecordsTotal)
            {
                result.RecordsTotal = query.Count();
            }

            switch (request.FilterCriteria.SortType)
            {
            case SortType.Ascending:
                query = query
                        .OrderBy(p => p.Title);
                break;

            case SortType.Descending:
                query = query
                        .OrderByDescending(p => p.Title);
                break;

            default:
                query = query
                        .OrderByDescending(p => p.Id);
                break;
            }

            result.Items = query
                           .Skip(request.Offset)
                           .Take(request.Limit)
                           .ToList();

            return(result);
        }
Пример #7
0
        private ApiResponse <PagedListResponse <CustomerViewModel> > Search(SearchCustomerViewModel model)
        {
            var apiResp = new ApiResponse <PagedListResponse <CustomerViewModel> >
            {
                Type = ResponseType.Fail,
                Data = new PagedListResponse <CustomerViewModel>()
            };

            var request = new FilteredPagedListRequest <SearchCustomerCriteria>
            {
                FilterCriteria = new SearchCustomerCriteria
                {
                    AuthorizedPersonName = model.AuthorizedPersonName,
                    Title    = model.Title,
                    UserId   = GetUserId().Value,
                    SortType = model.GetSortType()
                },
                IncludeRecordsTotal = model.IncludeRecordsTotal,
                Limit  = model.Limit,
                Offset = model.Offset
            };

            var resp = _customerBusiness.Search(request);

            apiResp.Data.Items = resp.Items.Select(p => new CustomerViewModel
            {
                Id    = p.Id,
                Title = p.Title,
                AuthorizedPersonName = p.AuthorizedPersonName,
                CreatedAt            = p.CreatedAt,
                PhoneNumber          = p.PhoneNumber,
                DebtBalance          = p.DebtBalance,
                ReceivableBalance    = p.ReceivableBalance
            });

            apiResp.Data.RecordsTotal = resp.RecordsTotal;
            apiResp.Type = ResponseType.Success;

            return(apiResp);
        }
Пример #8
0
        private ApiResponse <PagedListResponse <ParameterViewModel> > Search(SearchParameterViewModel model)
        {
            var apiResp = new ApiResponse <PagedListResponse <ParameterViewModel> >
            {
                Type = ResponseType.Fail,
                Data = new PagedListResponse <ParameterViewModel>()
            };

            var request = new FilteredPagedListRequest <SearchParameterCriteria>
            {
                FilterCriteria = new SearchParameterCriteria
                {
                    Name = model.Name,
                    IncludeSystemParameters = model.IncludeSystemParameters
                },
                IncludeRecordsTotal = model.IncludeRecordsTotal,
                Limit  = model.Limit,
                Offset = model.Offset
            };

            var resp = _parameterService.Search(request);

            apiResp.Data.Items = resp.Items.Select(p => new ParameterViewModel
            {
                Id          = p.Id,
                TypeId      = p.TypeId,
                Order       = p.Order,
                Value       = p.Value,
                Description = p.Description,
                IsSystem    = p.IsSystem
            });

            apiResp.Data.RecordsTotal = resp.RecordsTotal;
            apiResp.Type = ResponseType.Success;

            return(apiResp);
        }
        public PagedListResponse <Entities.Transaction> Search(FilteredPagedListRequest <SearchTransactionCriteria> request)
        {
            var result = new PagedListResponse <Entities.Transaction>();

            var query = Entities.Where(p => p.Customer.UserId == request.FilterCriteria.UserId);

            if (request.FilterCriteria.CustomerId.HasValue)
            {
                query = query.Where(p => p.CustomerId == request.FilterCriteria.CustomerId.Value);
            }

            if (request.FilterCriteria.TypeId.HasValue)
            {
                query = query.Where(p => p.TypeId == request.FilterCriteria.TypeId.Value);
            }

            if (request.FilterCriteria.IsDebt.HasValue)
            {
                query = query.Where(p => p.IsDebt == request.FilterCriteria.IsDebt.Value);
            }

            if (request.IncludeRecordsTotal)
            {
                result.RecordsTotal = query.Count();
            }

            switch (request.FilterCriteria.SortType)
            {
            case SortType.Ascending:
                query = query
                        .OrderBy(p => p.Customer.Title);
                break;

            case SortType.Descending:
                query = query
                        .OrderByDescending(p => p.Customer.Title);
                break;

            default:
                query = query
                        .OrderByDescending(p => p.Id);
                break;
            }

            query = query.Select(p => new Entities.Transaction
            {
                Id             = p.Id,
                Description    = p.Description,
                AttachmentName = p.AttachmentName,
                Amount         = p.Amount,
                TypeId         = p.TypeId,
                IsDebt         = p.IsDebt,
                Date           = p.Date,
                CreatedAt      = p.CreatedAt,
                ModifiedAt     = p.ModifiedAt,
                Customer       = new Entities.Customer
                {
                    Id = p.CustomerId,
                    AuthorizedPersonName = p.Customer.AuthorizedPersonName,
                    Title = p.Customer.Title
                }
            });

            result.Items = query
                           .Skip(request.Offset)
                           .Take(request.Limit)
                           .ToList();

            return(result);
        }