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); }