public PM.ContentItem PreProcess(DE.Style style, PM.ContentItem contentItem)
        {
            switch (style)
            {
            case DE.Style.Unknown:
                // Do Nothing
                break;

            case DE.Style.MLA7:
            case DE.Style.MLA8:
                contentItem = PreProcessMLA(contentItem);
                break;

            case DE.Style.APA5:
            case DE.Style.APA6:
            case DE.Style.APA7:
                contentItem = PreProcessAPA(contentItem);
                break;

            case DE.Style.Chicago17:
                contentItem = PreProcessChicago(contentItem);
                break;

            case DE.Style.Harvard10:
            case DE.Style.ASA6:
            case DE.Style.Turabian8:
                // Do Nothing
                break;

            default:
                throw new NotImplementedException();
            }

            return(contentItem);
        }
        private static PM.ContentItem PreProcessAPA(PM.ContentItem contentItem)
        {
            if (contentItem != null && !string.IsNullOrEmpty(contentItem.PublisherName))
            {
                Dictionary <string, string> terms = new Dictionary <string, string>();

                Dictionary <string, string> prefixes = new Dictionary <string, string>();

                Dictionary <string, string> suffixes = new Dictionary <string, string>();
                suffixes.Add(" Publishing", string.Empty);
                suffixes.Add(" Publishers", string.Empty);
                suffixes.Add(" Publisher", string.Empty);
                suffixes.Add(" Pub.", string.Empty);
                suffixes.Add(" Pub", string.Empty);
                suffixes.Add(" And Companies", string.Empty);
                suffixes.Add(" And Company", string.Empty);
                suffixes.Add(" And Co.", string.Empty);
                suffixes.Add(" And Co", string.Empty);
                suffixes.Add(" & Companies", string.Empty);
                suffixes.Add(" & Company", string.Empty);
                suffixes.Add(" & Co.", string.Empty);
                suffixes.Add(" & Co", string.Empty);
                suffixes.Add(" Companies", string.Empty);
                suffixes.Add(" Company", string.Empty);
                suffixes.Add(" Co.", string.Empty);
                suffixes.Add(" Co", string.Empty);
                suffixes.Add(" Incorporated", string.Empty);
                suffixes.Add(" Inc.", string.Empty);
                suffixes.Add(" Inc", string.Empty);

                contentItem.PublisherName = ReplaceMappings(contentItem.PublisherName, terms, prefixes, suffixes);
            }

            return(contentItem);
        }
Exemplo n.º 3
0
 internal List <PM.ContentItem> PreProcessCitation(DE.Style style, List <PM.ContentItem> contentItems)
 {
     if (contentItems != null)
     {
         List <PM.ContentItem> results = new List <PM.ContentItem>();
         foreach (PM.ContentItem contentItem in contentItems)
         {
             if (contentItem != null)
             {
                 PM.ContentItem result = contentItem;
                 _overridesCitation.ForEach(x => result = x.PreProcess(style, result));
                 results.Add(result);
             }
             else
             {
                 results.Add(contentItem);
             }
         }
         return(results);
     }
     else
     {
         return(contentItems);
     }
 }
        private static PM.ContentItem PreProcessChicago(PM.ContentItem contentItem)
        {
            if (contentItem != null && !string.IsNullOrEmpty(contentItem.PublisherName))
            {
                Dictionary <string, string> terms = new Dictionary <string, string>();

                Dictionary <string, string> prefixes = new Dictionary <string, string>();
                prefixes.Add("The ", string.Empty);

                Dictionary <string, string> suffixes = new Dictionary <string, string>();
                suffixes.Add(" Publishing", string.Empty);
                suffixes.Add(" Publishers", string.Empty);
                suffixes.Add(" Publisher", string.Empty);
                suffixes.Add(" Pub.", string.Empty);
                suffixes.Add(" Pub", string.Empty);
                suffixes.Add(" And Companies", string.Empty);
                suffixes.Add(" And Company", string.Empty);
                suffixes.Add(" And Co.", string.Empty);
                suffixes.Add(" And Co", string.Empty);
                suffixes.Add(" & Companies", string.Empty);
                suffixes.Add(" & Company", string.Empty);
                suffixes.Add(" & Co.", string.Empty);
                suffixes.Add(" & Co", string.Empty);
                suffixes.Add(" Companies", string.Empty);
                suffixes.Add(" Company", string.Empty);
                suffixes.Add(" Co.", string.Empty);
                suffixes.Add(" Co", string.Empty);
                suffixes.Add(" Incorporated", string.Empty);
                suffixes.Add(" Inc.", string.Empty);
                suffixes.Add(" Inc", string.Empty);
                suffixes.Add(" Limited", string.Empty);
                suffixes.Add(" Ltd.", string.Empty);
                suffixes.Add(" Ltd", string.Empty);
                suffixes.Add(" Société à Responsibilité Limitée", string.Empty);
                suffixes.Add(" SARL", string.Empty);
                suffixes.Add(" Société par Actions Simplifiée", string.Empty);
                suffixes.Add(" SAS", string.Empty);
                suffixes.Add(" Société Anonyme", string.Empty);
                suffixes.Add(" SA", string.Empty);

                contentItem.PublisherName = ReplaceMappings(contentItem.PublisherName, terms, prefixes, suffixes);
            }

            return(contentItem);
        }
        public PM.ContentItem PreProcess(DE.Style style, PM.ContentItem contentItem)
        {
            if (contentItem != null)
            {
                if (!string.IsNullOrEmpty(contentItem.PageNumber) && contentItem.PageNumber.EndsWith("+"))
                {
                    int    hash1       = Math.Abs(Guid.NewGuid().GetHashCode());
                    int    hash2       = Math.Abs(Guid.NewGuid().GetHashCode());
                    string replacement = string.Concat(Math.Min(hash1, hash2).ToString(),
                                                       ", ",
                                                       Math.Max(hash1, hash2).ToString());
                    _mappings.Add(replacement, contentItem.PageNumber);
                    contentItem.PageNumber = replacement;
                }
            }

            return(contentItem);
        }
        private static PM.ContentItem PreProcessMLA(PM.ContentItem contentItem)
        {
            if (contentItem != null && !string.IsNullOrEmpty(contentItem.PublisherName))
            {
                Dictionary <string, string> terms = new Dictionary <string, string>();
                terms.Add("University Press", "UP");

                Dictionary <string, string> prefixes = new Dictionary <string, string>();
                prefixes.Add("University of ", "U of ");

                Dictionary <string, string> suffixes = new Dictionary <string, string>();
                suffixes.Add(" Press", " P");
                suffixes.Add(" And Companies", string.Empty);
                suffixes.Add(" And Company", string.Empty);
                suffixes.Add(" And Co.", string.Empty);
                suffixes.Add(" And Co", string.Empty);
                suffixes.Add(" & Companies", string.Empty);
                suffixes.Add(" & Company", string.Empty);
                suffixes.Add(" & Co.", string.Empty);
                suffixes.Add(" & Co", string.Empty);
                suffixes.Add(" Companies", string.Empty);
                suffixes.Add(" Company", string.Empty);
                suffixes.Add(" Co.", string.Empty);
                suffixes.Add(" Co", string.Empty);
                suffixes.Add(" Corporations", string.Empty);
                suffixes.Add(" Corporation", string.Empty);
                suffixes.Add(" Corp.", string.Empty);
                suffixes.Add(" Corp", string.Empty);
                suffixes.Add(" Incorporated", string.Empty);
                suffixes.Add(" Inc.", string.Empty);
                suffixes.Add(" Inc", string.Empty);
                suffixes.Add(" Limited", string.Empty);
                suffixes.Add(" Ltd.", string.Empty);
                suffixes.Add(" Ltd", string.Empty);

                contentItem.PublisherName = ReplaceMappings(contentItem.PublisherName, terms, prefixes, suffixes);
            }

            return(contentItem);
        }