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() + 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