using Azylee.Core.DataUtils.CollectionUtils;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Azylee.Core.WindowsUtils.ConsoleUtils
{
///
/// 控制台输出工具
///
public static class Cons
{
const string LOG_FORMAT = "{0} {1} ";
const string TIME_FORMAT = "HH:mm:ss.fff";
///
/// 输出换行内容(advanced 高级版)
///
/// 内容
/// 文字颜色
public static void Log(string value, ConsColorMode mode = ConsColorMode.Default)
{
ConsoleColor headcolor = ConsoleColor.White, headbgcolor = ConsoleColor.DarkRed;
ConsoleColor bodycolor = ConsoleColor.White, bodybgcolor = ConsoleColor.DarkRed;
#region 设置内容颜色,格式化内容
switch (mode)
{
case ConsColorMode.Default: bodycolor = ConsoleColor.Gray; bodybgcolor = ConsoleColor.Black; break;
case ConsColorMode.Muted: bodycolor = ConsoleColor.Gray; bodybgcolor = ConsoleColor.DarkGray; break;
case ConsColorMode.Primary: bodycolor = ConsoleColor.White; bodybgcolor = ConsoleColor.DarkGray; break;
case ConsColorMode.Secondary: bodycolor = ConsoleColor.Cyan; bodybgcolor = ConsoleColor.DarkGray; break;
case ConsColorMode.Success: bodycolor = ConsoleColor.Green; bodybgcolor = ConsoleColor.DarkGray; break;
case ConsColorMode.Info: bodycolor = ConsoleColor.Blue; bodybgcolor = ConsoleColor.DarkGray; break;
case ConsColorMode.Warning: bodycolor = ConsoleColor.Yellow; bodybgcolor = ConsoleColor.DarkGray; break;
case ConsColorMode.Danger: bodycolor = ConsoleColor.Red; bodybgcolor = ConsoleColor.DarkGray; break;
case ConsColorMode.Dark: bodycolor = ConsoleColor.White; bodybgcolor = ConsoleColor.Black; break;
case ConsColorMode.Light: bodycolor = ConsoleColor.Black; bodybgcolor = ConsoleColor.White; break;
}
try
{
//string[] lines = value.Split(new[] { "\r", "\n", "\r\n", "\n\r", Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);
//value = String.Join($"{Environment.NewLine}{new string(' ', 18)}└", lines);
}
catch { }
#endregion
#region 输出内容
SetColor(headcolor, headbgcolor);
Write(string.Format(LOG_FORMAT, DateTime.Now.ToString(TIME_FORMAT), ">"));
SetColor(bodycolor, bodybgcolor);
Write(value);
WriteLine("");
ResetColor();
#endregion
}
///
/// 输出内容
///
/// 内容
/// 文字颜色
/// 背景颜色
public static void Write(string value)
{
try { Console.Write(value); } catch { }
}
///
/// 输出换行内容
///
/// 内容
/// 文字颜色
/// 背景颜色
public static void WriteLine(string value)
{
try { Console.WriteLine(value); } catch { }
}
public static void SetColor(ConsoleColor color, ConsoleColor bgcolor)
{
try
{
Console.ForegroundColor = color;
Console.BackgroundColor = bgcolor;
}
catch { }
}
public static void ResetColor()
{
try
{
Console.ResetColor();
}
catch { }
}
}
}