コード例 #1
0
        public ActionResult AdvancedSearchCustomer()
        {
            var advSearchData = new AdvSearchData();

            //advSearchData.CustomerEmailList = new SelectList(_context.Customers
            //                                                        .Select(x => new { x.CustomerEmail, x. }),
            //                                                          "Id",
            //                                                          "Status1");



            advSearchData.CustomerEmailList = new SelectList(_context.Customers
                                                             .GroupBy(x => x.CustomerEmail)
                                                             .Where(x => x.Key != null && !x.Key.Equals(string.Empty))
                                                             .Select(x => new { CustomerEmail = x.Key }),
                                                             "CustomerEmail",
                                                             "CustomerEmail");


            advSearchData.CustomerPhoneList = new SelectList(_context.Customers
                                                             .GroupBy(x => x.CustomerPhone)
                                                             .Where(x => x.Key != null && !x.Key.Equals(string.Empty))
                                                             .Select(x => new { CustomerPhone = x.Key }),
                                                             "CustomerPhone",
                                                             "CustomerPhone");


            return(View("AdvancedSearchCustomer", advSearchData));
        }
コード例 #2
0
        private IQueryable <Customer> SearchAssets(IDataTablesRequest requestModel, AdvSearchData searchViewModel, IQueryable <Customer> query)
        {
            // Apply filters
            if (requestModel.Search.Value != string.Empty)
            {
                var value = requestModel.Search.Value.Trim();
                query = query.Where(p => p.CustomerEmail.Contains(value) ||
                                    p.CustomerPhone.Contains(value) ||
                                    p.CustomerName.Contains(value) ||
                                    p.CustomerCountry.Contains(value)
                                    );
            }


            /***** Advanced Search ******/
            if (searchViewModel.CustomerEmail != null)
            {
                query = query.Where(x => x.CustomerEmail.Equals(searchViewModel.CustomerEmail));
            }

            if (searchViewModel.CustomerPhone != null)
            {
                query = query.Where(x => x.CustomerPhone.Equals(searchViewModel.CustomerPhone));
            }

            /***** Advanced Search ******/

            var filteredCount = query.Count();

            // Sort
            var sortedColumns = requestModel.Columns.GetSortedColumns();
            var orderByString = String.Empty;

            foreach (var column in sortedColumns)
            {
                orderByString += orderByString != String.Empty ? "," : "";
                orderByString += (column.Data) + (column.SortDirection == Column.OrderDirection.Ascendant ? " asc" : " desc");
            }

            //query = query.OrderBy(orderByString == string.Empty ? "BarCode asc" : orderByString);

            return(query);
        }
コード例 #3
0
        public ActionResult GetCustomers([ModelBinder(typeof(DataTablesBinder))] IDataTablesRequest requestModel, AdvSearchData searchViewModel)
        {
            IQueryable <Customer> query = _context.Customers;
            var totalCount = query.Count();

            // searching and sorting
            query = SearchAssets(requestModel, searchViewModel, query);
            var filteredCount = query.Count();



            // Paging
            query = query.OrderBy(m => m.ID).Skip(requestModel.Start).Take(requestModel.Length);



            var data = query.Select(CST => new
            {
                ID              = CST.ID,
                CustomerEmail   = CST.CustomerEmail,
                CustomerName    = CST.CustomerName,
                CustomerPhone   = CST.CustomerPhone,
                CustomerCountry = CST.CustomerCountry,
                CustomerImage   = CST.CustomerImage
                                  //Quantity = IJP,
            }).ToList();


            return(Json(new DataTablesResponse(requestModel.Draw, data, filteredCount, totalCount), JsonRequestBehavior.AllowGet));
        }