Ejemplo n.º 1
0
        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);
        }