Example #1
0
        public string GetMimeTypeForUri(string uri)
        {
            if (!String.IsNullOrEmpty(uri))
            {
                MimeTypeNode mt = FindMimeTypeForFile(uri);
                if (mt != null)
                {
                    return(mt.Id);
                }
            }
            var mime = OnGetMimeTypeForUri(uri);

            if (mime != null)
            {
                return(mime);
            }

            try {
                if (Path.IsPathRooted(uri) && File.Exists(uri) && !Core.Text.TextFileUtility.IsBinary(uri))
                {
                    return("text/plain");
                }
            } catch (IOException) {}

            return("application/octet-stream");
        }
Example #2
0
        MimeTypeNode FindMimeTypeForFile(string fileName)
        {
            try {
                IContentType contentType = fileToContentTypeService.Value.GetContentTypeForFilePath(fileName);
                if (contentType != PlatformCatalog.Instance.ContentTypeRegistryService.UnknownContentType)
                {
                    string mimeType = PlatformCatalog.Instance.MimeToContentTypeRegistryService.GetMimeType(contentType);
                    if (mimeType != null)
                    {
                        MimeTypeNode mt = FindMimeType(mimeType);
                        if (mt != null)
                        {
                            return(mt);
                        }
                    }
                }
            } catch (Exception ex) {
                LoggingService.LogError("IFilePathToContentTypeProvider query failed", ex);
            }

            foreach (MimeTypeNode mt in MimeTypeNodes.All)
            {
                if (mt.SupportsFile(fileName))
                {
                    return(mt);
                }
            }
            return(null);
        }
Example #3
0
        public IEnumerable <string> GetMimeTypeInheritanceChain(string mimeType)
        {
            yield return(mimeType);

            while (mimeType != null && mimeType != "text/plain" && mimeType != "application/octet-stream")
            {
                MimeTypeNode mt = FindMimeType(mimeType);
                if (mt != null && !string.IsNullOrEmpty(mt.BaseType))
                {
                    mimeType = mt.BaseType;
                }
                else
                {
                    if (mimeType.EndsWith("+xml", StringComparison.Ordinal))
                    {
                        mimeType = "application/xml";
                    }
                    else if (mimeType.StartsWith("text/", StringComparison.Ordinal) || OnGetMimeTypeIsText(mimeType))
                    {
                        mimeType = "text/plain";
                    }
                    else
                    {
                        break;
                    }
                }
                yield return(mimeType);
            }
        }
Example #4
0
        public IEnumerable <string> GetMimeTypeInheritanceChain(string mimeType)
        {
            yield return(mimeType);

            while (mimeType != null && mimeType != TextPlain && mimeType != OctetStream)
            {
                MimeTypeNode mt = FindMimeType(mimeType);
                if (mt != null && !string.IsNullOrEmpty(mt.BaseType))
                {
                    mimeType = mt.BaseType;
                }
                else
                {
                    if (mimeType.EndsWith("+xml", StringComparison.Ordinal))
                    {
                        mimeType = ApplicationXml;
                    }
                    else if (mimeType.StartsWith("text/", StringComparison.Ordinal))
                    {
                        mimeType = TextPlain;
                    }
                    else
                    {
                        break;
                    }
                }
                yield return(mimeType);
            }
        }
Example #5
0
        IEnumerable <MimeTypeNode> GetMimeTypeNodeInheritanceChain(MimeTypeNode node)
        {
            while (node != null)
            {
                yield return(node);

                if (node.Id == OctetStream || node.Id == TextPlain)
                {
                    yield break;
                }

                if (string.IsNullOrEmpty(node.BaseType))
                {
                    if (node.Id.EndsWith("+xml", StringComparison.Ordinal))
                    {
                        yield return(xmlNode);

                        yield return(textPlainNode);
                    }
                    if (node.Id.StartsWith("text/", StringComparison.Ordinal))
                    {
                        yield return(textPlainNode);
                    }
                    yield break;
                }

                node = FindMimeType(node.BaseType);
            }
        }
        MimeTypeNode FindMimeTypeForFile(string fileName)
        {
            IFilePathRegistryService filePathRegistryService = CompositionManager.GetExportedValue <IFilePathRegistryService> ();

            try {
                IContentType contentType = filePathRegistryService.GetContentTypeForPath(fileName);
                if (contentType != PlatformCatalog.Instance.ContentTypeRegistryService.UnknownContentType)
                {
                    string mimeType = PlatformCatalog.Instance.MimeToContentTypeRegistryService.GetMimeType(contentType);
                    if (mimeType != null)
                    {
                        MimeTypeNode mt = FindMimeType(mimeType);
                        if (mt != null)
                        {
                            return(mt);
                        }
                    }
                }
            } catch (Exception ex) {
                LoggingService.LogError("IFilePathRegistryService query failed", ex);
            }

            foreach (MimeTypeNode mt in mimeTypeNodes)
            {
                if (mt.SupportsFile(fileName))
                {
                    return(mt);
                }
            }
            return(null);
        }
Example #7
0
 IEnumerable <string> GetMimeTypeInheritanceChain(MimeTypeNode node)
 {
     if (node == null)
     {
         yield break;
     }
     foreach (var mt in GetMimeTypeNodeInheritanceChain(node))
     {
         yield return(mt.Id);
     }
 }
Example #8
0
 public string GetMimeTypeForUri(string uri)
 {
     if (!String.IsNullOrEmpty(uri))
     {
         MimeTypeNode mt = FindMimeTypeForFile(uri);
         if (mt != null)
         {
             return(mt.Id);
         }
     }
     return(OnGetMimeTypeForUri(uri) ?? "application/octet-stream");
 }
Example #9
0
        string GetIconIdForFile(string fileName)
        {
            MimeTypeNode mt = FindMimeTypeForFile(fileName);

            if (mt != null)
            {
                return(mt.Icon);
            }
            else
            {
                return(OnGetIconIdForFile(fileName));
            }
        }
Example #10
0
 public string GetMimeTypeForUri(string uri)
 {
     if (!String.IsNullOrEmpty(uri))
     {
         FileInfo     file = new FileInfo(uri);
         MimeTypeNode mt   = FindMimeTypeForFile(file.Name);
         if (mt != null)
         {
             return(mt.Id);
         }
     }
     return(OnGetMimeTypeForUri(uri) ?? "text/plain");
 }
Example #11
0
        public string GetMimeTypeForUri(string uri)
        {
            if (!String.IsNullOrEmpty(uri))
            {
// Creating file infos is expensive, should be avoided
//				FileInfo file = new FileInfo (uri);
//				MimeTypeNode mt = FindMimeTypeForFile (file.Name);
                MimeTypeNode mt = FindMimeTypeForFile(uri);
                if (mt != null)
                {
                    return(mt.Id);
                }
            }
            return(OnGetMimeTypeForUri(uri) ?? "text/plain");
        }
Example #12
0
        public string GetMimeTypeDescription(string mimeType)
        {
            if (mimeType == "text/plain")
            {
                return(GettextCatalog.GetString("Text file"));
            }
            MimeTypeNode mt = FindMimeType(mimeType);

            if (mt != null && mt.Description != null)
            {
                return(mt.Description);
            }
            else
            {
                return(OnGetMimeTypeDescription(mimeType) ?? string.Empty);
            }
        }
Example #13
0
        string GetIconForType(string type)
        {
            if (type == "text/plain")
            {
                return("md-text-file-icon");
            }
            MimeTypeNode mt = FindMimeType(type);

            if (mt != null)
            {
                return(mt.Icon);
            }
            else
            {
                return(OnGetIconForType(type));
            }
        }
Example #14
0
        string GetIconIdForType(string type)
        {
            if (type == "text/plain")
            {
                return("md-text-file-icon");
            }
            MimeTypeNode mt = MimeTypeCatalog.Instance.FindMimeType(type);

            if (mt != null)
            {
                return(mt.Icon);
            }
            else if (UsePlatformFileIcons)
            {
                return(OnGetIconIdForType(type));
            }
            else
            {
                return(null);
            }
        }
Example #15
0
        public string GetMimeTypeDescription(string mimeType)
        {
            if (mimeType == "text/plain")
            {
                return(GettextCatalog.GetString("Text file"));
            }
            if (mimeType == "application/octet-stream")
            {
                return(GettextCatalog.GetString("Unknown"));
            }
            MimeTypeNode mt = MimeTypeCatalog.Instance.FindMimeType(mimeType);

            if (mt != null && mt.Description != null)
            {
                return(mt.Description);
            }
            else
            {
                return(OnGetMimeTypeDescription(mimeType) ?? string.Empty);
            }
        }