private Template GetTemplate() { var entity = Storage.Select <Entity>(Frame.EntityList.SelectedValue); var template = new Template(string.Empty, entity, "TableBased", new byte[0]); string Filter = ""; string FilterAttribute = ""; if (Frame.UserList.SelectedValue != "") { Filter = GetQueryStringFromTableFilter( Frame.UserList.SelectedValue, template.Entity.SystemName, "[UserID]", "[Z_EUFilter]"); FilterAttribute = GetQueryStringFromTableFilterAttribute( Frame.UserList.SelectedValue, template.Entity.SystemName, "[UserID]", "[Z_EUFilterAttribute]"); } else if (Frame.UserTypeList.SelectedValue != "") { Filter = GetQueryStringFromTableFilter( Frame.UserTypeList.SelectedValue, template.Entity.SystemName, "[userTypeID]", "[Z_EUTFilter]"); FilterAttribute = GetQueryStringFromTableFilterAttribute( Frame.UserTypeList.SelectedValue, template.Entity.SystemName, "[userTypeID]", "[Z_EUTFilterAttribute]"); } var table = QueryToDB(Filter); if (table.Rows.Count == 1) { var row = table.Rows[0]; PredicateBuilder1.read.Checked = row["read"] == null ? false : Convert.ToBoolean(row["read"]); PredicateBuilder1.create.Checked = row["create"] == null ? false : Convert.ToBoolean(row["create"]); PredicateBuilder1.update.Checked = row["update"] == null ? false : Convert.ToBoolean(row["update"]); PredicateBuilder1.delete.Checked = row["delete"] == null ? false : Convert.ToBoolean(row["delete"]); PredicateBuilder1.comment.Text = row["comment"] == null ? null : row["comment"].ToString(); } table = QueryToDB(FilterAttribute); if (table.Rows.Count != 0) { foreach (DataRow row in table.Rows) { var attr = row["attr"] == null ? null : row["attr"].ToString(); // throw new Exception("Неверные данные") //var attribute = template.Entity.Attributes.FirstOrDefault(x => x.ID.Equals(attr)); var attribute = template.Entity.Attributes.FirstOrDefault(x => x.FPath.Equals(attr)); var field = new Teleform.Reporting.TemplateField(attribute); // var filterExpression = row["filterExpression"] == null ? null : row["filterExpression"].ToString(); var filterPredicate = row["filterPredicate"] == null ? null : row["filterPredicate"].ToString(); var predicateInfo = row["predicateInfo"] == null ? null : row["predicateInfo"].ToString(); field.Predicate = filterPredicate; field.PredicateInfo = predicateInfo; template.Fields.Add(field); } } else { return(null); } return(template); }
private static Teleform.Reporting.constraint.Constraint GetConstraintByAttributeFpath(TemplateField field, Entity entity) { //найти констраин, по имени поля Teleform.Reporting.constraint.Constraint constr = null; var fPath = field.Attribute.FPath; var indexOf = fPath.IndexOf("/"); if (indexOf != -1) { var constrName = fPath.Substring(0, indexOf); constr = entity.Constraints.FirstOrDefault(x => x.ConstraintName == constrName); } return(constr); }