public List <ComboBoxUpdateData> SetConditionRightAttribute(Guid id, string value)
        {
            var result = new List <ComboBoxUpdateData>();

            if (Context != null && Context.Def != null && Context.Def.Conditions != null)
            {
                var condition = Context.Def.Conditions.OfType <ReportConditionDef>().FirstOrDefault(c => c.Id == id && c.RightPart is ReportConditionRightAttributeDef);

                if (condition != null)
                {
                    var  rightPart = (ReportConditionRightAttributeDef)condition.RightPart;
                    Guid attrId;
                    if (Guid.TryParse(value, out attrId))
                    {
                        if (rightPart.Attribute != null)
                        {
                            var sourceDef = Context.Def.Sources.FirstOrDefault(s => s.Id == rightPart.Attribute.SourceId);
                            if (sourceDef != null && sourceDef.DocDef != null && sourceDef.DocDef.Attributes != null && sourceDef.DocDef.Attributes.Any(a => a.Id == attrId))
                            {
                                rightPart.Attribute.AttributeId = attrId;
                            }

                            var data = new ComboBoxUpdateData("ra-" + id, rightPart.Attribute.AttributeId.ToString());
                            result.Add(data);
                        }
                    }
                }
            }
            return(result);
        }
        public List <ComboBoxUpdateData> SetConditionRightSource(Guid id, string value)
        {
            var result = new List <ComboBoxUpdateData>();

            if (Context != null && Context.Def != null && Context.Def.Conditions != null)
            {
                var condition = Context.Def.Conditions.OfType <ReportConditionDef>().FirstOrDefault(c => c.Id == id && c.RightPart is ReportConditionRightAttributeDef);

                if (condition != null)
                {
                    var  rightPart = (ReportConditionRightAttributeDef)condition.RightPart;
                    Guid sourceId;
                    if (Guid.TryParse(value, out sourceId))
                    {
                        var sourceDef = Context.Def.Sources.FirstOrDefault(s => s.Id == sourceId);
                        if (rightPart.Attribute != null)
                        {
                            rightPart.Attribute.SourceId = sourceId;
                            if (sourceDef != null && sourceDef.DocDef != null && sourceDef.DocDef.Attributes != null)
                            {
                                if (sourceDef.DocDef.Attributes.All(a => a.Id != rightPart.Attribute.AttributeId))
                                {
                                    rightPart.Attribute.AttributeId = Guid.Empty;
                                }
                            }
                        }
                        else
                        {
                            rightPart.Attribute = new ReportAttributeDef {
                                AttributeId = Guid.Empty, SourceId = sourceId
                            };
                        }

                        var data = new ComboBoxUpdateData("ra-" + id, rightPart.Attribute.AttributeId.ToString());
                        result.Add(data);
                        if (sourceDef != null && sourceDef.DocDef != null && sourceDef.DocDef.Attributes != null)
                        {
                            data.items =
                                sourceDef.DocDef.Attributes.Where(a => a.Type.Id != (short)CissaDataType.Doc &&
                                                                  a.Type.Id != (short)CissaDataType.DocList)
                                .Select(a => new ComboBoxItem(a.Id.ToString(), a.Caption)).ToArray();
                        }

                        return(result);
                    }
                }
            }
            return(result);
        }