protected object GetAll(QueryExpression filter, IQueryable <EntityType> includedQuery)
        {
            var query  = includedQuery;
            var result = new PagingResultDto <DtoType>
            {
                Items = new List <DtoType>()
            };

            if (filter != null)
            {
                query = WhereExpression.AddWhereExpression(query, filter.WhereOptions);
                //query = OrderByExpression.AddOrderByExpression(query, filter.OrderOptions); //must order in client for perfomance
            }

            result.LastUpdateTime = DateTime.UtcNow.Ticks;
            foreach (var entity in query)
            {
                if (entity.LastUpdateTime <= result.LastUpdateTime)
                {
                    result.Items.Add(ConvertToDto(entity));
                }
            }

            return(result);
        }
Esempio n. 2
0
        public IActionResult MainListPartial()
        {
            UserFilterInput           filterInput  = GetFilterInSession <UserFilterInput>(ConstantConfig.SessionName.UserSession);
            PagingResultDto <UserDto> pagingResult = userService.GetAllByPaging(filterInput);

            return(PartialView(pagingResult));
        }
Esempio n. 3
0
        public IActionResult MainListPartial()
        {
            RoleFilterInput           filterInput  = GetFilterInSession <RoleFilterInput>(ConstantConfig.SessionName.RoleSession);
            PagingResultDto <RoleDto> pagingResult = roleService.GetAllByPaging(filterInput);

            return(PartialView(pagingResult));
        }
        protected SmtActionResult GetAll(QueryExpression filter, IQueryable <EntityType> includedQuery)
        {
            if (SmtSettings.Instance.AllowGetAllTables.Contains(GetTableName()) == false)
            {
                return(CreateObjectResult("", System.Net.HttpStatusCode.Forbidden));
            }

            var query  = includedQuery;
            var result = new PagingResultDto <DtoType>
            {
                Items = new List <DtoType>()
            };

            if (filter != null)
            {
                query = WhereExpression.AddWhereExpression(query, filter.WhereOptions);
                //query = OrderByExpression.AddOrderByExpression(query, filter.OrderOptions); //must order in client for perfomance
            }

            result.LastUpdateTime = DateTime.UtcNow.Ticks;
            foreach (var entity in query)
            {
                if (entity.LastUpdateTime <= result.LastUpdateTime)
                {
                    result.Items.Add(ConvertToDto(entity));
                }
            }

            return(CreateObjectResult(result));
        }
        public IActionResult MainListPartial()
        {
            MasterListGroupFilterInput           filterInput  = GetFilterInSession <MasterListGroupFilterInput>(ConstantConfig.SessionName.MasterListGroupSession);
            PagingResultDto <MasterListGroupDto> pagingResult = masterListGroupAdminService.GetAllByPaging(filterInput);

            return(PartialView(pagingResult));
        }
Esempio n. 6
0
        public IActionResult MainListPartial()
        {
            AdminMenuFilterInput           filterInput  = GetFilterInSession <AdminMenuFilterInput>(ConstantConfig.SessionName.AdminMenuSession);
            PagingResultDto <AdminMenuDto> pagingResult = adminMenuAdminService.GetAllByPaging(filterInput);

            ViewBag.AdminMenuCombobox = adminMenuAdminService.GetAdminMenusCombobox();
            return(PartialView(pagingResult));
        }
Esempio n. 7
0
        public IActionResult MainListPartial()
        {
            LanguageDetailFilterInput filterInput = GetFilterInSession <LanguageDetailFilterInput>(ConstantConfig.SessionName.LanguageDetailSession);

            ViewData["langCode"] = filterInput.LangCode;
            PagingResultDto <LanguageDetailDto> pagingResult = languageDetailService.GetAllByPaging(filterInput);

            return(PartialView(pagingResult));
        }
Esempio n. 8
0
        public IActionResult MainListPartial(string group = null)
        {
            MasterListFilterInput filterInput = GetFilterInSession <MasterListFilterInput>(ConstantConfig.SessionName.MasterListSession);

            filterInput.Group = group;
            ViewData["group"] = group;
            PagingResultDto <MasterListDto> pagingResult = masterListAdminService.GetAllByPaging(filterInput);

            return(PartialView(pagingResult));
        }
Esempio n. 9
0
        public PagingResultDto <RecommendDto> Get(int pageIndex, int pageSize, long questionId)
        {
            var result = new PagingResultDto <RecommendDto>();
            var data   = _recommendRepository.GetFiltered(o => o.QuestionId == questionId).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList().Select(item => _mapper.Map <RecommendDto>(item));

            result.Data    = data;
            result.Code    = BusinessCode.Successed;
            result.Message = string.Empty;
            result.Total   = _recommendRepository.GetFiltered(o => o.QuestionId == questionId).Count();
            return(result);
        }
Esempio n. 10
0
        public static PagingResultDto <TModel> PagedQuery <TModel>(this IQueryable <TModel> query, IPagingFilterDto pagingFilterDto)
        {
            if (pagingFilterDto.PageNumber <= 0)
            {
                pagingFilterDto.PageNumber = 1;
            }
            var result = new PagingResultDto <TModel>();

            InitPagedModel(query, pagingFilterDto, result);
            return(result);
        }
Esempio n. 11
0
        public PagingResultDto <RoleDto> GetAllByPaging(RoleFilterInput filterInput)
        {
            SetDefaultPageSize(filterInput);

            IQueryable <WebCoreRole> roleQuery = roleRepository.GetAll();

            roleQuery = roleQuery.Filter(filterInput);

            PagingResultDto <RoleDto> roleResult = roleQuery
                                                   .ProjectTo <RoleDto>(mapper.ConfigurationProvider)
                                                   .PagedQuery(filterInput);

            return(roleResult);
        }
Esempio n. 12
0
        public PagingResultDto <UserDto> GetAllByPaging(UserFilterInput filterInput)
        {
            SetDefaultPageSize(filterInput);

            IQueryable <WebCoreUser> userQuery = userRepository.GetAll();

            userQuery = userQuery.Filter(filterInput);

            PagingResultDto <UserDto> userResult = userQuery
                                                   .ProjectTo <UserDto>(mapper.ConfigurationProvider)
                                                   .PagedQuery(filterInput);

            return(userResult);
        }
        protected SmtActionResult Get(QueryExpression filter, IQueryable <EntityType> includedQuery)
        {
            int pageCount = 1;
            var query     = includedQuery;
            var result    = new PagingResultDto <DtoType>
            {
                Items = new List <DtoType>()
            };

            if (filter != null)
            {
                var maxItemAllowed = GetMaxItemAllowed();
                if (filter.PageSize > 0 && filter.PageSize <= maxItemAllowed)
                {
                    if (filter.PageIndex <= 0)//forced to use paging
                    {
                        filter.PageIndex = 1;
                    }

                    if (filter.OrderOptions.Count == 0)
                    {
                        filter.OrderOptions.Add(GetDefaultOrderOption());
                    }
                    query = QueryExpression.AddQueryExpression(
                        query, ref filter, out pageCount);

                    result.PageIndex = filter.PageIndex;
                    result.PageCount = pageCount;
                }
                else
                {
                    var msg = string.Format("PageSize must greater than zero and lower than {0}", maxItemAllowed + 1);
                    return(CreateObjectResult(msg, System.Net.HttpStatusCode.BadRequest));
                }
            }

            result.LastUpdateTime = DateTime.UtcNow.Ticks;
            foreach (var entity in query)
            {
                if (entity.LastUpdateTime <= result.LastUpdateTime)
                {
                    result.Items.Add(ConvertToDto(entity));
                }
            }

            return(CreateObjectResult(result));
        }
 public static PagingResultDto <IEnumerable <TData> > GetPagingResult <TData>(IEnumerable <TData> data, int PageNumber, int PageSize)
 {
     try
     {
         var TotalItemCount = data.Count();
         var Result         = new PagingResultDto <IEnumerable <TData> >();
         Result.CurrPage  = PageNumber;
         Result.TotalPage = (TotalItemCount % PageSize == 0
                    ? TotalItemCount / PageSize
                    : (TotalItemCount / PageSize) + 1);
         Result.Response = data.Skip(PageSize * PageNumber).Take(PageSize);
         return(Result);
     }
     catch (System.Exception ex)
     {
         throw ex;
     }
 }
Esempio n. 15
0
        public static PagingResultDto <T1> ProcessPagingResult <T, T1>(PagingResultDto <T> response) where T : IDto where T1 : IDataModel <T>, new()
        {
            var result = new PagingResultDto <T1>()
            {
                LastUpdateTime = response.LastUpdateTime,
                PageCount      = response.PageCount,
                PageIndex      = response.PageIndex,
                TotalItemCount = response.TotalItemCount
            };

            foreach (var item in response.Items)
            {
                var dataModel = new T1();
                dataModel.FromDto(item);
                dataModel.SetCurrentValueAsOriginalValue();
                result.Items.Add(dataModel);
            }

            return(result);
        }
        private PagingResultDto <T1> ProcessPagingResult <T, T1>(byte[] responseBytes) where T : IDto where T1 : IDataModel <T>, new()
        {
            var response = FromBytes <PagingResultDto <T> >(responseBytes);
            var result   = new PagingResultDto <T1>()
            {
                LastUpdateTime = response.LastUpdateTime,
                PageCount      = response.PageCount,
                PageIndex      = response.PageIndex,
                TotalItemCount = response.TotalItemCount
            };

            foreach (var item in response.Items)
            {
                var dataModel = new T1();
                dataModel.FromDto(item);
                dataModel.SetCurrentValueAsOriginalValue();
                result.Items.Add(dataModel);
            }

            _logger.LogInformation("Get {0} {1:N0} bytes {2:N0} Items", NameManager.Instance.GetControllerName <T, T1>(), responseBytes.LongLength, result.Items.Count);

            return(result);
        }
Esempio n. 17
0
        public static PagingResultDto <TModel> PagedQuery <TModel>(this IQueryable <TModel> query, IPagingFilterDto pagingFilterDto)
        {
            if (pagingFilterDto.PageNumber <= 0)
            {
                pagingFilterDto.PageNumber = 1;
            }
            var result = new PagingResultDto <TModel>();

            result.RowCount    = query.Count();
            result.PageSize    = pagingFilterDto.PageSize;
            result.CurrentPage = pagingFilterDto.PageNumber;

            var pageCount = (double)result.RowCount / result.PageSize;

            result.PageCount = (int)Math.Ceiling(pageCount);

            IQueryable <TModel> queryResultPage = query
                                                  .Skip((pagingFilterDto.PageNumber - 1) * pagingFilterDto.PageSize)
                                                  .Take(pagingFilterDto.PageSize);

            result.Items = queryResultPage.ToList();

            return(result);
        }
        protected SmtActionResult GetUpdate(QueryExpression filter, IQueryable <EntityType> includedQuery)
        {
            if (IsSupportGetUpdate() == false)
            {
                return(CreateObjectResult(null, System.Net.HttpStatusCode.NotImplemented));
            }

            if (filter == null)
            {
                var msg = string.Format(string.Format("Need specify {0} where options", nameof(IDto.LastUpdateTime)));
                return(CreateObjectResult(msg, System.Net.HttpStatusCode.BadRequest));
            }

            var lastUpdateWhereOption = filter.WhereOptions.Find(p => p.PropertyPath == nameof(IDto.LastUpdateTime));

            if (lastUpdateWhereOption == null)
            {
                var msg = string.Format(string.Format("Need specify {0} where options", nameof(IDto.LastUpdateTime)));
                return(CreateObjectResult(msg, System.Net.HttpStatusCode.BadRequest));
            }

            var query  = includedQuery;
            var result = new PagingResultDto <DtoType>
            {
                Items = new List <DtoType>()
            };
            var tableID = GetTableID();

            query = WhereExpression.AddWhereExpression(query, filter.WhereOptions);
            //query = OrderByExpression.AddOrderByExpression(query, filter.OrderOptions); //must order in client for perfomance

            var lastUpdate        = (long)lastUpdateWhereOption.GetValue();
            var deletedItemsQuery = DBContext.SmtDeletedItem.Where(p => p.TenantID == TokenModel.TenantID && p.TableID == tableID && p.CreateTime > lastUpdate);

            var itemCount = query.Count() + deletedItemsQuery.Count();
            var maxItem   = GetMaxItemAllowed();

            if (itemCount > maxItem)
            {
                var msg = string.Format("Entity set too large, max item allowed is {0}", maxItem);
                return(CreateObjectResult(msg, System.Net.HttpStatusCode.BadRequest));
            }

            result.LastUpdateTime = DateTime.UtcNow.Ticks;
            foreach (var entity in query)
            {
                if (entity.LastUpdateTime <= result.LastUpdateTime)
                {
                    var dto = ConvertToDto(entity);
                    dto.State = (dto.CreateTime > lastUpdate) ? DtoState.Add : DtoState.Update;
                    result.Items.Add(dto);
                }
            }
            foreach (var item in deletedItemsQuery)
            {
                if (item.CreateTime <= result.LastUpdateTime)
                {
                    result.Items.Add(new DtoType()
                    {
                        ID = item.DeletedID, State = DtoState.Delete, CreateTime = item.CreateTime
                    });
                }
            }
            return(CreateObjectResult(result));
        }
        protected object GetUpdate(QueryExpression filter, IQueryable <EntityType> includedQuery)
        {
            if (filter == null)
            {
                var msg = string.Format(string.Format("Need specify {0} where options", nameof(IDto.LastUpdateTime)));
                throw new Exception(msg);
            }

            var lastUpdateWhereOption = filter.WhereOptions.Find(p => p.PropertyPath == nameof(IDto.LastUpdateTime));

            if (lastUpdateWhereOption == null)
            {
                var msg = string.Format(string.Format("Need specify {0} where options", nameof(IDto.LastUpdateTime)));
                throw new Exception(msg);
            }

            var query     = includedQuery;
            var tableName = GetTableName();
            var result    = new PagingResultDto <DtoType>
            {
                Items = new List <DtoType>()
            };
            var tableID = _context.SmtTable.FirstOrDefault(p => p.TableName == tableName).ID;

            query = WhereExpression.AddWhereExpression(query, filter.WhereOptions);
            //query = OrderByExpression.AddOrderByExpression(query, filter.OrderOptions); //must order in client for perfomance

            var lastUpdate        = (long)lastUpdateWhereOption.GetValue();
            var deletedItemsQuery = _context.SmtDeletedItem.Where(p => p.TableID == tableID && p.TenantID == LoginToken.Instance.TenantID && p.CreateTime > lastUpdate);

            var itemCount = query.Count() + deletedItemsQuery.Count();
            var maxItem   = GetMaxItemAllowed();

            if (itemCount > maxItem)
            {
                var msg = string.Format("Entity set too large, max item allowed is {0}", maxItem);
                throw new Exception(msg);
            }

            result.LastUpdateTime = DateTime.UtcNow.Ticks;
            foreach (var entity in query)
            {
                if (entity.LastUpdateTime <= result.LastUpdateTime)
                {
                    var dto = ConvertToDto(entity);
                    dto.State = (dto.CreateTime > lastUpdate) ? DtoState.Add : DtoState.Update;
                    result.Items.Add(dto);
                }
            }
            foreach (var item in deletedItemsQuery)
            {
                if (item.CreateTime <= result.LastUpdateTime)
                {
                    result.Items.Add(new DtoType()
                    {
                        ID = item.DeletedID, State = DtoState.Delete, CreateTime = item.CreateTime
                    });
                }
            }
            return(result);
        }
Esempio n. 20
0
        private static void InitPagedModel <TModel>(this IQueryable <TModel> query, IPagingFilterDto pagingFilterDto, PagingResultDto <TModel> pagingModel)
        {
            pagingModel.RowCount    = query.Count();
            pagingModel.PageSize    = pagingFilterDto.PageSize;
            pagingModel.CurrentPage = pagingFilterDto.PageNumber;

            var pageCount = (double)pagingModel.RowCount / pagingModel.PageSize;

            pagingModel.PageCount = (int)Math.Ceiling(pageCount);

            IQueryable <TModel> queryResultPage = query
                                                  .Skip((pagingFilterDto.PageNumber - 1) * pagingFilterDto.PageSize)
                                                  .Take(pagingFilterDto.PageSize);

            pagingModel.Items = queryResultPage.ToList();
        }