public List<NewsItem> GetNews(Account acc)
{
MySqlCommand cmd = CreateQuery();
cmd.CommandText = "SELECT icon, title, text, link, date FROM news ORDER BY date LIMIT 10;";
var ret = new List<NewsItem>();
using (MySqlDataReader rdr = cmd.ExecuteReader())
{
while (rdr.Read())
ret.Add(new NewsItem
{
Icon = rdr.GetString("icon"),
Title = rdr.GetString("title"),
TagLine = rdr.GetString("text"),
Link = rdr.GetString("link"),
Date = DateTimeToUnixTimestamp(rdr.GetDateTime("date")),
});
}
if (acc != null)
{
cmd.CommandText = @"SELECT charId, characters.charType, level, death.totalFame, time
FROM characters, death
WHERE dead = TRUE AND
characters.accId=@accId AND death.accId=@accId
AND characters.charId=death.chrId;";
cmd.Parameters.AddWithValue("@accId", acc.AccountId);
using (MySqlDataReader rdr = cmd.ExecuteReader())
{
while (rdr.Read())
ret.Add(new NewsItem
{
Icon = "fame",
Title = string.Format("Your {0} died at level {1}",
XmlDatas.TypeToId[(short)rdr.GetInt32("charType")],
rdr.GetInt32("level")),
TagLine = string.Format("You earned {0} glorious Fame",
rdr.GetInt32("totalFame")),
Link = "fame:" + rdr.GetInt32("charId"),
Date = DateTimeToUnixTimestamp(rdr.GetDateTime("time")),
});
}
}
ret.Sort((a, b) => -Comparer<int>.Default.Compare(a.Date, b.Date));
return ret.Take(10).ToList();
}