I created a Web API in C # that returns me a list of products in JSON. However, the PrecoVenda
property is always returned with a value of zero and I noticed that this occurs because in the constructor of the Produto
class, PrecoCusto
also stays at zero during program execution, as you can see in the image below.
IfIhavethevaluessetin
ListaProdutos.cs
(inpropertiesPrecoCusto
),shouldnotthevaluebefetchedintheabovecode?Howcouldthisbesolved?
Followthecode:
ProductsController.cs:
usingSystem.Collections.Generic;usingSystem.Web.Http;usingWebAPI_0527.Models;usingWebAPI_0527.Dados;namespaceWebAPI_0527.Controllers{publicclassProdutosController:ApiController{[HttpGet]publicList<Produto>GetProdutos(){returnListaProdutos.GetList();}}}
ProductProducts.cs
usingSystem.Collections.Generic;usingWebAPI_0527.Models;namespaceWebAPI_0527.Dados{publicclassListaProdutos{publicstaticList<Produto>GetList(){List<Produto>listaProdutos=newList<Produto>(){newProduto(){Id=1,Nome="Arroz", PrecoCusto = 12, Unidade = Produto.TipoDeUnidade.Kg.ToString(), Quantidade = 9 },
new Produto() { Id = 2, Nome = "Leite", PrecoCusto = 5, Unidade = Produto.TipoDeUnidade.Litro.ToString(), Quantidade = 6 }
};
return listaProdutos;
}
}
}
Product.cs
namespace WebAPI_0527.Models
{
public class Produto
{
public int Id { get; set; }
public string Nome { get; set; }
public string Unidade { get; set; }
public double Quantidade { get; set; }
public double PrecoCusto { get; set; }
public double PrecoVenda { get; set; }
public Produto()
{
PrecoVenda = PrecoCusto + PrecoCusto / 3;
}
public enum TipoDeUnidade
{
Unidade,
Litro,
Balde,
Par,
Kg
}
}
}