public static Permission Parse(JObject m) { Permission permission = new Permission(); if (m["_id"] != null) { permission.Id = m["_id"].Value <string>(); } permission.Roles = new List <string>(); if (m["roles"] != null) { foreach (var role in m["roles"] as JArray) { permission.Roles.Add(role.Value <string>()); } } if (m["_updatedAt"] != null) { permission.UpdatedAt = TypeUtils.ParseDateTime(m["_updatedAt"] as JObject); } if (m["meta"] != null) { permission.Meta = PermissionMeta.Parse(m["meta"] as JObject); } return(permission); }
public static Subscription Parse(JObject m) { var subscription = new Subscription(); if (m["t"] != null) { switch (m["t"].ToString()) { case "d": subscription.Type = RoomType.DirectMessage; break; case "p": subscription.Type = RoomType.PrivateGroup; break; case "c": subscription.Type = RoomType.PublicChannel; break; } } if (m["ts"] != null) { subscription.CreatedDate = TypeUtils.ParseDateTime(m["ts"] as JObject); } if (m["ls"] != null) { subscription.LastSeenDate = TypeUtils.ParseDateTime(m["ls"] as JObject); } if (m["name"] != null) { subscription.Name = m["name"].ToString(); } if (m["rid"] != null) { subscription.RoomId = m["rid"].ToString(); } if (m["u"] != null) { subscription.CreatedBy = User.Parse(m["u"] as JObject); } if (m["open"] != null) { subscription.IsAlert = (m["alert"] as JValue).Value <bool>(); } if (m["alert"] != null) { subscription.IsOpen = (m["open"] as JValue).Value <bool>(); } subscription.Roles = new List <string>(); if (m["roles"] != null) { foreach (var role in m["roles"] as JArray) { subscription.Roles.Add(role.Value <string>()); } } if (m["unread"] != null) { subscription.UnreadMessages = (m["unread"] as JValue).Value <Int32>(); } if (m["_id"] != null) { subscription.Id = (m["_id"] as JValue).Value <string>(); } return(subscription); }
public static Room Parse(IMeteor meteor, JObject m) { var room = new Room(meteor); if (m["_id"] != null) { room.Id = m["_id"].Value <string>(); } if (m["name"] != null) { room.Name = m["name"].Value <string>(); } if (m["t"] != null) { switch (m["t"].ToString()) { case "d": room.Type = RoomType.DirectMessage; break; case "p": room.Type = RoomType.PrivateGroup; break; case "c": room.Type = RoomType.PublicChannel; break; } } if (m["u"] != null) { room.Owner = User.Parse(m["u"] as JObject); } if (m["topic"] != null) { room.Topic = m["topic"].Value <string>(); } if (m["default"] != null) { room.Default = m["default"].Value <bool>(); } if (m["ro"] != null) { room.ReadOnly = m["ro"].Value <bool>(); } if (m["description"] != null) { room.Description = m["description"].Value <string>(); } room.MutedUsers = new List <string>(); if (m["muted"] != null) { foreach (var user in m["muted"] as JArray) { room.MutedUsers.Add(user.Value <string>()); } } if (m["_deletedAt"] != null) { room.DeletedAt = TypeUtils.ParseDateTime(m["_deletedAt"] as JObject); } return(room); }
public static Message Parse(IMeteor meteor, JObject m) { Message message = new Message(meteor); if (m["_id"] != null) { message.Id = (m["_id"] as JValue).Value <string>(); } if (m["rid"] != null) { message.RoomId = (m["rid"] as JValue).Value <string>(); } if (m["t"] != null && m["t"] is JValue) { switch ((m["t"] as JValue).Value <string>()) { case "room_changed_topic": message.Type = MessageType.ROOM_CHANGED_TOPIC; break; case "uj": message.Type = MessageType.USER_JOINED; break; case "ul": message.Type = MessageType.USER_LEFT; break; case "au": message.Type = MessageType.ADDED_USER; break; case "message_pinned": message.Type = MessageType.MESSAGE_PINNED; break; default: message.Type = MessageType.MESSAGE; break; } } else { message.Type = MessageType.MESSAGE; } if (m["ts"] != null) { message.Created = TypeUtils.ParseDateTime(m["ts"] as JObject); } if (m["msg"] != null) { message.Text = (m["msg"] as JValue).Value <string>(); } if (m["_updatedAt"] != null) { message.UpdatedAt = TypeUtils.ParseDateTime(m["_updatedAt"] as JObject); } if (m["editedAt"] != null) { message.EditedAt = TypeUtils.ParseDateTime(m["editedAt"] as JObject); } if (m["editedBy"] != null) { message.EditedBy = User.Parse(m["editedBy"] as JObject); } message.Urls = new List <AttachedUrl>(); if (m["urls"] != null) { foreach (var url in m["urls"] as JArray) { message.Urls.Add(AttachedUrl.Parse(url as JObject)); } } message.Attachments = new List <Attachment>(); if (m["attachments"] != null) { foreach (var attachment in m["attachments"]) { message.Attachments.Add(Attachment.Parse(attachment as JObject)); } } if (m["alias"] != null) { message.Alias = m["alias"].Value <string>(); } if (m["avatar"] != null) { message.Avatar = m["avatar"].Value <string>(); } if (m["groupable"] != null) { message.Groupable = m["groupable"].Value <bool>(); } if (m["parseUrls"] != null) { message.ParseUrls = m["parseUrls"].Value <bool>(); } if (m["u"] != null) { message.User = User.Parse(m["u"] as JObject); } if (m["bot"] != null) { message.Bot = Bot.Parse(m["bot"] as JObject); } message.Reactions = new Dictionary <string, List <string> >(); if (m["reactions"] != null && m["reactions"] is JObject) { foreach (var reaction in (m["reactions"] as JObject)) { message.Reactions.Add(reaction.Key, new List <string>()); if (reaction.Value["usernames"] != null) { foreach (var user in reaction.Value["usernames"]) { message.Reactions[reaction.Key].Add(user.Value <string>()); } } } } return(message); }