示例#1
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 <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));
        }
        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));
        }
示例#5
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));
        }
示例#6
0
        public ActionResult Login(LoginModel model)
        {
            if (ModelState.IsValid) {
                var query = new SearchQuery<UserModel>();
                //   query.AddFilter(product => product.UserName =="");
                //this is the same as the following

                query.AddFilter(c => c.UserName == model.UserName);
                query.Take = 1;

                var result = unitOfWork.UserRepository.Search(query).Entities.FirstOrDefault();
                if (result != null)
                {
                    if (result.Password == model.Password)
                    {
                        FormsAuthentication.SetAuthCookie(model.UserName, false);
                        return RedirectToAction("Index", "Location");

                    } ModelState.AddModelError("", "Login data is incorrect!");
                    return View(model);
                }
                ModelState.AddModelError("", "Login data is incorrect!");
                return View(model);
            }
            return View();
        }
示例#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));
        }
示例#8
0
        public UserDTO GetUser(Guid userId)
        {
            var querySearch = new SearchQuery <User>();

            querySearch.AddFilter(x => x.Id == userId);

            var user = _userRepository.Search(querySearch).FirstOrDefault();

            return(Mapper.Map <User, UserDTO>(user));
        }
示例#9
0
        public bool Exists(Guid userId)
        {
            var querySearch = new SearchQuery <User>();

            querySearch.AddFilter(x => x.Id == userId);

            var user = _userRepository.Search(querySearch).FirstOrDefault();

            return(user != null);
        }
示例#10
0
        public StaticPagedList<LocationModel> getLocations(int? pageNo)
        {
            //create the query
            var query = new SearchQuery<LocationModel>();
            //   query.AddFilter(product => product.UserName =="");

            //this is the same as the following
            query.AddFilter(c => c.IsDelete == false);
            var pageNumber = pageNo ?? 1;
            query.Take = 10;
            query.Skip = pageNumber - 1;
            var result = unitOfWork.LocationRepository.Search(query);

            return new StaticPagedList<LocationModel>(result.Entities, pageNumber, query.Take, result.Count);
        }
示例#11
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));
        }
示例#12
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));
        }
示例#13
0
        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));
        }
示例#14
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);
        }
示例#15
0
        public void SearchUserGroup()
        {
            Task.Factory.StartNew(ProgressBarService.Show);

            var task = Task.Factory.StartNew(() =>
            {
                UserGroups.Clear();

                var searchQuery = new SearchQuery <UserGroupEntity>();
                if (!string.IsNullOrEmpty(CurrentUserGroupSearch.UserGroupName))
                {
                    searchQuery.AddFilter(ug => ug.UserGroupName.Contains(CurrentUserGroupSearch.UserGroupName));
                }

                UserGroups.AddRange(_employeeUnitOfWork.UserGroupRepository.GetUserGroups(searchQuery));
            });

            task.ContinueWith(arg => Task.Factory.StartNew(ProgressBarService.Hide));
        }
示例#16
0
        //  [OutputCache(Duration=60,VaryByParam="none",Location=System.Web.UI.OutputCacheLocation.Client)]
        public ActionResult Index(int? pageNo)
        {
            var query = new SearchQuery<UserModel>();
            //   query.AddFilter(product => product.UserName =="");

            //this is the same as the following
            query.AddFilter(c => c.IsDelete == false);
            var pageNumber = pageNo ?? 1;
            query.Take = 10;
            query.Skip = pageNumber - 1;
            var result = unitOfWork.UserRepository.Search(query);

            ViewBag.List = new StaticPagedList<UserModel>(result.Entities, pageNumber, query.Take, result.Count); ;
            return View();
        }