Hello Everyone.
I m having some trouble because my plugin only work in assincronous and i need to work at sincronous mode, when i debug says that "produto teste" id doesnt exist.
can anyone help me ?
if (entity.LogicalName != "rbs_produtodoaluguel") return;
try
{
var prodAluguelId = entity.Id;
var meuProdutoId = entity.GetAttributeValue<EntityReference>("rbs_produto_teste").Id;
QueryExpression queryProd = new QueryExpression("rbs_produtodoaluguel")
{
// Colunas da Busca
ColumnSet = new ColumnSet(
"rbs_produto_teste", "rbs_valorunitario"
)
};
//
var condicao = new ConditionExpression();
condicao.AttributeName = "rbs_produto_teste";
condicao.Operator = ConditionOperator.Equal;
condicao.Values.Add(meuProdutoId);
// Filtra os resultados pela condição
var filtro = new FilterExpression();
filtro.Conditions.Add(condicao);
queryProd.Criteria.AddFilter(filtro);
QueryExpression query = new QueryExpression("productpricelevel")
{
// Colunas da Busca
ColumnSet = new ColumnSet(
"pricelevelid", "productid", "amount"
)
};
//
var condicao2 = new ConditionExpression();
condicao2.AttributeName = "productid";
condicao2.Operator = ConditionOperator.Equal;
condicao2.Values.Add(meuProdutoId);
// Filtra os resultados pela condição
var filtro2 = new FilterExpression();
filtro2.Conditions.Add(condicao2);
query.Criteria.AddFilter(filtro2);
// var resultado recebe os dados da busca
var result1 = service.RetrieveMultiple(query);
decimal valor = 0;
foreach (var e in result1.Entities)
{
decimal _valor = e.GetAttributeValue<Money>("amount").Value;
valor += _valor;
}
Entity prodAluguel = new Entity("rbs_produtodoaluguel");
prodAluguel.Attributes["rbs_produtodoaluguelid"] = prodAluguelId;
prodAluguel["rbs_valorunitario"] = new Money(valor);
service.Update(prodAluguel);
}
catch (FaultException<OrganizationServiceFault> ex)
{
throw new InvalidPluginExecutionException("An error occurred in the FollowupPlugin plug-in.", ex);
}
catch (Exception ex)
{
tracingService.Trace("FollowupPlugin: {0}", ex.ToString());
throw;
}