ASCU_ALL/ShowTrend_tmp3/ShowTrend3/Libs/Converters.cs
2021-11-12 15:00:41 +05:00

68 lines
2.1 KiB
C#

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
namespace ShowTrend3.Libs
{
public static class CustomConverters
{
private static DateTime _jan1st1970 = new DateTime(1970, 1, 1);
public static long JStDateConv(DateTime from)
{
return System.Convert.ToInt64((from - _jan1st1970).TotalMilliseconds);
}
public static DateTime JStDateConv(long from)
{
return _jan1st1970.AddMilliseconds(from);
}
public static int ArchNameToNumVDP(string s)
{
var t = s.Split('.');
if (t.Last() != "gz")
return int.Parse(t.Last());
t = t[0].Split('-');
if (t.Length == 2)
return int.Parse(t.Last());
if (t.Length == 4)
return int.Parse(t[2]);
return -1;
}
public static bool CompareStringBuilder(ref StringBuilder a, StringBuilder b)
{
if (a.Length <= 0 || b.Length <= 0)
return false;
if (a[0] != '[' && a[a.Length - 1] != ']')
return false;
if (b[0] != '[' && b[b.Length - 1] != ']')
return false;
if (b.Length > 2)
{
a.Remove(a.Length - 1, 1);
if (a.Length > 1)
a.Append(',');
a.Append(b, 1, b.Length - 1);
}
return true;
}
public static string ExceptionToString(Exception e)
{
string res = "";
char sl = RuntimeInformation.IsOSPlatform(OSPlatform.Linux) ? '/' : '\\';
var st = new StackTrace(e, true).GetFrame(0);
res = st.GetFileName().Split(sl).Last() + " > " +
st.GetMethod().DeclaringType + " > " +
st.GetMethod() + " > " +
st.GetFileLineNumber() + ":" +
st.GetFileColumnNumber() + " > " +
e.Message;
return res;
}
}
}