Array
(
)

Erro na chamada de método com 3 assinaturas(Overload)

Pjava
   - 05 jun 2012

//As tres assinaturas do método(Overload)
public IList<Meta> Metas()
{
return _dal.Metas();
}
public IList<Meta> Metas(string codGrafico, int codEmissor, DateTime datMeta)
{
return _dal.Metas(codGrafico, codEmissor, datMeta);
}
public IList<Meta> Metas(string codGrafico, int codEmissor, DateTime datMeta, string codChave)
{
return _dal.Metas(codGrafico, codEmissor, datMeta, codChave);
}

//Minha chamada
var usuario = NSContextoSeguranca.Instancia.UsuarioAtual;
string grafico = ;
DateTime dt = new DateTime(DateTime.Now.Year, DateTime.Now.AddMonths(-1).Month, 1);
IList<Meta> metas = (new NSContextoSeguranca()).Metas(EVOLUÇÃO DA FRAUDE BPS, usuario.Filiais[0].IdFilialCliente, dt);
Acontece que dá erro é esse:
O índice estava fora do intervalo. Ele deve ser não-negativo e menor que o tamanho da coleção.
Nome do parâmetro: index
Aponta para p primeiro argumento do método(EVOLUÇÃO DA FRAUDE BPS). Se ao invéis de eu usar a variável dt e passar
diretamente o parâmetro(new DateTime(DateTime.Now.Year, DateTime.Now.AddMonths(-1).Month, 1)), aí esse erro é apon
tado nesse argumento. Como eu resolvo isso?

Joel Rodrigues
   - 05 jun 2012

Depure o código e verifique o valor de usuario.Filiais[0], veja se realmente essa posição zero está preenchida.

0
|
0

Pjava
   - 05 jun 2012

Realmente usuario.Filiais[0], estava vindo null. Agora, que já resolvi isso, preciso fazer com que a data não venha a parte hora(new DateTime(DateTime.Now.Year, DateTime.Now.AddMonths(-1).Month, 1)). Essa linha aí precisa vir sem a parte hora. Como eu faço?

0
|
0

Joel Rodrigues
   - 05 jun 2012

Rapaz, aí só se você tratar a data como string, usando o ToShortDateString ou o ToString(formato).

0
|
0

Pjava
   - 05 jun 2012

Eu sei, mas o parâmetro é do tipo DateTime. E preciso passar sem a parte hora.

0
|
0

Pjava
   - 06 jun 2012

Resolvi isso colocando um TRUNC na query do LINQ. Eu estava apanhando com NHibernate e LINQ, por isso não estava rtesolvendo. Essa foi a solução, pois o campo no Oracle é Date, aí então fiz um TRUNC e resolveu.

0
|
0

Joel Rodrigues
   - 06 jun 2012

Ah, beleza. Mais uma vez eu não tinha entendido tua questão. Mas o importante é que você resolveu.
Boa sorte em seus projetos.

0
|
0