Показать сообщение отдельно
Старый 14.04.2014, 14:26   #10  
Lavdislav is offline
Lavdislav
Участник
 
34 / 10 (1) +
Регистрация: 28.02.2014
?
Апдейт: в этих questions есть ещё объекты (прикрепляю картинку, в красной рамке), попытался сделать как-то так (красным цветом):
Код:
if (survey.LogicalName == "bf_survey")
{
    survey.Id = Guid.Empty;
    survey.Attributes.Remove("bf_surveyid");

    survey["bf_survey_name"] = "[COPY] " + survey["bf_survey_name"];
    Guid Lid = _orgService.Create(survey);


    QueryExpression qry = new QueryExpression()
    {
        EntityName = "bf_surveyquestion",
        ColumnSet = new ColumnSet(true)
    };

    qry.Criteria.AddCondition("bf_surveyquestion_survey", ConditionOperator.Equal, context.PrimaryEntityId);

    var questions = _orgService.RetrieveMultiple(qry).Entities;

    foreach (var question in questions)
    {
        question.Attributes.Remove("bf_surveyquestionid");
        question.Id = Guid.NewGuid();
        string regardingaccountype = "bf_survey";
        question["bf_surveyquestion_survey"] = new EntityReference(regardingaccountype, Lid);
        Guid quest = _orgService.Create(question);

        QueryExpression evalobj = new QueryExpression()
        {
            EntityName = "bf_surveyqevalobject",
            ColumnSet = new ColumnSet(true)
        };

        evalobj.Criteria.AddCondition("bf_surveyqevalobject_squ", ConditionOperator.Equal, question.Id);

        var evobjects = _orgService.RetrieveMultiple(evalobj).Entities;

        foreach (var evobject in evobjects)
        {
            evobject.Attributes.Remove("bf_surveyquestiongroupid");
            evobject.Id = Guid.NewGuid();
            string objects = "bf_surveyqevalobject";
            evobject["bf_surveyqevalobject_squ"] = new EntityReference(objects, quest);
                        _orgService.Create(evobject);
        }
    }
}
Но опять же question.Id, это ид новой записи, но мне как-то надо сравнить с той где есть эти объекты, брр