Пример #1
0
        public void Add(RootResource resource, List <JObject> rawDataList)
        {
            List <SeedData> seedDataList = rawDataList.Select(o => new SeedData(o, ToSeedRecord(resource.Class, o))).ToList();

            Data[resource.Class.Id] = seedDataList;

            PushSeedDataToNestedResources(resource);
            PushSeedDataToProperties(resource.Class);
        }
Пример #2
0
        private void CreateOneToManyRelation(RootResource resource, Property property)
        {
            var rootResource   = RootResources.First(r => r.Class == property.Class);
            var nestedResource = resource.OneToMany(property);

            nestedResource.IsReadonly   = true;
            nestedResource.RootResource = rootResource;
            rootResource.AlternateResources.Add(nestedResource);
        }
Пример #3
0
        public void AddRootResource(ClassModel c)
        {
            var resource = new RootResource();

            resource.Name      = c.Name;
            resource.Class     = c;
            resource.DataModel = DataModel;
            RootResources.Add(resource);
        }
Пример #4
0
 internal void PushSeedDataToNestedResources(RootResource resource)
 {
     foreach (var nestedResource in resource.NestedResources)
     {
         foreach (var item in Data[resource.Class.Id].ToList())
         {
             if (SplitData(item, nestedResource))
             {
                 if (nestedResource.RootResource != null)
                 {
                     PushSeedDataToNestedResources(nestedResource.RootResource);
                 }
                 PushSeedDataToProperties(nestedResource.Class);
             }
         }
     }
 }
Пример #5
0
        private void CreateManyToManyRelation(RootResource resource, Property property)
        {
            var    rootResource = RootResources.First(r => r.Class == property.Class);
            string pivotName;

            if (resource.Class == property.Class || string.Compare(resource.Class.Name, property.Noun, StringComparison.InvariantCulture) < 0)
            {
                pivotName = $"{resource.Class.Name}{property.Noun}";
            }
            else
            {
                pivotName = $"{property.Noun}{resource.Class.Name}";
            }
            var nestedResource = resource.ManyToMany(property, pivotName);

            nestedResource.Name         = property.Name.Substring(0, property.Name.Length - 1);
            nestedResource.Name.Plural  = property.Name;
            nestedResource.RootResource = rootResource;
            rootResource.AlternateResources.Add(nestedResource);
        }