internal DatastoreObjectMetadata(IDictionary <string, object> dict) { foreach (string key in dict.Keys) { object value; dict.TryGetValue(key, out value); if (value == null) { continue; } string valueString = value.ToString(); switch (key) { case "key": Key = valueString; break; case "owner": Owner = valueString; break; case "schema": IDictionary <string, object> schema = (IDictionary <string, object>)value; schema.TryGetValue("version", out value); SchemaVersion = (long)value; break; case "permissions": Permission = DictionaryToPermission((IDictionary <string, object>)value); break; case "created_at": CreatedAt = (long)value; break; case "updated_at": UpdatedAt = (long)value; break; case "ttl": TTL = (long)value; break; } } }
internal static IDictionary <string, object> ToDictionary(DatastorePermission permission) { int read = 0; int write = 0; switch (permission) { case DatastorePermission.Inherit: return(null); case DatastorePermission.None: break; case DatastorePermission.ReadOnly: read = 1; break; case DatastorePermission.WriteOnly: write = 1; break; case DatastorePermission.ReadWrite: read = 1; write = 1; break; case DatastorePermission.PublicRead: read = 2; break; case DatastorePermission.PublicReadOwnerWrite: read = 2; write = 1; break; } IDictionary <string, object> value = new Dictionary <string, object> (); value.Add("read", read); value.Add("write", write); return(value); }