Example #1
0
        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);
        }
Example #2
0
        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);
        }