/// <summary> /// Возвращает объект типа <see cref="DataTable" /> с данными. Исходя из фильтра SQL. /// </summary> /// <param name="spList"></param> /// <param name="spQuery">Объект <see cref="SPQuery" />, необходим для енерации запроса в БД.</param> /// <param name="currentUser"> /// Текущий полльзователь, объект <see cref="SPUser" />, используется для расчёта доступа к /// элементам списка. /// </param> /// <returns>Возвращает собранный объект <see cref="DataTable" /> с данными.</returns> public static DataTable GetDataTable(SPList spList, SPQuery spQuery, SPUser currentUser) { ViewOverrider overrider = new ViewOverrider(spList, spQuery, currentUser); DataTable dataTable = overrider.BuildDataTable(); return(dataTable); }
/// <summary> /// Позволяет сгенерировать объект настроек <see cref="ViewOverriderSettings" />, на основе объекта /// <see cref="SPView" /> и полльзователя <see cref="SPUser" />. /// </summary> /// <param name="spView">Объект <see cref="SPView" />, необходим для генерации настроек.</param> /// <param name="currentUser"> /// Текущий полльзователь, объект <see cref="SPUser" />, используется для расчёта доступа к /// элементам списка. /// </param> /// <returns>Объект <see cref="ViewOverriderSettings" />.</returns> public static ViewOverriderSettings CreateViewSettings(SPView spView, SPUser currentUser) { ViewOverrider viewOverrider = new ViewOverrider(spView, currentUser); string sqlFilterString; HeadList gridSettings = viewOverrider.BuildSettings(out sqlFilterString); ViewOverriderSettings settings = new ViewOverriderSettings { GridSettings = gridSettings, SqlFilters = sqlFilterString }; return(settings); }
/// <summary> /// Возвращает объект типа <see cref="DataTableSource" /> с данными. Исходя из фильтра SQL. /// </summary> /// <param name="spView">Объект <see cref="SPView" />, необходим для валидации полей на отображении и в списке.</param> /// <param name="currentUser"> /// Текущий полльзователь, объект <see cref="SPUser" />, используется для расчёта доступа к /// элементам списка. /// </param> /// <param name="settings">Объект <see cref="ViewOverriderSettings" /> настроек.</param> /// <returns>Возвращает собранный объект <see cref="DataTableSource" /> с данными.</returns> public static DataTableSource GetDataTableBySettings(SPView spView, SPUser currentUser, ViewOverriderSettings settings) { string sqlFilters = settings.SqlFilters; if (SPContext.Current != null && SPContext.Current.Web != null && SPContext.Current.Web.CurrentUser != null) { string userValue = string.Format("'{0};#{1}'", SPContext.Current.Web.CurrentUser.ID, SPContext.Current.Web.CurrentUser.Name); sqlFilters = sqlFilters.Replace(ViewOverrider.SPUserTemplate, userValue); } ViewOverrider dataTableBySettings = new ViewOverrider(spView, currentUser, settings.GridSettings, sqlFilters); DataTableSource dataTableSource = dataTableBySettings.BuildDataTableSource(); return(dataTableSource); }