Beispiel #1
0
        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;
 }