コード例 #1
0
        public BaseTableViewModel <ModelAlbum> GetAlbumList(TableFilterModel data, Language lang)
        {
            var result = new BaseTableViewModel <ModelAlbum>();

            using (var db = new DataContext())
            {
                var query = db.AlbumLanguages.Include(x => x.Album)
                            .Where(x => x.LanguageId == lang.Id && x.Album.ParentId == null)
                            .OrderByDescending(x => x.Album.CreateDate).ToList();

                var countRow = query.Count();
                result.CountPage = data.PageSize != 0 ? (int)(Math.Ceiling(countRow / (decimal)data.PageSize)) : 1;
                var currentPage = result.CountPage < data.CurrentPage - 1 ? result.CountPage : data.CurrentPage - 1;
                result.CountItems = countRow;
                result.List       = query.Skip(data.PageSize * (currentPage)).Take(data.PageSize).ToList()
                                    .Select(x => new ModelAlbum()
                {
                    Id         = x.AlbumId,
                    Name       = x.Name,
                    Descrition = x.Descrition,
                    CreateDate = x.Album.CreateDate,
                    PhotoName  = x.Album.PhotoName
                }).ToList();
                return(result);
            }
        }
コード例 #2
0
        public void MultipleOrderDataSet(TableFilterModel tableFilterPayload)
        {
            tableFilterPayload.MultiSortMeta.Select((value, i) => new { i, value }).ToList().ForEach(o =>
            {
                switch (o.value.Order)
                {
                case (int)SortingEnumeration.OrderByAsc:
                    if (o.i == 0)
                    {
                        _linqOperator.OrderBy(o.value.Field.FirstCharToUpper());
                    }
                    else
                    {
                        _linqOperator.ThenBy(o.value.Field.FirstCharToUpper());
                    }
                    break;

                case (int)SortingEnumeration.OrderByDesc:
                    if (o.i == 0)
                    {
                        _linqOperator.OrderByDescending(o.value.Field.FirstCharToUpper());
                    }
                    else
                    {
                        _linqOperator.ThenByDescending(o.value.Field.FirstCharToUpper());
                    }
                    break;

                default:
                    throw new System.ArgumentException("Invalid Sort Order!");
                }
            });
        }
コード例 #3
0
        public async Task <ActionResult <List <LogLineModel> > > GetAll([FromQuery] TableFilterModel filterModel, CancellationToken cancellationToken)
        {
            var filderDataModel = this.mapper.Map <TableFilterDataModel>(filterModel);
            var logLinesData    = await this.logLineService.GetAll(filderDataModel, cancellationToken);

            return(this.mapper.Map <List <LogLineModel> >(logLinesData));
        }
コード例 #4
0
        public static IEnumerable <T> PrimengTableFilter <T>(this IEnumerable <T> dataSet,
                                                             TableFilterModel tableFilterPayload, out int totalRecord)
        {
            var resultSet = dataSet.AsQueryable();

            resultSet = resultSet.PrimengTableFilter(tableFilterPayload, out totalRecord);
            return(resultSet.AsEnumerable());
        }
コード例 #5
0
        // GET: Gallery
        public ActionResult Index(TableFilterModel data)
        {
            var model = new ModelGallery()
            {
                Seo = MainServices.Modules.GetCurrentPageSeo(CurrentLang.Id, EnumSitePage.Gallery),
                //Albums = MainServices.Albums.GetAlbumList(data,CurrentLang),
                Videos = MainServices.Albums.GetGalleryVideos(CurrentLang)
            };

            return(View(model));
        }
コード例 #6
0
 public JsonResult GetNewsList(TableFilterModel data)
 {
     try
     {
         var listPage = MainServices.News.GetNewsList(data, CurrentLang);
         return(Json(listPage));
     }
     catch (Exception ex)
     {
         return(Json(new { Result = "ERROR", ex.Message }));
     }
 }
コード例 #7
0
        public void SingleOrderDataSet(TableFilterModel tableFilterPayload)
        {
            switch (tableFilterPayload.SortOrder)
            {
            case (int)SortingEnumeration.OrderByAsc:
                _linqOperator.OrderBy(tableFilterPayload.SortField.FirstCharToUpper());
                break;

            case (int)SortingEnumeration.OrderByDesc:
                _linqOperator.OrderByDescending(tableFilterPayload.SortField.FirstCharToUpper());
                break;

            default:
                throw new System.ArgumentException("Invalid Sort Order!");
            }
        }
コード例 #8
0
        public IActionResult Index([FromBody] TableFilterModel tableFilterPayload)
        {
            var totalRecord = 0;
            var result      = _webBoardRepository
                              .Gets()
                              .Select(o => new WebBoardViewModel
            {
                No       = o.No,
                Question = o.Question,
                Email    = o.Email,
                Name     = o.Name
            })
                              .PrimengTableFilter(tableFilterPayload, ref totalRecord);

            return(Ok(new GenericResponseViewModel <List <WebBoardViewModel> >(totalRecord, result.ToList())));
        }
コード例 #9
0
        public static IQueryable <T> PrimengTableFilter <T>(this IQueryable <T> dataSet,
                                                            TableFilterModel tableFilterPayload, out int totalRecord)
        {
            ITableFilterManager <T> tableFilterManager = new TableFilterManager <T>(dataSet);


            if (tableFilterPayload.Filters != null && tableFilterPayload.Filters.Any())
            {
                foreach (var filterContext in tableFilterPayload.Filters)
                {
                    var filterPayload = filterContext.Value.ToString();
                    var filterToken   = JToken.Parse(filterPayload);
                    switch (filterToken)
                    {
                    case JArray _:
                    {
                        var filters = filterToken.ToObject <List <TableFilterContext> >();
                        tableFilterManager.FiltersDataSet(filterContext.Key, filters);
                        break;
                    }

                    case JObject _:
                    {
                        var filter = filterToken.ToObject <TableFilterContext>();
                        tableFilterManager.FilterDataSet(filterContext.Key, filter);
                        break;
                    }
                    }
                }
                tableFilterManager.ExecuteFilter();
            }

            if (!string.IsNullOrEmpty(tableFilterPayload.SortField))
            {
                tableFilterManager.SingleOrderDataSet(tableFilterPayload);
            }

            if (tableFilterPayload.MultiSortMeta != null && tableFilterPayload.MultiSortMeta.Any())
            {
                tableFilterManager.MultipleOrderDataSet(tableFilterPayload);
            }

            dataSet     = tableFilterManager.GetResult();
            totalRecord = dataSet.Count();
            dataSet     = dataSet.Skip(tableFilterPayload.First).Take(tableFilterPayload.Rows);
            return(dataSet);
        }
コード例 #10
0
        public BaseTableViewModel <ModelNews> GetNewsList(TableFilterModel data, Language lang)
        {
            var result = new BaseTableViewModel <ModelNews>();

            using (var db = new DataContext())
            {
                var query = db.NewsLanguages.Include(x => x.News)
                            .Where(x => x.LanguageId == lang.Id).OrderByDescending(x => x.News.CreateDate).ToList();

                var countRow = query.Count();
                result.CountPage = data.PageSize != 0 ? (int)(Math.Ceiling(countRow / (decimal)data.PageSize)) : 1;
                var currentPage = result.CountPage < data.CurrentPage - 1 ? result.CountPage : data.CurrentPage - 1;
                result.CountItems = countRow;
                result.List       = query.Skip(data.PageSize * (currentPage)).Take(data.PageSize).ToList()
                                    .Select(x => ConverToModelNews(x)).ToList();
                return(result);
            }
        }