public override void Load(SPList list, string query, IEnumerable <CultureInfo> cultures) { Index.Clear(); Items.Clear(); if (cultures != null) { if (list != null) { var contentIterator = new ListContentIterator { StrictQuerySemantics = false }; contentIterator.ProcessListItems(list, query, 200, true, delegate(SPListItemCollection items) { foreach (SPListItem item in items) { var translationItems = new Dictionary <string, string>(); foreach (var cultureInfo in cultures) { string twoLetterIsoLanguageName = Languages.Instance.GetBackwardCompatibilityLanguageCode(cultureInfo.TwoLetterISOLanguageName.ToUpper()); if (item.Fields.ContainsField(twoLetterIsoLanguageName)) { string valueOriginal = item[twoLetterIsoLanguageName] != null ? item[twoLetterIsoLanguageName].ToString() : string.Empty; string value = valueOriginal.Replace("$$SPS_URL:", string.Empty); int indexUrl = value.IndexOf("$$"); if (indexUrl != -1) { value = value.Substring(indexUrl + 2); } if (!string.IsNullOrEmpty(value)) { translationItems[twoLetterIsoLanguageName] = value; Index.IndexItem(item.ID, value); } } } Items[item.ID] = translationItems; } }, null); } } }
public override void Load(SPList list, string query, IEnumerable <CultureInfo> cultures) { base.Load(list, query, cultures); Items.Clear(); if (cultures != null) { if (list != null) { var contentIterator = new ListContentIterator { StrictQuerySemantics = false }; contentIterator.ProcessListItems(list, query, 200, true, delegate(SPListItemCollection items) { SPSecurity.RunWithElevatedPrivileges(delegate { foreach (SPListItem item in items) { var translationItems = new Dictionary <string, string>(); foreach (var cultureInfo in cultures) { string twoLetterIsoLanguageName = Languages.Instance.GetBackwardCompatibilityLanguageCode(cultureInfo.TwoLetterISOLanguageName.ToUpper()); if (item.Fields.ContainsField(twoLetterIsoLanguageName)) { string value = item[twoLetterIsoLanguageName] != null ? item[twoLetterIsoLanguageName].ToString() : string.Empty; if (!string.IsNullOrEmpty(value)) { translationItems[twoLetterIsoLanguageName] = value; Index.IndexItem(item.ID, value); } } } Items[item.ID] = translationItems; } }); }, null); } } }
public override void Load(SPList list, string query, IEnumerable <CultureInfo> cultures) { base.Load(list, query, cultures); _items.Clear(); if (cultures != null) { if (list != null) { var contentIterator = new ListContentIterator { StrictQuerySemantics = false }; contentIterator.ProcessListItems(list, query, 200, true, delegate(SPListItemCollection items) { foreach (SPListItem item in items) { foreach (var cultureInfo in cultures) { string twoLetterIsoLanguageName = Languages.Instance.GetBackwardCompatibilityLanguageCode(cultureInfo.TwoLetterISOLanguageName.ToUpper()); if (item.Fields.ContainsField(twoLetterIsoLanguageName)) { const string TagUrl = "$$SPS_URL:"; string valueOriginal = item[twoLetterIsoLanguageName] != null ? item[twoLetterIsoLanguageName].ToString() : string.Empty; string siteUrl = valueOriginal.Replace(TagUrl, string.Empty); int indexUrl = siteUrl.IndexOf("$$"); if (indexUrl != -1) { siteUrl = siteUrl.Substring(0, indexUrl).ToLower(); } if (!string.IsNullOrEmpty(siteUrl)) { if (!_items.ContainsKey(siteUrl)) { string urlQuery = valueOriginal.Substring(0, siteUrl.Length + TagUrl.Length + 2); string defaultLanguage = query.Replace("<Where><Contains><FieldRef Name=\'", string.Empty); defaultLanguage = defaultLanguage.Substring(0, defaultLanguage.IndexOf("\'/><Value Type=\'Text\'>")); string subQuery = "<Where><Contains><FieldRef Name=\'" + defaultLanguage + "\'/><Value Type=\'Text\'>" + urlQuery + "</Value></Contains></Where>" + ListContentIterator.ItemEnumerationOrderById; var siteDictionary = MultipleWordTranslationDictionary.LoadDictionary(siteUrl, _url, _listName, subQuery); _items[siteUrl] = siteDictionary; } } } } } }, null); } } }
public override void Load(SPList list, string query, IEnumerable <CultureInfo> cultures) { base.Load(list, query, cultures); _items.Clear(); if (cultures != null) { if (list != null) { var contentIterator = new ListContentIterator { StrictQuerySemantics = false }; contentIterator.ProcessListItems(list, query, 200, true, delegate(SPListItemCollection items) { foreach (SPListItem item in items) { var translationItems = new Dictionary <string, string[]>(); foreach (var cultureInfo in cultures) { string twoLetterIsoLanguageName = Languages.Instance.GetBackwardCompatibilityLanguageCode(cultureInfo.TwoLetterISOLanguageName.ToUpper()); if (item.Fields.ContainsField(twoLetterIsoLanguageName)) { string valueOriginal = item[twoLetterIsoLanguageName] != null ? item[twoLetterIsoLanguageName].ToString() : string.Empty; string value = valueOriginal.Replace("***", ";"); if (!string.IsNullOrEmpty(value)) { string[] subValues = value.Split(';'); for (int i = 0; i < subValues.Length; i++) { subValues[i] = subValues[i].Trim(); } translationItems[twoLetterIsoLanguageName] = subValues; if (valueOriginal.Substring(0, 1).Contains("*")) { _startingWildcardIndex.IndexItem(item.ID, valueOriginal.Substring(0, 1)); } else { Index.IndexItem(item.ID, valueOriginal.Substring(0, 1)); } } } } _items[item.ID] = translationItems; } }, null); } } }