public void Visit(BeginAdHocRelation instruction)
        {
            //validateAdhocRelation(beginAdHocRelation);

            var parentClarifyGenericMap = _genericStack.Peek();

            parentClarifyGenericMap.ClarifyGeneric.DataFields.Add(instruction.FromTableField.Resolve(_services).ToString());

            var tableGeneric = parentClarifyGenericMap.ClarifyGeneric.DataSet.CreateGeneric(instruction.ToTableName.Resolve(_services).ToString());

            tableGeneric.DataFields.Add(instruction.ToTableFieldName.Resolve(_services).ToString());

            var subRootInformation = new SubRootInformation
            {
                ParentKeyField = instruction.FromTableField.Resolve(_services).ToString(),
                RootKeyField   = instruction.ToTableFieldName.Resolve(_services).ToString()
            };

            var model             = _modelStack.Peek();
            var clarifyGenericMap = new ClarifyGenericMapEntry
            {
                ClarifyGeneric = tableGeneric,
                Model          = new ModelInformation
                {
                    ModelName      = model.ModelName,
                    ParentProperty = model.ParentProperty,
                    IsCollection   = model.IsCollection
                },
                NewRoot = subRootInformation
            };

            parentClarifyGenericMap.AddChildGenericMap(clarifyGenericMap);
            _genericStack.Push(clarifyGenericMap);
        }
        public void Visit(BeginAdHocRelation beginAdHocRelation)
        {
            validateAdhocRelation(beginAdHocRelation);

            var parentClarifyGenericMap = _genericStack.Peek();

            parentClarifyGenericMap.ClarifyGeneric.DataFields.Add(beginAdHocRelation.FromTableField);

            var tableGeneric = parentClarifyGenericMap.ClarifyGeneric.DataSet.CreateGeneric(beginAdHocRelation.ToTableName);

            tableGeneric.DataFields.Add(beginAdHocRelation.ToTableFieldName);

            var subRootInformation = new SubRootInformation
            {
                ParentKeyField = beginAdHocRelation.FromTableField,
                RootKeyField   = beginAdHocRelation.ToTableFieldName
            };

            var clarifyGenericMap = new ClarifyGenericMapEntry
            {
                ClarifyGeneric = tableGeneric,
                Model          = _modelStack.Peek(),
                NewRoot        = subRootInformation
            };

            parentClarifyGenericMap.AddChildGenericMap(clarifyGenericMap);
            _genericStack.Push(clarifyGenericMap);
        }
Пример #3
0
        private void validateAdhocRelation(BeginAdHocRelation beginAdHocRelation)
        {
            var currentTableName = getCurrentTableName();

            if (!_schemaCache.IsValidField(currentTableName, beginAdHocRelation.FromTableField))
            {
                throw new ApplicationException("Cannot create an AdHocRelation from table {0} using invalid field {1}.".ToFormat(currentTableName, beginAdHocRelation.FromTableField));
            }

            if (!_schemaCache.IsValidTableOrView(beginAdHocRelation.ToTableName))
            {
                throw new ApplicationException("Cannot create an AdHocRelation from table {0} to invalid table {1}.".ToFormat(currentTableName, beginAdHocRelation.ToTableName));
            }

            if (!_schemaCache.IsValidField(beginAdHocRelation.ToTableName, beginAdHocRelation.ToTableFieldName))
            {
                throw new ApplicationException("Cannot create an AdHocRelation from table {0} to table {1} with invalid field {2}.".ToFormat(currentTableName, beginAdHocRelation.ToTableName, beginAdHocRelation.ToTableFieldName));
            }
        }
 public void Visit(BeginAdHocRelation beginAdHocRelation)
 {
 }
        public void Visit(BeginAdHocRelation beginAdHocRelation)
        {
            validateAdhocRelation(beginAdHocRelation);

            var parentClarifyGenericMap = _genericStack.Peek();

            parentClarifyGenericMap.ClarifyGeneric.DataFields.Add(beginAdHocRelation.FromTableField);

            var tableGeneric = parentClarifyGenericMap.ClarifyGeneric.DataSet.CreateGeneric(beginAdHocRelation.ToTableName);
            tableGeneric.DataFields.Add(beginAdHocRelation.ToTableFieldName);

            var subRootInformation = new SubRootInformation { ParentKeyField = beginAdHocRelation.FromTableField, RootKeyField = beginAdHocRelation.ToTableFieldName };

            var clarifyGenericMap = new ClarifyGenericMapEntry { ClarifyGeneric = tableGeneric, Model = _modelStack.Peek(), NewRoot = subRootInformation };
            parentClarifyGenericMap.AddChildGenericMap(clarifyGenericMap);
            _genericStack.Push(clarifyGenericMap);
        }
        private void validateAdhocRelation(BeginAdHocRelation beginAdHocRelation)
        {
            var currentTableName = getCurrentTableName();

            if (!_schemaCache.IsValidField(currentTableName, beginAdHocRelation.FromTableField))
                throw new ApplicationException("Cannot create an AdHocRelation from table {0} using invalid field {1}.".ToFormat(currentTableName, beginAdHocRelation.FromTableField));

            if (!_schemaCache.IsValidTableOrView(beginAdHocRelation.ToTableName))
                throw new ApplicationException("Cannot create an AdHocRelation from table {0} to invalid table {1}.".ToFormat(currentTableName, beginAdHocRelation.ToTableName));

            if (!_schemaCache.IsValidField(beginAdHocRelation.ToTableName, beginAdHocRelation.ToTableFieldName))
                throw new ApplicationException("Cannot create an AdHocRelation from table {0} to table {1} with invalid field {2}.".ToFormat(currentTableName, beginAdHocRelation.ToTableName, beginAdHocRelation.ToTableFieldName));
        }
Пример #7
0
 public void Visit(BeginAdHocRelation instruction)
 {
 }
 public void Visit(BeginAdHocRelation instruction)
 {
     _instructions.Add(instruction);
 }