public void Send(string message) { var msg = ser.Deserialize <MessageModel>(message); switch (msg.Type) { case MessageType.Message: Clients.All.addMessage(ser.Serialize(new { Type = msg.Type, CurrentId = "", VideoId = "", NextId = "", Value = msg.Value, Username = msg.Username })); break; case MessageType.Play: ids.Add(msg.VideoId); string url = "https://www.googleapis.com/youtube/v3/videos?part=snippet&id=" + msg.VideoId + "&key=" + apiKey; WebRequest req = WebRequest.Create(url); WebResponse resp = req.GetResponse(); Stream stream = resp.GetResponseStream(); StreamReader sr = new StreamReader(stream); string res = sr.ReadToEnd(); sr.Close(); var jsonObj = JsonObj.FromJson(res); Clients.All.addMessage(ser.Serialize(new { Type = msg.Type, CurrentId = "", VideoId = jsonObj.Items[0].Snippet.Title, NextId = "", Value = "", Username = msg.Username })); break; case MessageType.Skip: for (int i = currI; i < ids.Count; i++) { if (currentVideoId == ids[i]) { currentVideoId = nextVideoId; nextVideoId = ids[i + 1]; currI++; } } Clients.All.addMessage(ser.Serialize(new { Type = msg.Type, CurrentId = "", VideoId = "", NextId = nextVideoId, Value = "", Username = msg.Username })); break; case MessageType.VideoEnded: for (int i = currI; i < ids.Count; i++) { if (currentVideoId == ids[i]) { currentVideoId = nextVideoId; nextVideoId = ids[i + 1]; currI++; } } Clients.All.addMessage(ser.Serialize(new { Type = msg.Type, CurrentId = "", VideoId = "", NextId = nextVideoId, Value = "", Username = msg.Username })); break; } }
public static string ToJson(this JsonObj self) => JsonConvert.SerializeObject(self, Drocsid.Converter.Settings);