На данный момент как-то так, но опять же, копию делает, но без questions..
Код:
protected override void Execute(CodeActivityContext activityContext)
{
IExecutionContext context = activityContext.GetExtension<IExecutionContext>();
IOrganizationServiceFactory serviceFactory = activityContext.GetExtension<IOrganizationServiceFactory>();
IOrganizationService _orgService = serviceFactory.CreateOrganizationService(context.UserId);
ITracingService tracingService = activityContext.GetExtension<ITracingService>();
Entity survey = _orgService.Retrieve(context.PrimaryEntityName, context.PrimaryEntityId, new ColumnSet(true));
if (survey.LogicalName == "bf_survey")
{
survey.Id = Guid.Empty;
survey.Attributes.Remove("bf_surveyid");
Guid Lid = _orgService.Create(survey);
QueryExpression qry = new QueryExpression()
{
EntityName = "bf_surveyquestion",
ColumnSet = new ColumnSet(true)
};
qry.Criteria.AddCondition("bf_surveyquestion_survey", ConditionOperator.Equal, survey.Id);
List<Entity> questions = _orgService.RetrieveMultiple(qry).Entities.ToList();
foreach (var question in questions)
{
question.Attributes.Remove("bf_surveyquestionid");
question.Id = Guid.NewGuid();
string regardingaccountype = "bf_survey";
question["bf_surveyquestion"] = new EntityReference(regardingaccountype, Lid);
_orgService.Create(question);
}
}
}