In my code the following errors are appearing:
Error 1} expected **
Error 2 Type or namespace definition, or end-of-file expected **
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TesteVO;
using System.Data;
using TesteBancoDeDados;
using System.Reflection;
namespace TesteNegocio
{
public class NgcCliente
{
public NgcCliente()
{
}
public List <VoCliente> ConsutaCliente()
{
DataTable tabela = BDOracleCliente.ConsultaCliente();
/*
List<VoCliente> teste = tabela.AsEnumerable().Select(m => new VoCliente()
{
Codigo = m.Field<string>("Codigo"),
Nome = m.Field<string>("Nome"),
Endereco = m.Field<string>("Endereco"),
Cidade = m.Field<string>("Cidade"),
RG = m.Field<string>("RG"),
CPF = m.Field<string>("CPF"),
DataDeContrato = m.Field<DateTime>("DataDeContrato"),
ValorMensalidade = m.Field<decimal>("ValorMensalidade"),
Cancelado = m.Field<bool>("Cancelado")
}).ToList();
*/
public static List<TSource> ToList<TSource>(this DataTable dataTable) where TSource : new()
{
var dataList = new List<TSource>();
const BindingFlags flags = BindingFlags.Public | BindingFlags.Instance | BindingFlags.NonPublic;
var objFieldNames = (from PropertyInfo aProp in typeof(TSource).GetProperties(flags)
select new { Name = aProp.Name,
Type = Nullable.GetUnderlyingType(aProp.PropertyType) ??
aProp.PropertyType }).ToList();
var dataTblFieldNames = (from DataColumn aHeader in dataTable.Columns
select new { Name = aHeader.ColumnName,
Type = aHeader.DataType }).ToList();
var commonFields = objFieldNames.Intersect(dataTblFieldNames).ToList();
foreach (DataRow dataRow in dataTable.AsEnumerable().ToList())
{
var aTSource = new TSource();
foreach (var aField in commonFields)
{
PropertyInfo propertyInfos = aTSource.GetType().GetProperty(aField.Name);
var value = (dataRow[aField.Name] == DBNull.Value) ?
null : dataRow[aField.Name]; //if database field is nullable
propertyInfos.SetValue(aTSource, value, null);
}
dataList.Add(aTSource);
}
return dataList;
}
List<VoCliente> teste = tabela.ToList<VoCliente>();
//return teste;
}
}
}