{ //values: int int int string string // members 0 prollycurrentacc email passwordnocrypt //response: //<Guild name="STRING" id="INT"> //<TotalFame>INT</TotalFame> //<CurrentFame>INT</Currentfame> //<HallType>Guild Hall INT</HallType> //<Member> //<Name>STRING</Name> //<Rank>INT</Rank> //<Fame>INT</Fame> //</Member> //</Guild> public void HandleRequest(HttpListenerContext context) { NameValueCollection query; using (StreamReader rdr = new StreamReader(context.Request.InputStream)) query = HttpUtility.ParseQueryString(rdr.ReadToEnd()); XDocument doc; XElement guildd; using (db.Database dbx = new db.Database()) { Account acc = dbx.Verify(query["guid"], query["password"]); guildd = new XElement("Guild", new XAttribute("name", acc.Guild.Name), new XAttribute("id", acc.Guild.Id)); //get the hall level var cmd = dbx.CreateQuery(); cmd.CommandText = "SELECT level FROM guilds WHERE id=@id"; cmd.Parameters.AddWithValue("@id", acc.Guild.Id); guildd.Add(new XElement("HallType", "Guild Hall " + cmd.ExecuteScalar().ToString())); //get the current fame cmd = dbx.CreateQuery(); cmd.CommandText = "SELECT fame FROM guilds WHERE id=@id"; cmd.Parameters.AddWithValue("@id", acc.Guild.Id); guildd.Add(new XElement("CurrentFame", cmd.ExecuteScalar().ToString())); //get the total fame cmd = dbx.CreateQuery(); cmd.CommandText = "SELECT totalFame FROM guilds WHERE id=@id"; cmd.Parameters.AddWithValue("@id", acc.Guild.Id); guildd.Add(new XElement("TotalFame", cmd.ExecuteScalar().ToString())); //get the members list and data cmd = dbx.CreateQuery(); cmd.CommandText = "SELECT members FROM guilds WHERE id=@id"; cmd.Parameters.AddWithValue("@id", acc.Guild.Id); string[] membersids = cmd.ExecuteScalar().ToString().Split(','); foreach (var memberid in membersids) { var accc = dbx.GetAccount(int.Parse(memberid)); guildd.Add(new XElement("Member", new XElement("Name", accc.Name), new XElement("Rank", accc.Guild.Rank), new XElement("Fame", 0))); } doc = new XDocument(guildd); } byte[] bytes = Encoding.ASCII.GetBytes(doc.ToString()); context.Response.OutputStream.Write(bytes, 0, bytes.Length); context.Response.Close(); }
public void HandleRequest(HttpListenerContext context) { NameValueCollection query; string board; using (StreamReader rdr = new StreamReader(context.Request.InputStream)) query = HttpUtility.ParseQueryString(rdr.ReadToEnd()); using (db.Database dbx = new db.Database()) { var cmd = dbx.CreateQuery(); cmd.CommandText = "UPDATE guilds SET board=@board WHERE id=@id"; var acc = dbx.Verify(query["guid"], query["password"]); cmd.Parameters.AddWithValue("@id", acc.Guild.Id); board = HttpUtility.HtmlDecode(query["board"]); cmd.Parameters.AddWithValue("@board", board); cmd.ExecuteNonQuery(); } board = null; using (db.Database dbz = new db.Database()) { var cmd = dbz.CreateQuery(); cmd.CommandText = "SELECT board FROM guilds WHERE id=@id"; cmd.Parameters.AddWithValue("@id", dbz.Verify(query["guid"], query["password"]).Guild.Id); object scalar = cmd.ExecuteScalar(); string[] lines = scalar.ToString().Split(new string[] { "\n", "\r\n" }, StringSplitOptions.None); foreach (var i in lines) { if (board != null) { board = board + i.ToString() + "\n\r"; } else { board = i.ToString() + "\n\r"; } } } //down here goes the code to eventually check the formatting byte[] guildboardtext = Encoding.ASCII.GetBytes(board); context.Response.OutputStream.Write(guildboardtext, 0, guildboardtext.Length); }
//values: int int int string string // members 0 prollycurrentacc email passwordnocrypt //response: //<Guild name="STRING" id="INT"> //<TotalFame>INT</TotalFame> //<CurrentFame>INT</Currentfame> //<HallType>Guild Hall INT</HallType> //<Member> //<Name>STRING</Name> //<Rank>INT</Rank> //<Fame>INT</Fame> //</Member> //</Guild> public void HandleRequest(HttpListenerContext context) { NameValueCollection query; using (StreamReader rdr = new StreamReader(context.Request.InputStream)) query = HttpUtility.ParseQueryString(rdr.ReadToEnd()); XDocument doc; XElement guildd; using (db.Database dbx = new db.Database()) { Account acc = dbx.Verify(query["guid"], query["password"]); guildd = new XElement("Guild", new XAttribute("name", acc.Guild.Name), new XAttribute("id", acc.Guild.Id)); //get the hall level var cmd = dbx.CreateQuery(); cmd.CommandText = "SELECT level FROM guilds WHERE id=@id"; cmd.Parameters.AddWithValue("@id", acc.Guild.Id); guildd.Add(new XElement("HallType", "Guild Hall "+cmd.ExecuteScalar().ToString())); //get the current fame cmd = dbx.CreateQuery(); cmd.CommandText = "SELECT fame FROM guilds WHERE id=@id"; cmd.Parameters.AddWithValue("@id", acc.Guild.Id); guildd.Add(new XElement("CurrentFame", cmd.ExecuteScalar().ToString())); //get the total fame cmd = dbx.CreateQuery(); cmd.CommandText = "SELECT totalFame FROM guilds WHERE id=@id"; cmd.Parameters.AddWithValue("@id", acc.Guild.Id); guildd.Add(new XElement("TotalFame", cmd.ExecuteScalar().ToString())); //get the members list and data cmd = dbx.CreateQuery(); cmd.CommandText = "SELECT members FROM guilds WHERE id=@id"; cmd.Parameters.AddWithValue("@id", acc.Guild.Id); string[] membersids = cmd.ExecuteScalar().ToString().Split(','); foreach (var memberid in membersids) { var accc = dbx.GetAccount(int.Parse(memberid)); guildd.Add(new XElement("Member", new XElement("Name", accc.Name), new XElement("Rank", accc.Guild.Rank), new XElement("Fame", 0))); } doc = new XDocument(guildd); } byte[] bytes = Encoding.ASCII.GetBytes(doc.ToString()); context.Response.OutputStream.Write(bytes, 0, bytes.Length); }