コード例 #1
0
        public ActionResult List(ListViewModel model)
        {
            // filter bilgilerinin default boş değerlerle doldurulması sağlanıyor
            if (model.Filter == null)
            {
                model.Filter = new ListFilterViewModel();
            }

            if (!model.CurrentPage.HasValue)
            {
                model.CurrentPage = 1;
            }

            if (!model.PageSize.HasValue)
            {
                model.PageSize = 10;
            }

            RoomSearchFilter searchFilter = new RoomSearchFilter();

            searchFilter.CurrentPage   = model.CurrentPage.HasValue ? model.CurrentPage.Value : 1;
            searchFilter.PageSize      = model.PageSize.HasValue ? model.PageSize.Value : 10;
            searchFilter.SortOn        = model.SortOn;
            searchFilter.SortDirection = model.SortDirection;
            searchFilter.Filter_Name   = model.Filter.Filter_Name;
            model.DataList             = _roomService.GetAllPaginatedWithDetailBySearchFilter(searchFilter);
            return(View(model));
        }
コード例 #2
0
        public async Task <HttpResponseMessage> Get(RoomSearchFilter filter)
        {
            if (filter != null)
            {
                var session = (Session)ContextOperator.Get(ContextKeys.SESSION_ID);
                filter.CompanyId = session.CompanyId;
                filter.UserId    = session.UserId;
                var collection = await Task.Run(() => { return(this._roomService.Get(filter)); });

                return(Request.CreateResponse(HttpStatusCode.OK, new ResponseMessage <object>(true, "Succeeded", collection)));
            }
            return(await Task.Run(() => Request.CreateResponse(HttpStatusCode.OK, new ResponseMessage <object>(false, MessageString.INVALID_REQUEST_PARMS, null))));
        }
コード例 #3
0
        public PaginatedList <Room> GetAllPaginatedWithDetailBySearchFilter(RoomSearchFilter searchFilter)
        {
            PaginatedList <Room> resultList = new PaginatedList <Room>(new List <Room>(), 0, searchFilter.CurrentPage, searchFilter.PageSize, searchFilter.SortOn, searchFilter.SortDirection);

            using (AppDBContext dbContext = new AppDBContext(_config))
            {
                var query = from a in dbContext.Room
                            select a;

                // filtering
                if (!string.IsNullOrEmpty(searchFilter.Filter_Name))
                {
                    query = query.Where(r => r.Name.Contains(searchFilter.Filter_Name));
                }

                // asnotracking
                query = query.AsNoTracking();

                //total count
                var totalCount = query.Count();

                //sorting
                if (!string.IsNullOrEmpty(searchFilter.SortOn))
                {
                    // using System.Linq.Dynamic.Core; nuget paketi ve namespace eklenmelidir, dynamic order by yapmak icindir
                    query = query.OrderBy(searchFilter.SortOn + " " + searchFilter.SortDirection.ToUpper());
                }
                else
                {
                    // deefault sıralama vermek gerekiyor yoksa skip metodu hata veriyor ef 6'da -- 28.10.2019 15:40
                    // https://stackoverflow.com/questions/3437178/the-method-skip-is-only-supported-for-sorted-input-in-linq-to-entities
                    query = query.OrderBy(r => r.Id);
                }

                //paging
                query = query.Skip((searchFilter.CurrentPage - 1) * searchFilter.PageSize).Take(searchFilter.PageSize);


                resultList = new PaginatedList <Room>(
                    query.ToList(),
                    totalCount,
                    searchFilter.CurrentPage,
                    searchFilter.PageSize,
                    searchFilter.SortOn,
                    searchFilter.SortDirection
                    );
            }

            return(resultList);
        }
コード例 #4
0
        public ActionResult List()
        {
            ListViewModel model = new ListViewModel();

            model.Filter      = new ListFilterViewModel();
            model.CurrentPage = 1;
            model.PageSize    = 10;
            RoomSearchFilter searchFilter = new RoomSearchFilter();

            searchFilter.CurrentPage   = model.CurrentPage.HasValue ? model.CurrentPage.Value : 1;
            searchFilter.PageSize      = model.PageSize.HasValue ? model.PageSize.Value : 10;
            searchFilter.SortOn        = model.SortOn;
            searchFilter.SortDirection = model.SortDirection;
            searchFilter.Filter_Name   = model.Filter.Filter_Name;

            model.DataList = _roomService.GetAllPaginatedWithDetailBySearchFilter(searchFilter);
            return(View(model));
        }
コード例 #5
0
        public IEnumerable <Room> Get(RoomSearchFilter filter)
        {
            try
            {
                if (filter == null)
                {
                    throw new ArgumentNullException("filter");
                }

                if (string.IsNullOrEmpty(filter.CompanyId))
                {
                    throw new ArgumentNullException("CompanyId");
                }

                if (string.IsNullOrEmpty(filter.Keyword))
                {
                    filter.Keyword = "*";
                }

                if (filter.Take <= 0)
                {
                    filter.Take = 100;
                }

                Expression <Func <Room, bool> > predicate = x =>
                                                            x.CompanyId == filter.CompanyId && x.Status == (byte)StatusType.Active &&
                                                            (filter.Keyword == "*" || x.Name.StartsWith(filter.Keyword));

                if (!string.IsNullOrEmpty(filter.StoreId))
                {
                    predicate = predicate.And(x => x.StoreId == filter.StoreId);
                }

                return(this._roomRepository.Find(predicate).Skip(filter.Start).Take(filter.Take).ToList());
            }
            catch (Exception ex)
            {
                throw;
            }
        }