Показать сообщение отдельно
Старый 11.04.2014, 11:36   #7  
Lavdislav is offline
Lavdislav
Участник
 
34 / 10 (1) +
Регистрация: 28.02.2014
На данный момент как-то так, но опять же, копию делает, но без 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);
                }
            }
        }