Beispiel #1
0
        private ReferentialEntity PopulateEntity(JObject jObject, EntityDefinition schema)
        {
            ReferentialEntity target = new ReferentialEntity(this._referenceSchema.Type, _file)
            {
                Schema = this._referenceSchema,
            };

            foreach (var item in jObject.Properties())
            {
                var p = schema.Properties.FirstOrDefault(c => c.Name.ToLower() == item.Name.ToLower());
                if (p != null)
                {
                    try
                    {
                        var value = ConvertValue(p.Type, item.Value);
                        target[p.Name] = value;
                    }
                    catch (Exception e)
                    {
                        this._diagnostic.Append(new DiagnositcMessage()
                        {
                            Severity = SeverityEnum.Error, Text = e.Message, Exception = e
                        });
                    }
                }
            }

            return(target);
        }
Beispiel #2
0
 public ConceptItemEntity(ViewpointModelItem config, ReferentialEntity entity)
     : base(config)
 {
     this.CurrentItem        = entity;
     this.Name               = entity.Name;
     this.Text               = entity.Label ?? entity.Name;
     this.Tag                = entity;
     this.ImageIndex         = 1;
     this.SelectedImageIndex = 1;
 }
Beispiel #3
0
        private DslModeling::ModelElement GetModel(ReferentialEntity toFind)
        {
            var key = toFind.GetReference().ToString();

            foreach (Concept concept in this.Concepts)
            {
                if (concept.ReferenceSource == key)
                {
                    return(concept);
                }

                foreach (ConceptElement element in concept.Children)
                {
                    if (element.ReferenceSource == key)
                    {
                        return(element);
                    }

                    foreach (ConceptSubElement cse in element.Children)
                    {
                        if (cse.ReferenceSource == key)
                        {
                            return(cse);
                        }
                    }
                }
            }

            foreach (ModelElement element in this.Elements)
            {
                if (element.ReferenceSource == key)
                {
                    return(element);
                }

                foreach (SubElement ce in element.Children)
                {
                    if (ce.ReferenceSource == key)
                    {
                        return(ce);
                    }
                }
            }

            return(null);
        }
Beispiel #4
0
        private void ManageSubComposition(ConceptItemEntity f, ReferentialEntity parent, ViewpointModelItem view)
        {
            var referential = view.Definition.File.Parent.Models;

            var filter = view.Definition.Name;

            var list = new List <ReferentialEntity>(1000);

            foreach (var item in view.Children)
            {
                Files.Schemas.RelationshipDefinition itemDef = item.Relationship;
                var children = parent.GetTargetEntities(itemDef).ToList();
                list.AddRange(children);
            }

            _lastQueryCompositionItems = list;
            searchEntitiesTextBox.Text = this._lastFilterEntitySelected.LastSearchEntity;
        }
Beispiel #5
0
        private void ManageSubRelationship(ReferentialEntity parent, ViewpointModelItem view)
        {
            List <ReferentialEntity> targetFilters = new List <ReferentialEntity>();

            foreach (ConceptItem concept in ConceptsTreeView.Nodes)
            {
                foreach (TreeNode entity in concept.Nodes)
                {
                    if (entity.Tag is ReferentialEntity e)
                    {
                        targetFilters.Add(e);
                    }
                }
            }

            var list2 = new List <RelationshipItem>(1000);

            foreach (ReferenceItem reference in view.References)
            {
                var def = reference.RelationshipDefinition;
                IEnumerable <ReferentialRelationship> children = parent.GetRelationships(def).ToList();
                foreach (var item in children)
                {
                    var e1 = item.GetTargetEntity(def.Target.Name);
                    if (e1 != null)
                    {
                        if (targetFilters.Any(c => c.Name == e1.Name))
                        {
                            list2.Add(new RelationshipItem(item, e1));
                        }
                    }
                }
            }
            _lastQueryReferenceItems    = list2;
            searchEntitiesTextBox2.Text = this._lastFilterEntitySelected.LastSearchEntity2;
        }
Beispiel #6
0
 public RelationshipItem(ReferentialRelationship relationship, ReferentialEntity item)
 {
     this.Relationship = relationship;
     this.Entity       = item;
 }
Beispiel #7
0
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            var source = (Entities <T>)value;

            writer.WriteStartObject();

            writer.WritePropertyName("Target");
            writer.WriteValue(source.Target);

            writer.WritePropertyName("Referentials");
            writer.WriteStartArray();


            if (this._referenceSchema.Kind == KindSchemaEnum.Relationship)
            {
                foreach (object item in source)
                {
                    writer.WriteStartObject();

                    ReferentialRelationship e = (ReferentialRelationship)item;
                    foreach (var propertyName in e.PropertyKeys())
                    {
                        writer.WritePropertyName(propertyName);
                        writer.WriteValue(e[propertyName]);
                    }

                    writer.WritePropertyName("OriginLink");
                    writer.WriteStartObject();
                    foreach (var propertyName in e.Origin.PropertyKeys())
                    {
                        writer.WritePropertyName(propertyName);
                        writer.WriteValue(e[propertyName]);
                    }
                    writer.WriteEndObject();


                    writer.WritePropertyName("TargetLink");
                    writer.WriteStartObject();
                    foreach (var propertyName in e.Target.PropertyKeys())
                    {
                        writer.WritePropertyName(propertyName);
                        writer.WriteValue(e[propertyName]);
                    }
                    writer.WriteEndObject();

                    writer.WriteEndObject();
                }
            }
            else
            {
                foreach (object item in source)
                {
                    writer.WriteStartObject();
                    ReferentialEntity e = (ReferentialEntity)item;
                    foreach (var propertyName in e.PropertyKeys())
                    {
                        writer.WritePropertyName(propertyName);
                        writer.WriteValue(e[propertyName]);
                    }
                    writer.WriteEndObject();
                }
            }

            writer.WriteEndArray();

            writer.WriteEndObject();
        }