Ejemplo n.º 1
0
        public SubStatement(JToken subStatement, ApiVersion version) : base(subStatement, version)
        {
            GuardType(subStatement, JTokenType.Object);

            var @object = subStatement["object"];

            if (@object != null)
            {
                GuardType(@object, JTokenType.Object);
                var objectType = @object["objectType"];
                if (objectType != null)
                {
                    ObjectType type = ParseObjectType(objectType, ObjectType.Activity, ObjectType.Agent, ObjectType.Group, ObjectType.Activity, ObjectType.StatementRef);
                    Object = type.CreateInstance(@object, version);
                }
                else if (@object["id"] != null)
                {
                    // Assume activity
                    Object = new Activity(@object, version);
                }
                else
                {
                    // TODO: Exception
                }
            }

            GuardAdditionalProperties((JObject)subStatement, "objectType", "actor", "object", "verb", "result", "context", "timestamp", "attachment");
        }
Ejemplo n.º 2
0
        public StatementBase(JToken statement, ApiVersion version) : base(statement, version)
        {
            Attachments = new AttachmentCollection();

            GuardType(statement, JTokenType.Object);

            var actor = statement["actor"];

            if (actor != null)
            {
                GuardType(actor, JTokenType.Object);

                var objectType = actor["objectType"];
                if (objectType != null)
                {
                    ObjectType type = ParseObjectType(objectType, ObjectType.Agent, ObjectType.Group);
                    Actor = (Agent)type.CreateInstance(actor, version);
                }
                else
                {
                    Actor = new Agent(actor, version);
                }
            }

            var verb = statement["verb"];

            if (verb != null)
            {
                Verb = new Verb(verb, version);
            }

            if (statement["result"] != null)
            {
                Result = new Result(statement["result"], version);
            }

            if (statement["context"] != null)
            {
                Context = new Context(statement["context"], version);
            }

            var timestamp = statement["timestamp"];

            if (timestamp != null)
            {
                Timestamp = ParseDateTimeOffset(timestamp);
            }

            if (statement["attachments"] != null)
            {
                Attachments = new AttachmentCollection(statement["attachments"], version);
            }
        }
Ejemplo n.º 3
0
        public Statement(JToken statement, ApiVersion version) : base(statement, version)
        {
            GuardType(statement, JTokenType.Object);

            var id = statement["id"];

            if (id != null)
            {
                Id = ParseGuid(id);
            }

            var @object = statement["object"];

            if (@object != null)
            {
                GuardType(@object, JTokenType.Object);

                var jobjectType = @object["objectType"];
                if (jobjectType != null)
                {
                    ObjectType type = ParseObjectType(jobjectType, ObjectType.Activity, ObjectType.Agent, ObjectType.Group, ObjectType.Activity, ObjectType.StatementRef, ObjectType.SubStatement);
                    Object = type.CreateInstance(@object, version);
                }
                else if (@object["id"] != null)
                {
                    // Assume activity
                    Object = new Activity(@object, version);
                }
            }

            var stored = statement["stored"];

            if (stored != null)
            {
                Stored = ParseDateTimeOffset(stored);
            }

            var authority = statement["authority"];

            if (authority != null)
            {
                GuardType(authority, JTokenType.Object);

                var objectType = authority["objectType"];
                if (objectType != null)
                {
                    ObjectType type = ParseObjectType(objectType, ObjectType.Agent, ObjectType.Group);
                    Authority = (Agent)type.CreateInstance(authority, version);
                }
                else
                {
                    Authority = new Agent(authority, version);
                }
            }

            var ver = statement["version"];

            if (ver != null)
            {
                GuardType(ver, JTokenType.String);
                Version = new ApiVersion(ver.Value <string>());
            }

            GuardAdditionalProperties((JObject)statement, "id", "stored", "authority", "version", "object", "actor", "verb", "result", "context", "timestamp", "attachments");
        }