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; }
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); }
/// <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; }
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); } }
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)); }