TFS_ANTIGUO/TPAtesa_Davivienda/FE/DAVIVIENDA.SUGESE/DAVIVIENDA.SUGESE.Model/HelperValues.cs
2026-06-26 10:05:33 -06:00

175 lines
5.3 KiB
C#

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DAVIVIENDA.SUGESE.Model
{
public class HelperValues
{
/// <summary>
/// Funcion que devuelve el valor de la columna especificada, caso contrario retornara null
/// </summary>
/// <param name="IDataReader"></param>
/// <param name="columnName"></param>
/// <returns>Valor de la columna o NULL</returns>
public static Nullable<T> GetValueOrNull<T>(IDataReader reader, string columnName) where T : struct
{
//SI EXISTE LA COLUMNA
if (reader.GetSchemaTable().Select("ColumnName = '" + columnName + "'").Length > 0)
{
//SI LA COLUMNA NO ES NULA
if (!(reader[columnName] is DBNull))
{
return (T)reader[columnName];
}
}
return null;
}
/// <summary>
/// Funcion que devuelve el valor de la columna especificada, caso contrario retornara null
/// </summary>
/// <param name="IDataReader"></param>
/// <param name="columnName"></param>
/// <returns>Valor de la columna o NULL</returns>
public static Nullable<T> GetValueOrNull<T>(DataRow reader, string columnName) where T : struct
{
if (!(reader[columnName] is DBNull))
{
return (T)reader[columnName];
}
return null;
}
/// <summary>
/// Funcion que devuelve el valor de la columna especificada
/// </summary>
/// <param name="IDataReader"></param>
/// <param name="columnName"></param>
/// <returns>Valor de la columna</returns>
public static T GetValue<T>(IDataReader reader, string columnName)
{
//SI EXISTE LA COLUMNA
if (reader.GetSchemaTable().Select("ColumnName = '" + columnName + "'").Length > 0)
{
//SI LA COLUMNA NO ES NULA
if (!(reader[columnName] is DBNull))
{
return (T)reader[columnName];
}
}
return default(T);
}
/// <summary>
/// Funcion que devuelve el valor de la columna especificada
/// </summary>
/// <param name="IDataReader"></param>
/// <param name="columnName"></param>
/// <returns>Valor de la columna</returns>
public static T GetValue<T>(DataRow reader, string columnName)
{
if (!(reader[columnName] is DBNull))
{
return (T)reader[columnName];
}
return default(T);
}
/// <summary>
/// Setea el valor de la columna con el dato especificado, caso contrario seteara la columna con null
/// </summary>
/// <param name="src_object"></param>
/// <param name="target_property"></param>
/// <returns></returns>
public static object SetNullSafeValue(object value)
{
if (value == null)
{
value = System.DBNull.Value;
}
else
{
switch (value.GetType().Name)
{
#region String
case "String":
if (string.IsNullOrEmpty(value.ToString()))
value = System.DBNull.Value;
break;
#endregion
#region Int32
case "Int32":
if ((int)value == int.MinValue)
value = System.DBNull.Value;
break;
#endregion
#region Datetime
case "DateTime":
if ((DateTime)value == DateTime.MinValue)
value = System.DBNull.Value;
break;
#endregion
#region Decimal
case "Decimal":
if ((decimal)value == decimal.MinValue)
value = System.DBNull.Value;
break;
#endregion
}
}
return value;
}
/// <summary>
/// Funcion que busca si existe una columna en un objeto DataReader
/// </summary>
/// <param name="reader">IDataReader </param>
/// <param name="columnName">Nombre de la columna a buscar</param>
/// <returns>True si existe la columna</returns>
public static bool DataReaderHasColumn(IDataReader reader, string columnName)
{
return reader.GetSchemaTable().Select("ColumnName = '" + columnName + "'").Length > 0;
}
/// <summary>
/// Funcion que busca si existe una columna en un objeto DataSet
/// </summary>
/// <param name="reader">IDataReader </param>
/// <param name="columnName">Nombre de la columna a buscar</param>
/// <returns>True si existe la columna</returns>
public static bool DataReaderHasColumn(DataRow reader, string columnName)
{
return reader.Table.Columns.Contains(columnName);
}
}
}