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"); }
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); } }
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"); }