private Tuple<string, List<string>, List<string>, string> createChatRoom(List<string> user_names)
{
var member_list = new List<Dictionary<string, dynamic>>();
user_names.ForEach(username =>
{
var mem = new Dictionary<string, dynamic>();
mem.Add("UserName", username);
member_list.Add(mem);
});
var url = base_url + String.Format("webwxcreatechatroom?pass_ticket={0}&r={1}", pass_ticket, get_timestamp());
var http = WebRequest.Create(url) as HttpWebRequest;
http.CookieContainer = cookieContainer;
http.ContentType = "application/json; charset=UTF-8";
http.Method = "POST";
var serializer = new JavaScriptSerializer();
var base_req_param = new { Uin = Int64.Parse(wxuin), Sid = wxsid, Skey = skey, DeviceID = deviceId };
var payload = serializer.Serialize(new { BaseRequest = base_req_param, MemberCount = member_list.Count,
MemberList = member_list, Topic = ""});
Console.WriteLine(payload);
var response = getPostResponse(http, payload);
var dic = deserilizeJson(response);
var room_name = dic["ChatRoomName"];
member_list = new List<Dictionary<string, dynamic>>(dic["MemberList"].
ToArray(typeof(Dictionary<string, dynamic>)));
var deleted_list = new List<string>();
var blocked_list = new List<string>();
member_list.ForEach(member =>
{
if ((int) member["MemberStatus"] == 4)
{
deleted_list.Add(member["UserName"]);
}
else if ((int) member["MemberStatus"] == 3)
{
blocked_list.Add(member["UserName"]);
}
});
string err_msg = dic["BaseResponse"]["ErrMsg"];
return Tuple.Create(room_name, deleted_list, blocked_list,err_msg);
}