public MeaningfulBlock(IDataItemOld memberData, LanguageUtil.ELanguage language)
        {
            string memberDoc = null;
            DocumentDataItem docItem = memberData.GetDocumentDataItem();
            if (docItem != null)
                memberDoc = docItem.LoadDocumentOfLocale(language);

            Init(memberData.GetAssemblyDataItem(), memberDoc);
        }
 private static void CreateLocaleDirectory(String path, LanguageUtil.ELanguage locale)
 {
     var destinDir = DirectoryWithLangUtil.LocalizedDir(path, locale);
     try
     {
         //create a base dir based on language
         Directory.CreateDirectory(destinDir);
     }
     catch (DirectoryNotFoundException e)
     {
         Console.Out.WriteLine("createLocaleDirectory failed:{0}", e.Message);
         Console.Error.WriteLine("Could not create directory {0}", Path.GetFullPath(destinDir));
     }
 }
        private static string[] GetDocumentPathListOf(String path, LanguageUtil.ELanguage locale)
        {
            var destinDir = DirectoryWithLangUtil.LocalizedDir(path, locale);

            string[] sourceMemFiles = null;
            try
            {
                sourceMemFiles = Directory.GetFiles(destinDir);
            }
            catch (DirectoryNotFoundException)
            {
                Console.Error.WriteLine("Could not read from directory {0}. Please run DocDissector first!", path);
            }

            return sourceMemFiles;
        }
Пример #4
0
        public static DocumentDataItemSet BuildDocumentDataItems(String docDirectoryPath)
        {
            var docset = new DocumentDataItemSet {
                baseDocDirPath = docDirectoryPath
            };

            foreach (var loc in LanguageUtil.GetAllLanguages())
            {
                CreateLocaleDirectory(docDirectoryPath, loc);

                var files = GetDocumentPathListOf(docDirectoryPath, loc);
                docset.AddLocaleFileList(files, loc);
            }

            return(docset);
        }
Пример #5
0
        /// <summary>
        /// Saves content to given locale
        /// </summary>
        /// <param name="content">content to save into file</param>
        /// <param name="locale">locale to save</param>
        /// <returns>true if succeeds</returns>
        public bool SaveDocumentOfLocale(String content, LanguageUtil.ELanguage locale)
        {
            String savingPath = null;

            if (FileMap.ContainsKey(locale))
            {
                savingPath = FileMap[locale];
            }
            else
            {
                var filename = DirectoryUtil.MemberNameWithExtension(signature, DirectoryUtil.MemExtension);

                if (LanguageUtil.IsEnglish(locale))
                {
                    savingPath = Path.Combine(baseDocDirPath, filename);
                }
                else
                {
                    savingPath = string.Concat(Path.Combine(baseDocDirPath, locale.ToString()), Path.DirectorySeparatorChar, filename);
                }
            }

            try
            {
                File.WriteAllText(savingPath, content);
                if (!FileMap.ContainsKey(locale))
                {
                    FileMap.Add(locale, savingPath);
                }
                return(true);
            }
            catch (Exception e)
            {
                Console.Out.WriteLine("saveDocumentOfLocale failed:{0}", e.Message);
                FileMap.Remove(locale);
            }

            return(false);
        }
        /// <summary>
        /// Read file of given locale.
        /// If file is missing, it crosses out that document and set it to missing satus.
        /// </summary>
        /// <param name="locale">locale to read</param>
        /// <returns>contents of the document</returns>
        public String LoadDocumentOfLocale(LanguageUtil.ELanguage locale)
        {
            if (FileMap.ContainsKey(locale))
            {
                try
                {
                    var reader = File.OpenText(FileMap[locale]);
                    var content = reader.ReadToEnd();
                    reader.Close();
                    return content;
                }
                catch (Exception e)
                {
                    Console.Out.WriteLine("File Save Failed:{0}", e.Message);
                    FileMap.Remove(locale);
                }
            }

            return null;
        }
 // check if given locale's document exists
 public bool HasDocForLocale(LanguageUtil.ELanguage locale)
 {
     return FileMap.ContainsKey(locale);
 }
 /// <summary>
 /// Adding locale to this DocumentDataItem
 /// </summary>
 /// <param name="path">file path to locale obj</param>
 /// <param name="locale">locale to add</param>
 internal void AddLocaleFile(String path, LanguageUtil.ELanguage locale)
 {
     if (FileMap.ContainsKey(locale))
         FileMap[locale] = path;
     else
         FileMap.Add(locale, path);
 }
        /// <summary>
        /// Saves content to given locale
        /// </summary>
        /// <param name="content">content to save into file</param>
        /// <param name="locale">locale to save</param>
        /// <returns>true if succeeds</returns>
        public bool SaveDocumentOfLocale(String content, LanguageUtil.ELanguage locale)
        {
            String savingPath = null;

            if (FileMap.ContainsKey(locale))
            {
                savingPath = FileMap[locale];
            }
            else
            {
                var filename = DirectoryUtil.MemberNameWithExtension(signature, DirectoryUtil.MemExtension);

                if (LanguageUtil.IsEnglish(locale))
                    savingPath = Path.Combine(baseDocDirPath, filename);
                else
                    savingPath = string.Concat(Path.Combine(baseDocDirPath, locale.ToString()), Path.DirectorySeparatorChar, filename);
            }

            try
            {
                File.WriteAllText(savingPath, content);
                if (!FileMap.ContainsKey(locale))
                {
                    FileMap.Add(locale, savingPath);
                }
                return true;
            }
            catch (Exception e)
            {
                Console.Out.WriteLine("saveDocumentOfLocale failed:{0}", e.Message);
                FileMap.Remove(locale);
            }

            return false;
        }
        /// <summary>
        /// Get Collection of Documented APIs
        /// </summary>
        /// <param name="locale"></param>
        /// <returns></returns>
        public List<AssemblyDataItem> GetDocumentedAPIs(LanguageUtil.ELanguage locale)
        {
            var list = new List<AssemblyDataItem>();

            foreach (var item in Items)
            {
                if (item.DocDataItem != null)
                {
                    if(locale == LanguageUtil.ELanguage.Any)
                        list.Add(item);
                    else if (item.DocDataItem.HasDocForLocale(locale))
                        list.Add(item);
                }
            }
            return list;
        }
Пример #11
0
 public MemDocModel(IDataItemOld memberData, LanguageUtil.ELanguage language)
 {
     var block = new MeaningfulBlock(memberData, language);
     MeaningfulBlocks.Add(block);
 }
 public IEnumerable<DocumentDataItem> GetUntranslatedAPIs(LanguageUtil.ELanguage currentDocumentLocale)
 {
     return ValidEnglishDocs().Where(item => !item.HasDocForLocale(currentDocumentLocale));
 }
        /// <summary>
        /// Add document locale files
        /// </summary>
        /// <param name="files">list of pathes in given locale</param>
        /// <param name="locale">locale of files</param>
        public void AddLocaleFileList(string[] files, LanguageUtil.ELanguage locale)
        {
            foreach (string file in files)
            {
                var sig = Path.GetFileNameWithoutExtension(file);
                Debug.Assert(sig != null, "sig != null");

                DocumentDataItem docItem = null;

                if (_hashtable.ContainsKey(sig))
                {
                    docItem = _hashtable[sig];
                    Debug.Assert(docItem.signature.Equals(sig));
                }
                else
                {
                    docItem = new DocumentDataItem
                              	{
                              		signature = sig,
                                    baseDocDirPath = baseDocDirPath
                              	};
                    _hashtable.Add(sig, docItem);
                    _documentList.Add(docItem);
                }

                docItem.AddLocaleFile(file, locale);
            }
        }
Пример #14
0
        public static string LocalizedDir(string path, LanguageUtil.ELanguage locale)
        {
            var localizedPath = LanguageUtil.IsEnglish(locale) ? path : Path.Combine(path, locale.ToString());

            return(localizedPath);
        }
 public static string LocalizedDir(string path, LanguageUtil.ELanguage locale)
 {
     var localizedPath = LanguageUtil.IsEnglish(locale) ? path : Path.Combine(path, locale.ToString());
     return localizedPath;
 }
 public static string GetPathFromMemberNameAndDir(string memberName, string dir, LanguageUtil.ELanguage lang)
 {
     if (!LanguageUtil.IsEnglish(lang))
         dir = Path.Combine(dir, lang.ToString());
     return Path.Combine(dir, DirectoryUtil.MemberNameWithExtension(memberName, DirectoryUtil.MemExtension));
 }