public override T Retrieve <T>(BaseEntity entity) { var instance = SqlDao.GetInstance(); //verifica si hay algun registro coincidente en la BD var operation = _mapper.GetRetriveStatement(entity); //le indica al método qué tipo de operación se va a ejecutar //o sea qué tipo de SP es el que se requiere para la operacion var lstResult = instance.ExecuteQueryProcedure(operation); //invoca el procedimiento para la busqueda del registro y almacena el objeto //retornado en la variable lstResult if (lstResult.Count <= 0) { return(default(T)); } //si lstResutl es nulo significa que es menos que 0 por lo tanto no hay registros coincidentes //en la BD y retornar null var list = lstResult[0];//de lo contrario retorna lo que encuentra en la lista y que lo trae //en la posicion 0 que es donde trae guardado el dato conicidente del registro que encontró //en la BD var rolEncontrado = _mapper.BuildObject(list);//contruye el objeto pasandole los datos //a cada atributo try { if (lstResult.Count <= 0) { return(default(T)); } list = lstResult[0]; rolEncontrado = _mapper.BuildObject(list); } catch (Exception ex) { _exMan.ManageException(ex); } return((T)Convert.ChangeType(rolEncontrado, typeof(T))); //devuelte el tipo de dato generico T parametrizado, casteando el objeto //userEncontrado para que se devuelva a la UI el tipo de dato de la entidad //adecuada }
public override T Retrieve <T>(BaseEntity entity) { var lstResult = dao.ExecuteQueryProcedure(mapper.GetRetriveStatement(entity)); var dic = new Dictionary <string, object>(); if (lstResult.Count > 0) { dic = lstResult[0]; var objs = mapper.BuildObject(dic); return((T)Convert.ChangeType(objs, typeof(T))); } return(default(T)); }