Beispiel #1
0
        private EntityId UpdateHeroEntity(JsonElement obj, ISet <EntityId> entityIds)
        {
            EntityId entityId = _extractId(obj);

            entityIds.Add(entityId);

            if (entityId.Name.Equals("Human", StringComparison.Ordinal))
            {
                HumanEntity entity = _entityStore.GetOrCreate <HumanEntity>(entityId);
                entity.Name = DeserializeNonNullString(obj, "name");

                var friends = new List <EntityId>();

                foreach (JsonElement child in obj.GetProperty("friends").EnumerateArray())
                {
                    friends.Add(UpdateFriendEntity(child, entityIds));
                }

                entity.Friends = friends;
                return(entityId);
            }

            if (entityId.Name.Equals("Droid", StringComparison.Ordinal))
            {
                DroidEntity entity = _entityStore.GetOrCreate <DroidEntity>(entityId);
                entity.Name = DeserializeNonNullString(obj, "name");

                var friends = new List <EntityId>();

                foreach (JsonElement child in obj.GetProperty("friends").EnumerateArray())
                {
                    friends.Add(UpdateFriendEntity(child, entityIds));
                }

                entity.Friends = friends;

                return(entityId);
            }

            throw new NotSupportedException();
        }
Beispiel #2
0
        private EntityId UpdateFriendEntity(JsonElement obj, ISet <EntityId> entityIds)
        {
            EntityId entityId = _extractId(obj);

            entityIds.Add(entityId);

            if (entityId.Name.Equals("Human", StringComparison.Ordinal))
            {
                HumanEntity entity = _entityStore.GetOrCreate <HumanEntity>(entityId);
                entity.Name = DeserializeNonNullString(obj, "name");
                return(entityId);
            }

            if (entityId.Name.Equals("Droid", StringComparison.Ordinal))
            {
                DroidEntity entity = _entityStore.GetOrCreate <DroidEntity>(entityId);
                entity.Name = DeserializeNonNullString(obj, "name");
                return(entityId);
            }

            throw new NotSupportedException();
        }