Exemple #1
0
 private static void ApplySorting(CollectionRequestModel model, SearchQuery <UserEntity> query)
 {
     if (!string.IsNullOrEmpty(model.Sort))
     {
         query.AddSortCriteria(FiltrationHelper.GetSorting <UserEntity>(model.Sort));
     }
     else
     {
         query.AddSortCriteria(new FieldSortOrder <UserEntity>("Name", SortDirection.Ascending));
     }
 }
        public Task <DataResult <IPagedListResult <DTOCustomerExchange> > > GetCustomersLookupWithPagingAsync(List <Expression <Func <CustomerExchange, bool> > > searchTerm,
                                                                                                              string sortName, string sortDirection, int pageIndex, int pageSize,
                                                                                                              CancellationToken cancellationToken = default(CancellationToken))
        {
            return(Task.Run(() =>
            {
                var searchQuery = new SearchQuery <CustomerExchange>();

                searchQuery.CurrentPage = pageIndex;
                searchQuery.Skip = pageSize * (pageIndex - 1);
                searchQuery.Take = pageSize;
                searchQuery.IncludeProperties = "Car,Customer";

                var sort = new FieldSortCriteria <CustomerExchange>(sortName, (SortDirection)Enum.Parse(typeof(SortDirection), sortDirection));
                searchQuery.AddSortCriteria(sort);

                foreach (var searchCondition in searchTerm)
                {
                    searchQuery.AddFilter(searchCondition);
                }

                var pagedCustomerWithCar = customerExchangeRepository.Search(searchQuery);
                var pagedCustomerWithCarDTOs = GetDefaultPagingDtoResult <DTOCustomerExchange, CustomerExchange>(_mapper, pagedCustomerWithCar);

                // Mapping customer, car and quotations to DTO
                pagedCustomerWithCarDTOs.DTOs = MappingCustomerAndCarDTO(pagedCustomerWithCar.DTOs.ToList(), pagedCustomerWithCarDTOs.DTOs.ToList());

                return new DataResult <IPagedListResult <DTOCustomerExchange> >
                {
                    Errors = new List <ErrorDescriber>(),
                    Target = pagedCustomerWithCarDTOs
                };
            }, cancellationToken));
        }
        public Task <DataResult <IPagedListResult <DTOCustomer> > > GetCustomersWithPagingAsync(string searchTerm, string sortName, string sortDirection, int pageIndex, int pageSize,
                                                                                                CancellationToken cancellationToken = default(CancellationToken))
        {
            return(Task.Run(() => {
                var searchQuery = new SearchQuery <Customer>();

                searchQuery.CurrentPage = pageIndex;
                searchQuery.Skip = pageSize * (pageIndex - 1);
                searchQuery.Take = pageSize;
                searchQuery.IncludeProperties = "Branch,CustomerType";

                var sort = new FieldSortCriteria <Customer>(sortName, (SortDirection)Enum.Parse(typeof(SortDirection), sortDirection));
                searchQuery.AddSortCriteria(sort);

                if (!string.IsNullOrEmpty(searchTerm))
                {
                    searchQuery.AddFilter(x => x.Name.Contains(searchTerm) ||
                                          x.Phone.Contains(searchTerm) ||
                                          x.Id.Contains(searchTerm));
                }

                var pagedCustomers = customerRepository.Search(searchQuery);

                return new DataResult <IPagedListResult <DTOCustomer> >
                {
                    Errors = new List <ErrorDescriber>(),
                    Target = GetDefaultPagingDtoResult <DTOCustomer, Customer>(_mapper, pagedCustomers)
                };
            }, cancellationToken));
        }
Exemple #4
0
        public Task <DataResult <IPagedListResult <DTOQuotationItem> > > GetQuotationItemsWithPagingAsync(string quotationId, string searchTerm, string sortName, string sortDirection, int pageIndex, int pageSize,
                                                                                                          CancellationToken cancellationToken = default(CancellationToken))
        {
            return(Task.Run(() =>
            {
                var searchQuery = new SearchQuery <QuotationItem>();

                searchQuery.CurrentPage = pageIndex;
                searchQuery.Skip = pageSize * (pageIndex - 1);
                searchQuery.Take = pageSize;
                searchQuery.IncludeProperties = "Quotation,Accessary,Accessary.Unit,Service,Service.Unit,Employee";

                var sort = new FieldSortCriteria <QuotationItem>(sortName, (SortDirection)Enum.Parse(typeof(SortDirection), sortDirection));
                searchQuery.AddSortCriteria(sort);

                searchQuery.AddFilter(x => x.QuotationId == quotationId);

                if (!string.IsNullOrEmpty(searchTerm))
                {
                    searchQuery.AddFilter(x => x.Service.Name.Contains(searchTerm) || x.Accessary.Name.Contains(searchTerm));
                }

                var pagedQuotationItems = _unitOfWork.GetRepository <QuotationItem>().Search(searchQuery);

                return new DataResult <IPagedListResult <DTOQuotationItem> >
                {
                    Errors = new List <ErrorDescriber>(),
                    Target = GetDefaultPagingDtoResult <DTOQuotationItem, QuotationItem>(_mapper, pagedQuotationItems)
                };
            }, cancellationToken));
        }
        public Task <DataResult <IPagedListResult <DTOManufacturer> > > GetManufacturersWithPagingAsync(string searchTerm, string sortName, string sortDirection, int pageIndex, int pageSize, CancellationToken cancellationToken = default(CancellationToken))
        {
            return(Task.Run(() => {
                var searchQuery = new SearchQuery <Manufacturer>();

                searchQuery.CurrentPage = pageIndex;
                searchQuery.Skip = pageSize * (pageIndex - 1);
                searchQuery.Take = pageSize;

                var sort = new FieldSortCriteria <Manufacturer>(sortName, (SortDirection)Enum.Parse(typeof(SortDirection), sortDirection));
                searchQuery.AddSortCriteria(sort);

                if (!string.IsNullOrEmpty(searchTerm))
                {
                    searchQuery.AddFilter(x => x.Name.Contains(searchTerm) || x.Description.Contains(searchTerm));
                }

                var pagedManufacturers = _unitOfWork.GetRepository <Manufacturer>().Search(searchQuery);

                return new DataResult <IPagedListResult <DTOManufacturer> >
                {
                    Errors = new List <ErrorDescriber>(),
                    Target = GetDefaultPagingDtoResult <DTOManufacturer, Manufacturer>(_mapper, pagedManufacturers)
                };
            }, cancellationToken));
        }
Exemple #6
0
        public Task <DataResult <IPagedListResult <DTOQuotation> > > GetQuotationsLookupWithPagingAsync(List <Expression <Func <Quotation, bool> > > searchTerm,
                                                                                                        string sortName, string sortDirection, int pageIndex, int pageSize,
                                                                                                        CancellationToken cancellationToken = default(CancellationToken))
        {
            return(Task.Run(() =>
            {
                var searchQuery = new SearchQuery <Quotation>();

                searchQuery.CurrentPage = pageIndex;
                searchQuery.Skip = pageSize * (pageIndex - 1);
                searchQuery.Take = pageSize;
                searchQuery.IncludeProperties = "Branch,Status,CustomerExchange,CustomerExchange.Customer,CustomerExchange.Car";

                var sort = new FieldSortCriteria <Quotation>(sortName, (SortDirection)Enum.Parse(typeof(SortDirection), sortDirection));
                searchQuery.AddSortCriteria(sort);

                foreach (var searchCondition in searchTerm)
                {
                    searchQuery.AddFilter(searchCondition);
                }

                var pagedQuotations = _unitOfWork.GetRepository <Quotation>().Search(searchQuery);

                return new DataResult <IPagedListResult <DTOQuotation> >
                {
                    Errors = new List <ErrorDescriber>(),
                    Target = GetDefaultPagingDtoResult <DTOQuotation, Quotation>(_mapper, pagedQuotations)
                };
            }, cancellationToken));
        }
Exemple #7
0
        public Task <DataResult <IPagedListResult <DTOPaySlipBill> > > GetPayslipsWithPagingAsync(string searchTerm, string sortName, string sortDirection, int pageIndex, int pageSize,
                                                                                                  CancellationToken cancellationToken = default(CancellationToken))
        {
            return(Task.Run(() => {
                var searchQuery = new SearchQuery <PaySlipBill>();

                searchQuery.CurrentPage = pageIndex;
                searchQuery.Skip = pageSize * (pageIndex - 1);
                searchQuery.Take = pageSize;
                searchQuery.IncludeProperties = "Quotation";

                var sort = new FieldSortCriteria <PaySlipBill>(sortName, (SortDirection)Enum.Parse(typeof(SortDirection), sortDirection));
                searchQuery.AddSortCriteria(sort);

                if (!string.IsNullOrEmpty(searchTerm))
                {
                    searchQuery.AddFilter(x => x.Id == int.Parse(searchTerm) || x.QuotationId == searchTerm);
                }

                var pagedPayslips = paySlipBillRepository.Search(searchQuery);

                return new DataResult <IPagedListResult <DTOPaySlipBill> >
                {
                    Errors = new List <ErrorDescriber>(),
                    Target = GetDefaultPagingDtoResult <DTOPaySlipBill, PaySlipBill>(_mapper, pagedPayslips)
                };
            }, cancellationToken));
        }
Exemple #8
0
        public PagedListResult <KnowledgeArea> Search(string term, string searchFieldName, int page)
        {
            var repo  = new GenericRepository <KnowledgeArea>(_context);
            var query = new SearchQuery <KnowledgeArea>();

            query.AddFilter(a => searchFieldName == Resource.KnowledgeAreaNameFieldName && a.Name.Contains(term) ||
                            searchFieldName == "Id" && a.Id.ToString().Contains(term) ||
                            string.IsNullOrEmpty(searchFieldName));

            query.AddSortCriteria(new DynamicFieldSortCriteria <KnowledgeArea>("Order"));
            query.Take = 8;
            query.Skip = (page - 1) * 8;

            return(repo.Search(query));
        }
Exemple #9
0
        public PagedListResult <Classroom> Search(string term, string searchFieldName, int page)
        {
            var repo  = new GenericRepository <Classroom>(_context);
            var query = new SearchQuery <Classroom>();

            query.AddFilter(a => searchFieldName == Resource.ClassroomNameFieldName && a.Name.Contains(term) ||
                            searchFieldName == Resource.CourseName &&
                            a.Courses.Any(c => c.Course.Name.Contains(term)) ||
                            string.IsNullOrEmpty(searchFieldName));

            query.AddSortCriteria(new DynamicFieldSortCriteria <Classroom>("Name"));
            query.Take = 8;
            query.Skip = (page - 1) * 8;

            return(repo.Search(query));
        }
        public PagedListResult <Teacher> ListTeachers(string term, string searchFieldName, int page)
        {
            var repo  = new GenericRepository <Teacher>(_context);
            var query = new SearchQuery <Teacher>();

            query.AddFilter(a => searchFieldName == Resource.TeacherNameFieldName && a.Name.Contains(term) ||
                            searchFieldName == Resource.TeacherEmailFieldName && a.Email.Contains(term) ||
                            searchFieldName == "Id" && a.Id.ToString().Contains(term) ||
                            string.IsNullOrEmpty(searchFieldName));

            query.AddSortCriteria(new DynamicFieldSortCriteria <Teacher>("Name"));
            query.Take = 8;
            query.Skip = (page - 1) * 8;

            return(repo.Search(query));
        }
Exemple #11
0
        public StaticPagedList<ProductModel> getProducts(int? pageNo)
        {
            //create the query
            var query = new SearchQuery<ProductModel>();
            //   query.AddFilter(product => product.UserName =="");

            //this is the same as the following
            query.AddFilter(c => c.IsDelete == false);
            query.AddSortCriteria(new FieldSortCriteria<ProductModel>("LastUpdate", SortDirection.Descending));
            var pageNumber = pageNo ?? 1;
            query.Take = 10;
            query.Skip = pageNumber - 1;
            var result = unitOfWork.ProductRepository.Search(query);

            return new StaticPagedList<ProductModel>(result.Entities, pageNumber, query.Take, result.Count);
        }
Exemple #12
0
        public virtual SearchQuery <TEntity> GenerateQuery(TableFilter tableFilter, string includeProperties = null)
        {
            var query = new SearchQuery <TEntity>
            {
                Skip = tableFilter.Start,
                Take = tableFilter.Length
            };

            if (!string.IsNullOrEmpty(includeProperties))
            {
                query.IncludeProperties = includeProperties;
            }

            query.AddSortCriteria(new FieldSortOrder <TEntity>(tableFilter.ColumnName, tableFilter.OrderType));

            return(query);
        }