Example #1
0
        internal bool DataBind()
        {
            this.Keys.EnsureDbKeysValue();

            SqlQuery query = this.CreateSelectQuery();
            RecordTableMetaDataProvider metaDataProvider = new RecordTableMetaDataProvider(this.Template);
            IEntityMetaData metaData = metaDataProvider.CreateEntityMetaData();

            FilterCriteriaList filters = new FilterCriteriaList(this.card.Factory.ParameterPrefix);

            IEnumerable<PropertyMetaData> keySchemas = metaData.OfKeys(true);//Order a göre geldiği için böyle.

            IEnumerator<DbKey> keys = this.Keys.GetEnumerator();

            foreach (PropertyMetaData keyProperty in keySchemas)
            {
                keys.MoveNext();
                filters.Add(keyProperty, ConditionOperator.Equals, keys.Current.Value);
            }

            char tableAlias = this.TableName[0];
            string tableNameOp = tableAlias + ".";

            query.Combine(filters.ToQuery(tableNameOp));

            bool readed = false;
            Record record = this.Template.NewRecord();
            using (IDataReader dr = this.card.Factory.DataAccess.CreateDataReader(query, CommandBehavior.SingleRow))
            {
                if (readed = dr.Read())
                {
                    int length = dr.FieldCount;
                    for (int j = 0; j < length; ++j)
                    {
                        string columnName = dr.GetName(j);

                        object dbValue = dr[j];
                        if (dbValue == DBNull.Value)
                            dbValue = null;

                        record[columnName] = dbValue;
                    }
                }
            }

            if (readed)
            {
                using (Binding binding = new Binding(record, metaDataProvider, this.Controls))
                {
                    binding.DataBind();
                }
            }
            else
            {
                foreach (IEntityControl ctrl in this.Controls)
                    ctrl.Clear();
            }

            return readed;
        }
Example #2
0
        internal FormRecordValidationResult ValidateInputs()
        {
            FormRecordValidationResult ret = new FormRecordValidationResult();

            RecordTable template = this.Template;
            Record newRecord = template.NewRecord();

            RecordTableMetaDataProvider provider = new RecordTableMetaDataProvider(template);
            using (Binding binding = new Binding(newRecord, provider, this.Controls))
            {
                if (binding.ReadValues())
                {
                    ret.Validated = true;
                    ret.ValidatedRecord = newRecord;
                    ret.MetaDataProvider = provider;
                }
            }

            return ret;//if validation fails returns null.
        }
Example #3
0
        internal void Init()
        {
            RecordTable template = this.Template;
            RecordTableMetaDataProvider metaDataProvider = new RecordTableMetaDataProvider(template);

            using (Binding binding = new Binding(template.NewRecord(),metaDataProvider, this.Controls))
            {
                binding.Init();
            }
        }