public Object login(JObject person) { string user_id; string email; string pwd; string auth_token; long utc_time; string device_id = ""; Response_Person rp = new Response_Person(); try { user_id = person["user_id"].ToString(); device_id = person["device_id"].ToString(); if (!String.IsNullOrEmpty(device_id)) { if (String.IsNullOrEmpty(user_id)) { var result_chatuser = db.ChatUsers.SingleOrDefault(d => d.device_id == device_id); if (result_chatuser != null) { rp.res_type = "login"; rp.state = 9; rp.user_id = result_chatuser.user_id; rp.user_name = result_chatuser.user_name; rp.auth_token = result_chatuser.auth_token; return(rp); } } } email = person["user_email"].ToString(); if (user_id.Contains("@")) { email = user_id; user_id = ""; } pwd = person["pwd"].ToString(); //string offset_time_str = person["offset_time"].ToString(); //offset_time = Convert.ToInt64(offset_time_str); utc_time = DateTime.UtcNow.Ticks; } catch (Exception e) { string estring = e.ToString(); //rp.res_type = "login"; rp.res_type = estring; rp.state = 5; rp.user_id = ""; rp.user_name = ""; rp.auth_token = ""; return(rp); } var chatusers = from m in db.ChatUsers select m; if (!String.IsNullOrEmpty(user_id)) { chatusers = chatusers.Where(s => s.user_id == user_id); if (!chatusers.Any()) { rp.res_type = "login"; rp.state = 2; rp.user_id = ""; rp.user_name = ""; rp.auth_token = ""; return(rp); } } if (!String.IsNullOrEmpty(email)) { chatusers = chatusers.Where(s => s.user_email == email); if (!chatusers.Any()) { rp.res_type = "login"; rp.state = 2; rp.user_id = ""; rp.user_name = ""; rp.auth_token = ""; return(rp); } } if (!String.IsNullOrEmpty(pwd)) { chatusers = chatusers.Where(s => s.pwd == pwd); if (!chatusers.Any()) { rp.res_type = "login"; rp.state = 3; rp.user_id = ""; rp.user_name = ""; rp.auth_token = ""; return(rp); } } auth_token = Guid.NewGuid().ToString(); var result = db.ChatUsers.SingleOrDefault(b => b.user_id == user_id); if (string.IsNullOrEmpty(user_id)) { result = db.ChatUsers.SingleOrDefault(b => b.user_email == email); } try { result.auth_token = auth_token; result.online_state = true; result.last_logdate = utc_time; result.device_id = device_id; db.SaveChanges(); if (!string.IsNullOrEmpty(device_id)) { var dev_result = db.ChatUsers.Where(k => k.device_id == device_id && k.user_id != user_id); foreach (ChatUser cu in dev_result) { cu.device_id = ""; } db.SaveChanges(); } }catch (Exception e1) { rp.res_type = "login"; rp.state = 4; rp.user_id = ""; rp.user_name = ""; rp.auth_token = ""; return(rp); } rp.res_type = "login"; rp.state = 0; rp.auth_token = auth_token; rp.user_id = result.user_id; rp.user_name = result.user_name; return(rp); }
public Object register(JObject person) { string user_id; string user_email; string user_name; string pwd; long phone_number; long utc_time; string auth_token; string device_id = ""; Response_Person res_person = new Response_Person(); try { user_id = person["user_id"].ToString(); if (user_id.Contains('&') || user_id.Contains('@')) { res_person.res_type = "register"; res_person.state = 6; res_person.user_id = ""; res_person.user_name = ""; res_person.auth_token = ""; return(res_person); } user_email = person["user_email"].ToString(); user_name = person["user_name"].ToString(); pwd = person["pwd"].ToString(); device_id = person["device_id"].ToString(); string phone_str = person["phone_number"].ToString(); if (String.IsNullOrEmpty(phone_str)) { phone_number = 0; } else { phone_number = Convert.ToInt64(phone_str); } //offset_time = Convert.ToInt64(offset_time_str); utc_time = DateTime.UtcNow.Ticks; } catch (Exception e) { string estring = e.ToString(); res_person.res_type = "register"; res_person.state = 5; res_person.user_id = ""; res_person.user_name = ""; res_person.auth_token = ""; return(res_person); } auth_token = Guid.NewGuid().ToString(); var result = db.ChatUsers.Where(p => p.user_id == user_id); if (result.Any()) { res_person.res_type = "register"; res_person.state = 1; res_person.user_id = ""; res_person.user_name = ""; res_person.auth_token = ""; return(res_person); } result = db.ChatUsers.Where(p => p.user_email == user_email); if (result.Any()) { res_person.res_type = "register"; res_person.state = 2; res_person.user_id = ""; res_person.user_name = ""; res_person.auth_token = ""; return(res_person); } if (!string.IsNullOrEmpty(device_id)) { var result_chatuser = db.ChatUsers.SingleOrDefault(p => p.device_id == device_id); if (result_chatuser != null) { result_chatuser.device_id = ""; db.SaveChanges(); } } ChatUser chatuser = new ChatUser(); chatuser.user_id = user_id; chatuser.user_email = user_email; chatuser.user_name = user_name; chatuser.pwd = pwd; chatuser.phone_number = phone_number; chatuser.reg_date = utc_time; chatuser.last_logdate = utc_time; chatuser.device_id = device_id; chatuser.auth_token = auth_token; chatuser.online_state = false; try { db.ChatUsers.Add(chatuser); db.SaveChanges(); if (!string.IsNullOrEmpty(device_id)) { var dev_result = db.ChatUsers.Where(k => k.device_id == device_id && k.user_id != user_id); foreach (ChatUser cu in dev_result) { cu.device_id = ""; } db.SaveChanges(); } } catch (Exception e2) { res_person.res_type = "register"; res_person.state = 4; res_person.user_id = ""; res_person.user_name = ""; res_person.auth_token = ""; return(res_person); } res_person.res_type = "register"; res_person.state = 0; res_person.user_id = user_id; res_person.user_name = user_name; res_person.auth_token = auth_token; return(res_person); }