public Guest GetGuest(string guestName) { var uri = GetGuestsUri(string.Format("/{0}", Uri.EscapeDataString(guestName))); var result = baseClient.DoRequest(uri); return(Guest.Parse(baseClient, result.data)); }
public static Player Parse(SpeedrunComClient client, dynamic playerElement) { var player = new Player(); var properties = playerElement as IDictionary <string, dynamic>; if (properties.ContainsKey("uri")) { if (properties["rel"] == "user") { player.UserID = properties["id"]; player.user = new Lazy <User>(() => client.Users.GetUser(player.UserID)); player.guest = new Lazy <Guest>(() => null); } else { player.GuestName = properties["name"]; player.guest = new Lazy <Guest>(() => client.Guests.GetGuest(player.GuestName)); player.user = new Lazy <User>(() => null); } } else { if (properties["rel"] == "user") { var user = User.Parse(client, properties) as User; player.user = new Lazy <User>(() => user); player.UserID = user.ID; player.guest = new Lazy <Guest>(() => null); } else { var guest = Guest.Parse(client, properties) as Guest; player.guest = new Lazy <Guest>(() => guest); player.GuestName = guest.Name; player.user = new Lazy <User>(() => null); } } return(player); }