Exemple #1
0
        public static MdsGridViewDapperModel GetMdsGridViewDapperModel(TsqlGridViewConditions model, KeyValuePair <string, SortDirectionEnum> defaultSort, Dictionary <string, string> aliasDictionary)
        {
            if (model == null)
            {
                model = new TsqlGridViewConditions();
            }
            model.Page = model.Page <= 0 ? 1 : model.Page;
            var whereConditions = GetMdsGridViewWhereConditions(model.WhereConditions, aliasDictionary);
            var parameters      = new DynamicParameters();

            if (!string.IsNullOrWhiteSpace(whereConditions.WhereString))
            {
                parameters.AddDynamicParams(whereConditions.Params);
            }
            parameters.Add("firstRowNumber", GetFirstRowNumber(model.Page, model.ItemsPerPage));
            parameters.Add("lastRowNumber", GetLastRowNumber(model.Page, model.ItemsPerPage));
            whereConditions.Params     = parameters;
            whereConditions.SortString = GetSortString(model.SortConditions, defaultSort, aliasDictionary);
            return(whereConditions);
        }
Exemple #2
0
        public static MdsGridViewModel <Dictionary <object, object> > GetMdsGridViewModel <T>(TsqlGridViewConditions model,
                                                                                              Func <TsqlGridViewConditions, int> selectCount,
                                                                                              Func <TsqlGridViewConditions, List <T> > selectAll,
                                                                                              Action <T> processRecord = null)
        {
            var gridViewModel = new MdsGridViewModel <Dictionary <object, object> >
            {
                CurrentPage = model.Page,
                Rows        = new List <Dictionary <object, object> >(),
                TotalRows   = selectCount(model)
            };
            var rowNumber = GetFirstRowNumber(model.Page, model.ItemsPerPage);

            if (gridViewModel.TotalRows <= model.ItemsPerPage)
            {
                model.Page = 1;
            }
            var records = selectAll(model);

            if (records.Count <= 0)
            {
                model.Page = 1;
                gridViewModel.CurrentPage = 1;
                records = selectAll(model);
            }
            foreach (var record in records)
            {
                processRecord?.Invoke(record);
                var dictionary = GetDictionaries(record);
                dictionary.Add("#", rowNumber.ToString().ToCurrentCultureNumber());
                gridViewModel.Rows.Add(dictionary);
                rowNumber++;
            }
            return(gridViewModel);
        }