Beispiel #1
0
        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);
        }