using System; using System.Collections.Generic; using System.IO; namespace Framework.Cli { /// /// Cli relevant functions. /// public static class UtilCli { /// /// Returns for example "Application.Doc.AppMain, Application" which can be used in file ConfigCli.json /// public static string AppTypeName(Type appType) { return appType.FullName + ", " + appType.Assembly.GetName().Name; } /// /// Gets FolderName. This is the root folder where file Application.sln is located. /// public static string FolderName { get { return UtilFramework.FolderName; } } /// /// Returns FileNameFull for blob file. Searches also in ExternalGit. /// private static string BlobReadFileNameFull(string fileName) { string result = null; var list = new List(); list.Add(UtilFramework.FolderName + "Application.Cli/Database/Blob/" + fileName); foreach (var item in Config.ConfigCli.Load().ExternalGitList) { list.Add(UtilFramework.FolderName + "Application.Cli/Database/ExternalGit/" + item.ExternalProjectName + "/Blob/" + fileName); } int count = 0; foreach (var item in list) { if (File.Exists(item)) { result = item; count += 1; } } // Assert found once UtilFramework.Assert(count == 1, string.Format("File not found or multiple times! ({0})", fileName)); return result; } /// /// Returns text from blob. /// Used only by generated file Application.Cli/Database/DatabaseIntegrate.cs /// public static string BlobReadText(string fileName) { var fileNameFull = BlobReadFileNameFull(fileName); return File.ReadAllText(fileNameFull); } /// /// Returns binary data from blob. /// Used only by generated file Application.Cli/Database/DatabaseIntegrate.cs /// public static byte[] BlobReadData(string fileName) { var fileNameFull = BlobReadFileNameFull(fileName); return File.ReadAllBytes(fileNameFull); } } }