Is this a correct workflow code
using System;
using Microsoft.Xrm.Sdk.Workflow;
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Query;
using System.Activities;
namespace Order
{
public class Order : CodeActivity
{
protected override void Execute(CodeActivityContext executionContext)
{
ITracingService tracingService = executionContext.GetExtension<ITracingService>();
IWorkflowContext context = executionContext.GetExtension<IWorkflowContext>();
IOrganizationServiceFactory serviceFactory = executionContext.GetExtension<IOrganizationServiceFactory>();
IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);
//var service = GetService(executionContext);
var quoteRef = QuotRef.Get(executionContext);
var orderRef = OrderRef.Get(executionContext);
try
{
tracingService.Trace("No incident");
var fetchData = new
{
QuoteGUID = quoteRef.Id.ToString()
};
var fetchXml = $@"<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>
<entity name='quotedetail'>
<attribute name='productid' />
<attribute name='productdescription' />
<attribute name='priceperunit' />
<attribute name='quantity' />
<attribute name='extendedamount' />
<attribute name='quotedetailid' />
<order attribute='productid' descending='false' />
<link-entity name='quote' from='quoteid' to='quoteid' link-type='inner' alias='aa'>
<filter type='and'>
<condition attribute='quoteid' operator='eq' value='{fetchData.QuoteGUID } />
</filter>
</link-entity>
</entity>
</fetch>
";
EntityCollection quoteProdCollection = service.RetrieveMultiple(new FetchExpression(fetchXml.ToString()));
if (null == quoteProdCollection || null == quoteProdCollection.Entities || quoteProdCollection.Entities.Count == 0)
{
return;
}
else
{
foreach (Entity quoteProds in quoteProdCollection.Entities)
{
Entity orderProdCreate = new Entity("salesorderdetail");
orderProdCreate["salesorderdetailid"] = new EntityReference("salesorder", orderRef.Id);
EntityReference uOM = quoteProds.GetAttributeValue<EntityReference>("uomid");
orderProdCreate["uomid"] = new EntityReference("uom", uOM.Id);
orderProdCreate["productid"] = new EntityReference("product", quoteProds.GetAttributeValue<EntityReference>("productid").Id);
orderProdCreate["quantity"] = quoteProds.GetAttributeValue<decimal>("quantity");
orderProdCreate["ispriceoverridden"] = false;
service.Create(orderProdCreate);
}
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
[Input("Order")]
[ReferenceTarget("salesorder")]
public InArgument<EntityReference> OrderRef { get; set; }
[Input("Quote")]
[ReferenceTarget("quote")]
public InArgument<EntityReference> QuotRef { get; set; }
}
}
I am getting it like "invalid XML"