public List <Mod> GetMods(string search = null, ListOrderBy orderBy = ListOrderBy.None) { RestRequest request = new RestRequest("/mods", Method.GET); if (search != null) { request.AddParameter("search", search, ParameterType.QueryString); } if (orderBy != ListOrderBy.None) { request.AddParameter("order_by", orderBy.JsonValue()); } var resp = GetClient().Execute(request); List <Mod> modList = JsonConvert.DeserializeObject <ModsViewModel>(resp.Content).Data; foreach (Mod mod in modList) { RestRequest requestAuthor = new RestRequest(string.Format("/user/{0}", mod.CreatorID), Method.GET); var respAuthor = GetClient().Execute(requestAuthor); User user = JsonConvert.DeserializeObject <UserViewModel>(respAuthor.Content).Data; mod.AuthorName = user.Username; ModVersion version = GetLatestVersion(mod.ID); mod.LatestVersion = string.Format("v{0} ({1})", version?.Version, version?.Stability); } return(modList); }
public static string JsonValue(this ListOrderBy value) { FieldInfo fi = value.GetType().GetField(value.ToString()); JsonValueAttribute attribute = fi.GetCustomAttributes(typeof(JsonValueAttribute), false).First() as JsonValueAttribute; if (attribute != null) { return(attribute.ValueName); } return(string.Empty); }