Friday, 27 September 2013

A few problems with code

A few problems with code

So far I have the code below:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Fiddler;
using Newtonsoft.Json;
namespace KAWAlliesBot
{
public partial class main_Form : Form
{
delegate void UpdateUI();
string[] Allies = new string[26];
public main_Form()
{
InitializeComponent();
}
private void main_Form_Load(object sender, EventArgs e)
{
Fiddler.FiddlerApplication.AfterSessionComplete +=
FiddlerApplication_AfterSessionComplete;
Fiddler.FiddlerApplication.FiddlerDetach +=
FiddlerApplication_OnDetach;
Fiddler.FiddlerApplication.Startup(0,
Fiddler.FiddlerCoreStartupFlags.Default);
}
void FiddlerApplication_AfterSessionComplete(Fiddler.Session oSession)
{
if (oSession.url ==
"api.kingdomsatwar.com/game/user/search_clan_members_by_cost/")
{
main_Listbox.Invoke(new UpdateUI(() =>
{
oSession.utilDecodeResponse();
var allies_Array =
JsonConvert.DeserializeObject<RootObject>(oSession.GetResponseBodyAsString());
var totalBonusUsers = (from user in allies_Array.users
let tot = user.bonus.GetTotalBonus()
select new TotalUserBonus {
username = user.username,
totalBonus = tot
}).ToList().OrderByDescending(u =>
u.totalBonus).ToList();
foreach(var values in totalBonusUsers) {
main_Listbox.Items.Add(values.totalBonus + " --- " +
values.username);
main_Listbox.Sorted = true;
}
}));
}
}
private void main_Form_FormClosing(object sender, FormClosingEventArgs e)
{
Fiddler.FiddlerApplication.Shutdown();
}
static void FiddlerApplication_OnDetach() {
MessageBox.Show("Program is reseting proxies please exit again!");
System.Diagnostics.Process.Start("proxycfg.exe", "-u");
}
private void button1_Click(object sender, EventArgs e)
{
main_Listbox.Items.Clear();
}
}
public class Bonus
{
public int spy_defense { get; set; }
public int plunder { get; set; }
public int attack { get; set; }
public int defense { get; set; }
public int spy_attack { get; set; }
public int GetTotalBonus()
{
return spy_defense + attack + defense + spy_attack;
}
}
public class User
{
public string username { get; set; }
public int user_id { get; set; }
public List<object> recent_gifts { get; set; }
public int class_id { get; set; }
public Bonus bonus { get; set; }
public object superpower_expire_date { get; set; }
public int avatar_id { get; set; }
public int avatar_type { get; set; }
public object cost { get; set; }
}
public class RootObject
{
public List<User> users { get; set; }
}
public class TotalUserBonus
{
public string username { get; set; }
public int totalBonus { get; set; }
}
}
Now the site this works for only loads 26 values at a time. So it sorts
26, but when you goto the next page it starts over again where the new
values are being added to the list box. How would I fix this/ sort them by
the bonus value?

No comments:

Post a Comment