using System;
using System.Collections.Generic;
using Kreta.Resources;
namespace Kreta.Core
{
public static class KretaConvert
{
///
/// SDA db kompatibilis booleannal tér vissza
///
/// Bemenõ adat
/// Boolean
public static string ToSDABoolean(int? data)
{
if (data.HasValue)
{
if (data.Value == 0)
{
return "F";
}
if (data.Value == 1)
{
return "T";
}
throw new Exception(ErrorResource.ErvenytelenInteger);
}
return null;
}
///
/// SDA db kompatibilis booleannal tér vissza
///
/// Bemenõ adat
/// Boolean
public static string ToSDABoolean(bool? data)
{
if (data.HasValue)
{
return data.Value ? "T" : "F";
}
return null;
}
///
/// Nullokat is kezelõ boolean Convert
///
/// Bemenõ adat
/// Boolean
public static bool ToBoolean(object data)
{
return ToBoolean(data, false);
}
///
/// Nullokat is kezelõ boolean Convert
///
/// Bemenõ adat
/// null adatra true-t vagy false-t adjon vissza
/// Boolean
public static bool ToBoolean(object data, bool NullValue)
{
try
{
return ((data == null) || (data == DBNull.Value) || string.IsNullOrWhiteSpace(data.ToString()))
? NullValue
: Convert.ToBoolean(data);
}
catch
{
return NullValue;
}
}
///
/// Nullokat is kezelõ boolean Convert Nullra.
///
/// Bemenõ adat
/// null adatra true-t vagy false-t adjon vissza
/// Boolean
public static bool? ToNullableBoolean(object data)
{
try
{
return ((data == null) || (data == DBNull.Value) || string.IsNullOrWhiteSpace(data.ToString()))
? (bool?)null
: Convert.ToBoolean(data);
}
catch
{
return (bool?)null;
}
}
///
/// T es F stringbol csinal boolt
///
/// bemeno adat
/// bool
public static bool ToBooleanFromTF(object data)
{
return ToBooleanFromTF(data, false);
}
///
/// T es F stringbol csinal boolt
///
/// bemeno adat
/// true vagy false legyen a nullbol
/// bool
public static bool ToBooleanFromTF(object data, bool NullValue)
{
try
{
return ((data == null) || (data == DBNull.Value) || string.IsNullOrWhiteSpace(data.ToString()))
? NullValue
: Convert.ToBoolean(data.ToString() == "T");
}
catch
{
return NullValue;
}
}
///
/// T es F stringbol csinal boolt
///
/// bemeno adat
/// true vagy false legyen a nullbol
/// bool
public static bool ToBooleanFromIN(object data, bool NullValue)
{
try
{
return ((data == null) || (data == DBNull.Value) || string.IsNullOrWhiteSpace(data.ToString()))
? NullValue
: Convert.ToBoolean(data.ToString() == "I");
}
catch
{
return NullValue;
}
}
///
/// Nullokat is kezelõ int Convert
///
/// Bemenõ adat
/// Int32
public static Int32 ToInt32(object data)
{
try
{
return ((data == null) || (data == DBNull.Value) || string.IsNullOrWhiteSpace(data.ToString()))
? 0
: Convert.ToInt32(data);
}
catch
{
return 0;
}
}
public static int? ToNullableInt32(object data)
{
try
{
return ((data == null) || (data == DBNull.Value) || string.IsNullOrWhiteSpace(data.ToString()))
? (int?)null
: Convert.ToInt32(data);
}
catch
{
return (int?)null;
}
}
public static Int64 ToInt64(object data)
{
try
{
return ((data == null) || (data == DBNull.Value) || string.IsNullOrWhiteSpace(data.ToString()))
? 0L
: Convert.ToInt64(data);
}
catch
{
return 0L;
}
}
///
/// Nullokat is kezelõ int Convert
///
/// Bemenõ adat
/// Int32
public static decimal ToDecimal(object data)
{
try
{
return ((data == null) || (data == DBNull.Value) || string.IsNullOrWhiteSpace(data.ToString()))
? 0
: Convert.ToDecimal(data);
}
catch
{
return 0;
}
}
///
/// Nullokat is kezelõ int Convert
///
/// Bemenõ adat
/// Int32
public static Int32 ToInt32(object data, int NullValue)
{
try
{
return ((data == null) || (data == DBNull.Value) || string.IsNullOrWhiteSpace(data.ToString()))
? NullValue
: Convert.ToInt32(data);
}
catch
{
return NullValue;
}
}
///
/// Nullokat is kezelõ double Convert
///
/// Bemenõ adat
/// Int32
public static Double ToDouble(object data)
{
try
{
return ((data == null) || (data == DBNull.Value) || string.IsNullOrWhiteSpace(data.ToString()))
? 0D
: Convert.ToDouble(data);
}
catch
{
return 0D;
}
}
///
/// Nullokat is kezelõ double Convert
///
/// Bemenõ adat
/// Int32
public static Double ToDouble(object data, double NullValue)
{
try
{
return ((data == null) || (data == DBNull.Value) || string.IsNullOrWhiteSpace(data.ToString()))
? NullValue
: Convert.ToDouble(data);
}
catch
{
return NullValue;
}
}
public static double? ToNullableDouble(object data)
{
try
{
return ((data == null) || (data == DBNull.Value) || string.IsNullOrWhiteSpace(data.ToString()))
? (double?)null
: Convert.ToDouble(data);
}
catch
{
return (double?)null;
}
}
///
/// Nullokat is kezelõ byte tömb Convert
///
/// Bemenõ adat
/// Byte []
public static byte[] ToByteArray(object data)
{
return data == DBNull.Value || data == null ? null : (byte[])data;
}
public static string ToString(object data)
{
return ToString(data, "");
}
public static string ToString(object data, string defaultvalue)
{
try
{
return ((data == null) || (data == DBNull.Value))
? defaultvalue
: data.ToString();
}
catch
{
return defaultvalue;
}
}
public static DateTime? ToDateTime(object data)
{
try
{
return ((data == null) || (data == DBNull.Value) || string.IsNullOrWhiteSpace(data.ToString()))
? (DateTime?)null
: Convert.ToDateTime(data);
}
catch
{
return (DateTime?)null;
}
}
public static DateTime? ToDateTime(object data, DateTime? NullValue)
{
try
{
return ((data == null) || (data == DBNull.Value) || string.IsNullOrWhiteSpace(data.ToString()))
? NullValue
: Convert.ToDateTime(data);
}
catch
{
return NullValue;
}
}
public static Guid Int2Guid(int value)
{
byte[] bytes = new byte[16];
BitConverter.GetBytes(value).CopyTo(bytes, 0);
return new Guid(bytes);
}
public static int Guid2Int(Guid value)
{
byte[] b = value.ToByteArray();
int bint = BitConverter.ToInt32(b, 0);
return bint;
}
public static Guid? StringToNullableGuid(object data)
{
var value = ToString(data);
if (string.IsNullOrWhiteSpace(value))
{
return null;
}
return new Guid(value);
}
///
/// Kiszed minden olyan elemet ami gondot okozhat a beviteli mezõknél
/// LoadWithFilternél használandó
///
///
///
public static string PreventSQLInjection(string dirtytext)
{
List disallowedtags = new List()
{
"'", " or ", " OR ", " and ", " AND ",
"=", "<", ">", "<>", " not ", " NOT "
};
//elviekben mivel az elsõ szóköznél elvágom így nem maradhat benne and, or vagy not
string cleartext = dirtytext;
if (cleartext.Contains(" "))
{
cleartext = cleartext.Substring(0, cleartext.IndexOf(" ") + 1).Trim();
}
foreach (string tag in disallowedtags)
{
cleartext = cleartext.Replace(tag, "");
}
return cleartext;
}
public static string PreventXSSAttack(string dirtytext)
{
if (dirtytext == null)
{
return null;
}
List disallowedtags = new List()
{
"iframe", "object", "embed", "script"
};
string cleantext = dirtytext;
foreach (string tag in disallowedtags)
{
string current_tag = tag.ToLower();
int hossz = 0;
int eleje = cleantext.ToLower().IndexOf(string.Format("<{0}", current_tag));
if (eleje == -1)
{
eleje = cleantext.ToLower().IndexOf(string.Format("<{0}", current_tag));
}
int vege = -1;
while (eleje > -1)
{
hossz = current_tag.Length + 1;
vege = cleantext.ToLower().IndexOf(string.Format("/{0}", current_tag), eleje);
if (vege == -1)
{
vege = cleantext.ToLower().IndexOf("/>", eleje);
hossz = 2;
}
if (cleantext.ToLower().IndexOf(">", vege) - (vege + current_tag.Length + 1) == 0)
{
hossz += 4;
}
cleantext = cleantext.Remove(eleje, vege - eleje + hossz);
eleje = cleantext.ToLower().IndexOf(string.Format("<{0}", current_tag));
if (eleje == -1)
{
eleje = cleantext.ToLower().IndexOf(string.Format("<{0}", current_tag));
}
}
}
return cleantext;
}
public static Guid? ToNullableGuid(object data)
{
try
{
return data == null || data == DBNull.Value || string.IsNullOrWhiteSpace(data.ToString())
? (Guid?)null
: Guid.Parse(ToString(data));
}
catch
{
return null;
}
}
public static Guid ToGuid(object data)
{
try
{
return data == null || data == DBNull.Value || string.IsNullOrWhiteSpace(data.ToString())
? default
: Guid.Parse(ToString(data));
}
catch
{
return default;
}
}
}
}