Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Business Layer
Business Layer
Algo extrao aparece all HelperConverterExtensor.SetValue(property, instance, properties[index]); Esto pertenece a un anterior tutorial sobre Reflection que
estuvimos estudiando, ir a Refletion Ingphillips W ordPress, si buscas all encontraras la construccin de el Mtodo SetValue que permitir Setear los datos de un
objeto. Entonces si vemos simultneamente cuando se est validando el objeto que implementa IValidable , cada uno de los val ores correspondientes en este
caso a Id, PersonalId , FirstName etc ira tomando el valor correspondiente al ndice de cada parmetro almacenado en el arr ay(Se debe tener en cuenta el
orden de declaracin de las propiedades del objeto vrs el ndice de el parmetro en el arr ay de paramentros ejemplo Id equivale a parameters[0] ). Podramos
mejorar la eficiencia de esto a travs de un objeto IDictionary el cual permitira pasar la clave (Nombre de propiedad) y el valor respectivo a cada PropiedadTe
queda de tarea.
Por ltimo teniendo la construccin de lo que ser la validacin de datos para Insercin y actualizacin de registros en la tabla Person de la base de datos
DataBaseASP. Se aclara que esto slo tiene efectos acadmicos cualquiere problema de eficiencia y funcionalidad excluye al autor de alguna responsabilidad .
Pasemos a ver la definicin de la clase Person en la capa de negocio. Las clases creadas hasta este pundo se debieron haber agregado a BudinessLayer
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using BusinessLayer.Helpers;
using System.Data;
namespace BusinessLayer
{
public class PersonBL : IValidable
{
public int Id { get; set; }
public int PersonalId { get; set; }
public string FirstName { get; set; }
private string secondName;
public string SecondName
{
get { return secondName; }
set
{
if (value == null)
value = string.Empty;
secondName = value;
}
}
public string FirstLastName { get; set; }
private string secondLastName;
public string SecondLastName
{
get { return secondLastName; }
set
{
if (value == null)
value = string.Empty;
secondLastName = value;
}
}
/// <summary>
/// Retorna un objeto DataTable con el resultado de la consutla
/// en la base de datos.
/// </summary>
public DataTable GetAllPeople(ref string errors)
{
DataLayer.Person person = new DataLayer.Person();
DataTable dt = person.GetAllPeople(ref errors);
return dt;
}
/// <summary>
/// Hace las validaciones de los datos de la clase PersonBL
/// y envia a la Capa de Datos a la clase encargada de
/// insertar los datos en la base de datos
/// </summary>
public bool Insert(ref string errors, params object[] parameters)
{
bool isValid = Validate(ref errors, parameters);
if (isValid)
{
DataLayer.Person person = new DataLayer.Person();
person.Insert(ref errors, Id, PersonalId, FirstName, SecondName, FirstLastName, SecondLastName);
return string.IsNullOrEmpty(errors);
}
return isValid;
}
/// <summary>
/// Hace las validaciones de los datos de la clase PersonBL
/// y envia a la Capa de Datos a la clase encargada de
/// actualizar los datos en la base de datos
/// </summary>
/// <param name="errors"></param>
/// <param name="parameters"></param>
/// <returns></returns>
public bool Update(ref string errors, params object[] parameters) {
bool isValid = Validate(ref errors, parameters);
if (isValid)
{
DataLayer.Person person = new DataLayer.Person();
person.Update(ref errors, Id, PersonalId, FirstName, SecondName, FirstLastName, SecondLastName);
return string.IsNullOrEmpty(errors);
}
return isValid;
}
/// <summary>
/// Enva el id relativo a un registro de la tabla Person
/// a la capa de Datos para lanzar la sentencia Delete
/// </summary>
public bool Delete(ref string errors, int id)
{
DataLayer.Person person = new DataLayer.Person();
person.Delete(ref errors, id);
return string.IsNullOrEmpty(errors);
}
/// <summary>
/// Metodo implementado de IValidable para validar un
/// objeto mediante el mtodo extensor IsValid
/// </summary>
/// <param name="errors"></param>
/// <param name="parameters"></param>
/// <returns></returns>
public bool Validate(ref string errors, params object[] parameters)
{
return this.IsValid(ref errors, parameters);
}
}
}