using System;
using System.Text.RegularExpressions;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.Net;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;
using System.Linq;
using System.Text;
using System.Globalization;
using Core.Main;
namespace Core.Helper
{
public class SystemHelper
{
private static bool AllwaysGoodCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors policyErrors)
{
return true;
}
///
/// Checks, if a string is numeric.
///
/// The string to check.
/// True, if the string is numeric.
public static bool IsNumeric(string s)
{
try
{
Int32.Parse(s);
}
catch
{
return false;
}
return true;
}
public static bool IsInteger(double d)
{
return d % 1 == 0;
}
public static bool IsBoolean(string s)
{
try
{
Boolean.Parse(s);
}
catch
{
return false;
}
return true;
}
///
/// Checks, if a string is a double value.
///
/// The string to check.
/// True, if the string is a double value.
public static bool IsDouble(string s)
{
try
{
Double.Parse(s);
}
catch
{
return false;
}
return true;
}
public static bool IsDouble(string s, string culture)
{
try
{
Double.Parse(s, new CultureInfo(culture));
}
catch
{
return false;
}
return true;
}
///
/// Checks, if a string is a DateTime value.
///
/// The string to check.
/// True, if the string is a DateTime value.
public static bool IsDateTime(string s)
{
try
{
DateTime.Parse(s);
}
catch
{
return false;
}
return true;
}
///
/// Konvertiert einen Text zu einem Integer-Wert mit Fehlerbehandlung.
///
/// Zu konvertierender Text.
/// Der Vorgabewert für den Fall, dass keine gültige Zahl eingegeben wurde.
/// Den Text als Integer. Wenn die Konvertierung fehlschlägt, dann wird der Defaultwert zurückgegeben.
public static int TextToInteger(string text, int defaultValue)
{
int result = defaultValue;
try
{
string localText = text.Replace(".", "");
result = Convert.ToInt32(localText.Trim());
}
catch { }
return result;
}
///
/// Konvertiert einen Text zu einem Integer64-Wert mit Fehlerbehandlung.
///
/// Zu konvertierender Text.
/// Der Vorgabewert für den Fall, dass keine gültige Zahl eingegeben wurde.
/// Den Text als Integer64. Wenn die Konvertierung fehlschlägt, dann wird der Defaultwert zurückgegeben.
public static Int64 TextToInteger64(string text, Int64 defaultValue)
{
Int64 result = defaultValue;
try
{
string localText = text.Replace(".", "");
result = Convert.ToInt64(localText.Trim());
}
catch { }
return result;
}
public static double TextToDouble(string text, double defaultValue, string culture)
{
double result = defaultValue;
try
{
if (!string.IsNullOrEmpty(text))
{
double.TryParse(text, NumberStyles.Any, new System.Globalization.CultureInfo(culture), out result);
}
}
catch { }
return result;
}
///
/// Konvertiert einen Text zu einem DateTime-Wert mit Fehlerbehandlung.
///
/// Zu konvertierender Text.
/// Der Vorgabewert für den Fall, dass keine gültige DateTime eingegeben wurde.
/// Den Text als DateTime. Wenn die Konvertierung fehlschlägt, dann wird der Defaultwert zurückgegeben.
public static DateTime TextToDateTime(string text, DateTime defaultValue)
{
DateTime result = defaultValue;
try
{
result = Convert.ToDateTime(text.Trim());
}
catch { }
return result;
}
public static DateTime TextToDateTime(string text, DateTime defaultValue, string culture)
{
DateTime result = defaultValue;
try
{
result = Convert.ToDateTime(text.Trim(), new System.Globalization.CultureInfo(culture));
}
catch { }
return result;
}
///
/// Konvertiert einen Text zu einem Boolean-Wert mit Fehlerbehandlung.
///
/// Zu konvertierender Text.
/// Der Vorgabewert für den Fall, dass keine gültige Boolean eingegeben wurde.
/// Den Text als Boolean. Wenn die Konvertierung fehlschlägt, dann wird der Defaultwert zurückgegeben.
public static bool TextToBoolean(string text, bool defaultValue)
{
bool result = defaultValue;
try
{
result = Convert.ToBoolean(text.Trim());
}
catch
{
try
{
int intValue = Convert.ToInt32(text.Trim());
result = intValue == 0 ? false : true;
}
catch { }
}
return result;
}
public static string SplitCamelCase(string s)
{
string result = "";
string whiteList = "ABCDEFGHIJKLMNOPQRSTUVWXYZÄÜÖßabcdefghijklmnopqrstuvwxyzäüö0123456789_- ";
if (!string.IsNullOrEmpty(s))
{
for (int i = 0; i < s.Length; i++)
{
if (char.IsUpper(s[i]) || char.IsNumber(s[i]))
{
if (i > 0 && whiteList.Contains(s[i - 1].ToString()))
{
if (char.IsUpper(s[i]))
{
if (!char.IsUpper(s[i - 1]) && !char.IsNumber(s[i - 1])) result += " ";
}
else if (char.IsNumber(s[i]))
{
if (!char.IsNumber(s[i - 1])) result += " ";
}
}
}
result += s[i].ToString();
}
}
return result;
}
///
/// Clears a string using a whitelist.
///
/// Text to clear.
/// Allowed characters.
/// The cleared text.
public static string StripBadCode(string text, string allowedCharacters)
{
StringBuilder sb = new StringBuilder();
if (text != null)
{
for (int i = 0; i < text.Length; i++)
{
if (allowedCharacters.Contains(text[i].ToString())) sb.Append(text[i]);
}
}
return sb.ToString();
}
public static bool CheckForBadCode(string text, string allowedCharacters)
{
bool result = false;
for (int i = 0; i < text.Length; i++)
{
if (!allowedCharacters.Contains(text[i].ToString()))
{
result = true;
break;
}
}
return result;
}
///
/// Schneidet einen Text nach x Zeichen ab
///
/// Der Text, der gekürzt werden soll.
/// Die maximale Länge, auf die der Text gekürzt werden soll.
/// Der gekürzte Text.
public static string CutText(string text, int maxLength, bool addDots)
{
string result = text;
if (result.Length > maxLength)
{
result = result.Substring(0, maxLength);
if (addDots) result += "...";
}
return result;
}
///
/// Ermittelt den Teilstring eines Zeitstring, der die Stunden darstellt.
///
public static string GetHourFromString(string timeString)
{
string result = "";
if (timeString.Contains(":"))
{
string[] arrTime = timeString.Split(":".ToCharArray());
result = arrTime[0];
}
return result;
}
///
/// Ermittelt den Teilstring eines Zeitstring, der die Minuten darstellt.
///
public static string GetMinutesFromString(string timeString)
{
string result = "";
if (timeString.Contains(":"))
{
string[] arrTime = timeString.Split(":".ToCharArray());
result = arrTime[1];
}
return result;
}
public static List ConvertTokenStringToList(string tokenizedString, string separator)
{
List result = new List();
if (!String.IsNullOrEmpty(tokenizedString) && !String.IsNullOrEmpty(separator))
{
string[] arrTokens = tokenizedString.Split(separator.ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < arrTokens.Length; i++)
{
result.Add(arrTokens[i].Trim());
}
}
return result;
}
public static List ConvertTokenStringToListInt(string tokenizedString, string separator)
{
List result = new List();
if (!String.IsNullOrEmpty(tokenizedString) && !String.IsNullOrEmpty(separator))
{
string[] arrTokens = tokenizedString.Split(separator.ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < arrTokens.Length; i++)
{
result.Add(Convert.ToInt32(arrTokens[i]));
}
}
return result;
}
public static string ConvertListToTokenString(List tokenList, string separator, bool cropDoubleSeparators)
{
string result = "";
if (tokenList.Count > 0)
{
for (int i = 0; i < tokenList.Count; i++)
{
result += tokenList[i].Trim() + (i < (tokenList.Count - 1) ? separator : "");
}
if (cropDoubleSeparators) result = result.Replace(separator + separator, "");
}
return result;
}
public static string ConvertListToTokenString(List tokenList, string separator)
{
string result = "";
if (tokenList.Count > 0)
{
for (int i = 0; i < tokenList.Count; i++)
{
result += tokenList[i].ToString() + separator;
}
result += separator;
result = result.Replace(separator + separator, "");
}
return result;
}
public static List