private ReferenceCitationItem getRCI() { ReferenceCitationItem rci = new ReferenceCitationItem(); try { rci.DocType = "MSWORD"; TextCitationItem currtci = null; WordHyperLink prevlink = null; int fieldDelCount = 0; List<int> listDeletedFields = new List<int>(); List<int> listNullURL = new List<int>(); int iLinkCount = editor.GetLinkCount(); for (int i = 1; i <= iLinkCount; i++) { try { WordHyperLink link = editor.GetLinkAt(i); if (link == null || link.URL == null) { listNullURL.Add(i); fieldDelCount++; prevlink = null; continue; } else if (Regex.Match(link.URL, @"pifolio\.com", RegexOptions.IgnoreCase).Success)//from wizfolio to pifolio { if (Regex.Match(link.URL, @"\?citation\=1&", RegexOptions.IgnoreCase).Success) { string strRangeText = string.Empty; if (prevlink == null) strRangeText = " "; else if (prevlink != null && prevlink.End != link.Start) strRangeText = editor.GetTextInRange(prevlink.End, link.Start); if (rci.TextCitations.Count == 0 || strRangeText.Length > 0) { currtci = new TextCitationItem(rci); rci.TextCitations.Add(currtci); } Dictionary<string, object> obj = CitationTools.ParseQueryString(link.URL); ItemMasterRow item = new ItemMasterRow(); item.UserID = obj["UserID"] + ""; item.ItemID = int.Parse(obj["ItemID"] + ""); item.AccessCode = obj["AccessCode"] + ""; currtci.AddItem(item, link.URL, i - fieldDelCount, ""); } else if (Regex.Match(link.URL, @"\?style\=1&", RegexOptions.IgnoreCase).Success) { if (rci.FieldIndex == -1) { rci.URL = link.URL; rci.FieldIndex = i - fieldDelCount; Dictionary<string, object> obj = CitationTools.ParseQueryString(link.URL); rci.StyleInfo = new StyleInformation(int.Parse(obj["UserID"] + ""), obj["StyleName"] + ""); if (rci.StyleInfo.UserID != -1) rci.UserList[rci.StyleInfo.UserID] = new User(rci.StyleInfo.UserID); } else { listDeletedFields.Add(i); fieldDelCount++; } } else { prevlink = null; continue; } prevlink = link; } else { prevlink = null; continue; } } catch (Exception ex) { log.WriteLine(LogType.Error, "DocumentFormatter::getRCI", ex.ToString()); } } fieldDelCount = 0; for (int i = 0; i < listNullURL.Count; i++) { editor.RemoveHyperLink(listNullURL[i] - fieldDelCount); fieldDelCount++; } for (int i = 0; i < listDeletedFields.Count; i++) { editor.RemoveCitation(listDeletedFields[i] - fieldDelCount); fieldDelCount++; } } catch(Exception ex) { log.WriteLine(LogType.Error, "DocumentFormatter::getRCI", ex.ToString()); } return rci; }
private string getInText(TextCitationItem tci) { string text = string.Empty; foreach (string formatstring in tci.FormatString) { text += formatstring; } return text; }
public TextCitationItem AddBlock() { TextCitationItem tci = new TextCitationItem(this); this.TextCitations.Add(tci); return tci; }