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); }
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); }