private string GenerateReference(ResourceReferenceCreator.UriSyntax uriSyntax)
        {
            switch (uriSyntax)
            {
            case ResourceReferenceCreator.UriSyntax.None:
            {
                return(this.CreateNoneReference());
            }

            case ResourceReferenceCreator.UriSyntax.Relative:
            {
                return(this.CreateRelativeReference());
            }

            case ResourceReferenceCreator.UriSyntax.RelativePackUri:
            {
                return(this.CreateRelativePackUriReference());
            }

            case ResourceReferenceCreator.UriSyntax.ComponentPackUri:
            {
                return(this.CreateComponentPackUriReference());
            }

            case ResourceReferenceCreator.UriSyntax.SiteOfOriginPackUri:
            {
                return(this.CreateSiteOfOriginPackUriReference());
            }
            }
            throw new InvalidOperationException();
        }
        private ResourceReferenceCreator.UriSyntax DetermineSyntaxForSameProjectReference(DocumentReference referencingDocument)
        {
            ResourceReferenceCreator.UriSyntax uriSyntax = ResourceReferenceCreator.UriSyntax.None;
            string relativePathForDocumentReference      = this.GetRelativePathForDocumentReference(referencingDocument);

            if (relativePathForDocumentReference == null)
            {
                return(ResourceReferenceCreator.UriSyntax.None);
            }
            this.relativePathToReference = relativePathForDocumentReference;
            if (this.resourceItem.DocumentType == null || !(this.resourceItem.DocumentType.Name == DocumentTypeNamesHelper.Font))
            {
                string resourceBuildAction = this.ResourceBuildAction;
                string str = resourceBuildAction;
                if (resourceBuildAction != null)
                {
                    switch (str)
                    {
                    case "Content":
                    {
                        uriSyntax = this.DetermineSyntaxForContentItemType();
                        return(uriSyntax);
                    }

                    case "BlendEmbeddedFont":
                    {
                        uriSyntax = ResourceReferenceCreator.UriSyntax.ComponentPackUri;
                        return(uriSyntax);
                    }

                    case "None":
                    {
                        uriSyntax = this.DetermineSyntaxForNoneItemType();
                        return(uriSyntax);
                    }
                    }
                }
                uriSyntax = this.DetermineSyntaxForCompiledItemType();
            }
            else
            {
                uriSyntax = ResourceReferenceCreator.UriSyntax.ComponentPackUri;
            }
            return(uriSyntax);
        }
 public string CreateResourceReferenceFromDocument(DocumentReference referencingDocument)
 {
     ResourceReferenceCreator.UriSyntax uriSyntax = this.DetermineUriSyntax(referencingDocument);
     return(this.NormalizeReference(this.GenerateReference(uriSyntax)));
 }