private void AppendLookupQueryIfApplicable(SPSiteDataQuery dq) { if (!IsLookupQuery()) { return; } var queryXml = new XmlDocument(); queryXml.LoadXml(dq.Query); LookupFilterHelper.AppendLookupQueryToExistingQuery(ref queryXml, ChartLookupField, ChartLookupFieldList); dq.Query = queryXml.OuterXml; }
internal static void ProcessWeb( SPWeb web, SortedList <string, int> statusList, string rollupList, ref string errors, Func <XmlDocument, SPList, SPWeb, string> processReportFilterFunc, Action <DataTable> processListAction, string propList, string propView, string propStatus, string lookupField, string lookupFieldList) { try { var siteUrl = web.ServerRelativeUrl.Substring(1); var list = web.GetListFromUrl(propList); var view = list.Views[propView]; var spQuery = view.Query; var spField = list.Fields.GetFieldByInternalName(propStatus); PopulateStatusList(statusList, spField); var dqFields = string.Format("<FieldRef Name='{0}' Nullable='TRUE'/>", propStatus); var dQuery = string.Empty; var doc = new XmlDocument(); doc.LoadXml(string.Format("<Query>{0}</Query>", view.Query)); var reportInternal = processReportFilterFunc?.Invoke(doc, list, web); LookupFilterHelper.AppendLookupQueryToExistingQuery(ref doc, lookupField, lookupFieldList); var ndWhere = setupWhereNode(doc, reportInternal); ProcessList(web, rollupList, ref errors, processListAction, propStatus, ndWhere, dQuery, siteUrl, dqFields, list); } catch (Exception ex) { Trace.TraceError("Exception Suppressed {0}", ex); errors += string.Format("General Error: {0}<br>", ex.Message); } }