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