{ //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(); }
//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); }