Convert Type to List

0

Good afternoon,

I'm developing a project in C #, and I've got a bug right now which I can not resolve.

  

Can not implicitly convert type 'ITCore.FlowCredit.Business.Entities.ProductAmortizacaoCreditoDiasSearch' to 'System.Collections.Generic.List'

 public override List<ProdutoAmortizacaoCreditoDias> GetTodosDiasAmortizacaoCredito(int? id_TipoDia, String id_Produto)
{
        List<ProdutoAmortizacaoCreditoDias> ProdutoAmortizacaoCreditoDiasObj = new List<ProdutoAmortizacaoCreditoDias>();

        try
        {
            ProdutoAmortizacaoCreditoDiasObj = **ProdutoAmortizacaoDiasUtils.GetTodosProdutoAmortizacaoDias(id_TipoDia, id_Produto);**
        }
        catch (Exception ex)
        {
            CoreLog.LogError(ex);
            throw new CoreException(ex.Message);
        }
        return ProdutoAmortizacaoCreditoDiasObj;
    }

How do I convert here?

  #region Gets

    public static ProdutoAmortizacaoCreditoDiasSearch GetTodosProdutoAmortizacaoDias(int? id_TipoDia, String id_Produto)
    {
        ProdutoAmortizacaoCreditoDiasSearch res = new ProdutoAmortizacaoCreditoDiasSearch();
        List<ProdutoAmortizacaoCreditoDias> ProdutoAmortizacaoDiasList = new List<ProdutoAmortizacaoCreditoDias>().ToList();

        using (TaxasProdutoExtensaoPrazoDBDataContext ctx = new TaxasProdutoExtensaoPrazoDBDataContext())
        {
            var results = ctx.usp_DiaAmortizacaoCredito_GetDiaAmortizacaoCredito(id_TipoDia, id_Produto);
            foreach (var result in results)
            {
                var obj = new ProdutoAmortizacaoCreditoDias();
                obj.Id = (int)result.id;
                obj.Dia = (int)result.dia;
                obj.DiaInicio = (DateTime)result.data_Inicio;
                obj.DiaFim = (DateTime)result.data_Fim;
                ProdutoAmortizacaoDiasList.Add(obj);
            }
        }
        res.result = ProdutoAmortizacaoDiasList;
        res.ReturnValue = 1;//tens de buscar isto à bd
        res.NumberRecords = ProdutoAmortizacaoDiasList.Count; //buscares à bd, ou assim, depende como queres fazer
        return res;
    }

Thanks,

    
asked by anonymous 07.02.2017 / 18:57

2 answers

3

You are trying to make a variable of type List<ProdutoAmortizacaoCreditoDias> receive the value of other type , ProdutoAmortizacaoCreditoDiasSearch , in this case.

See

var ProdutoAmortizacaoCreditoDiasObj = new List<ProdutoAmortizacaoCreditoDias>();

Here is instantiated a list of ProdutoAmortizacaoCreditoDias .

In the line below, inside try , has the following

ProdutoAmortizacaoCreditoDiasObj = ProdutoAmortizacaoDiasUtils.GetTodosProdutoAmortizacaoDias(id_TipoDia, id_Produto);

That is. Get the return of method GetTodosProdutoAmortizacaoDias in class ProdutoAmortizacaoDiasUtils and put it in the ProdutoAmortizacaoCreditoDias variable.

However, the return of method GetTodosProdutoAmortizacaoDias is not a list of ProdutoAmortizacaoCreditoDias but an instance of ProdutoAmortizacaoCreditoDiasSearch .

See the method signature:

public static ProdutoAmortizacaoCreditoDiasSearch GetTodosProdutoAmortizacaoDias(/*params*/)

Solution

The type ProdutoAmortizacaoCreditoDiasSearch has a result property, and apparently it is the list you need.

Then do the following:

try
{
    ProdutoAmortizacaoCreditoDiasObj = ProdutoAmortizacaoDiasUtils.GetTodosProdutoAmortizacaoDias(id_TipoDia, id_Produto).result;
}
catch (Exception ex)
{
    CoreLog.LogError(ex);
    throw new CoreException(ex.Message);
}
    
07.02.2017 / 19:02
0

I believe that the return of your first method should be

return ProdutoAmortizacaoCreditoDiasObj.result;

At least it would make more sense since this property is List<ProdutoAmortizacaoCreditoDias>

    
07.02.2017 / 19:07