예제 #1
0
        void Save()
        {
            StartSession();

            var realname = Form.Find("Realname");
            var birth    = Form.Find("Birth");
            var gender   = Form.Find <int>("Gender");
            var phone    = Form.Find("Phone");

            var account = JsonSerializer.Deserialize <Account>(Session["account"]);

            account = RowAdapter.Load <Account>(p => p.ID == account.ID).FirstOrDefault();
            if (account == null)
            {
                WrapResult(false, "save fail!");
                return;
            }

            account.Realname = realname;
            account.Birth    = DateTime.Parse(birth);
            account.Gender   = (Gender)gender;
            account.Phone    = phone;
            account.Save();
            Session["account"] = JsonSerializer.Serialize(account);

            WrapResult(true, "save success!");
        }
예제 #2
0
        void GetFirendList()
        {
            var       token       = Form.Find("access_token");
            var       openStrings = Form.Find("opens");
            JsonArray opens;

            if (!Json.TryParse <JsonArray>(openStrings, out opens))
            {
                WrapResult(false, "invaild param: opens!");
                return;
            }
            if (string.IsNullOrEmpty(token))
            {
                WrapResult(false, "nvaild param: access_token");
                return;
            }
            if (opens.Count == 0)
            {
                WrapResult(false, "opens length error!");
                return;
            }

            var access = RowAdapter.LoadFirstOrDefault <Access>(p => p.AccessToken == token);

            if (access == null)
            {
                WrapResult(false, "invaild access_token!");
                return;
            }
            if (!access.Available)
            {
                WrapResult(false, "access_token expire!");
                return;
            }

            var view          = EntitySchemaManager.GetSchema <Account>(true);
            var dbProvider    = DbFactory.Gain(view.ConnectKey);
            var commandStruct = dbProvider.CreateCommand <Account>(view.Name, DbCommandMode.Select);
            var member        = SqlExpression.Member(view.Columns.First(p => p.Name == "OpenID").Name);
            var newArray      = SqlExpression.NewArray(opens.Select(p => SqlExpression.Constant((string)p)).ToArray());

            commandStruct.Condition = SqlExpression.In(member, newArray);
            var accounts = RowAdapter.Load <Account>(dbProvider, commandStruct);
            var array    = new JsonArray();

            foreach (var account in accounts)
            {
                var json = new JsonObject();
                json["open_id"]   = account.OpenID;
                json["nick_name"] = account.Nickname;
                json["real_name"] = account.Realname;
                json["gender"]    = account.Gender;
                json["available"] = account.Available;
                array.Add(json);
            }

            WrapResult(true, array);
        }
예제 #3
0
        void List()
        {
            var appList     = RowAdapter.Load <App>(p => p.OwnerID == _account.ID && p.Deleted == false);
            var arrayForApp = new JsonArray();

            foreach (var app in appList)
            {
                var json = JsonSerializer.Serialize(app);
                arrayForApp.Add(json);
            }
            WrapResult(true, arrayForApp);
        }
예제 #4
0
        void List()
        {
            var account = JsonSerializer.Deserialize <Account>(Session["account"]);

            if (account.AdminType <= AdminType.普通)
            {
                WrapResult(false, "无权操作!");
                return;
            }

            var accounts = RowAdapter.Load <Account>(p => p.Deleted == false);

            WrapResult(true, accounts);
        }
예제 #5
0
        void Delete()
        {
            var id      = Form.Find <long>("id");
            var account = RowAdapter.Load <Account>(p => p.Deleted == false && p.ID == id).FirstOrDefault();

            if (account == null)
            {
                WrapResult(false, "指定帐号不存在!");
                return;
            }

            account.Delete();
            WrapResult(true);
        }
예제 #6
0
        void Delete()
        {
            long id = Form.Find <long>("app_id");

            var apps = RowAdapter.Load <App>(p => p.OwnerID == _account.ID && p.Deleted == false && p.ID == id);
            var app  = apps.FirstOrDefault();

            if (app == null)
            {
                WrapResult(false, "not found app id:" + id);
                return;
            }

            app.Delete();
            WrapResult(true);
        }
예제 #7
0
        public void Delete()
        {
            var id     = Form.Find <long>("id");
            var invite = RowAdapter.Load <Invite>(p => p.ID == id && p.Deleted == false).FirstOrDefault();

            if (invite == null)
            {
                WrapResult(ResultCode.InvalidParam, string.Format("not found Invite.ID:{0}", id));
                return;
            }
            if (!invite.Available)
            {
                WrapResult(ResultCode.InvalidAction, "不能删除已使用的邀请码!");
                return;
            }

            invite.Delete();
            WrapResult(ResultCode.OK);
        }
예제 #8
0
        void Update()
        {
            long id     = Form.Find <long>("app_id");
            var  name   = Form.Find("app_name");
            var  domain = Form.Find("app_domain");

            var apps = RowAdapter.Load <App>(p => p.OwnerID == _account.ID && p.Deleted == false && p.ID == id);
            var app  = apps.FirstOrDefault();

            if (app == null)
            {
                WrapResult(false, "not found app id:" + id);
                return;
            }

            app.Name   = name;
            app.Domain = domain;
            app.Save();
            WrapResult(true, FromApp(app));
        }
예제 #9
0
        public void List()
        {
            var list = RowAdapter.Load <Invite>(p => p.Deleted == false);

            WrapResult(ResultCode.OK, list);
        }
예제 #10
0
        void New()
        {
            var name       = Form.Find("user_name");
            var password   = Form.Find("user_pwd");
            var nickname   = Form.Find("nick_name");
            var realname   = Form.Find("realname");
            var birth      = Form.Find("birth");
            var gender     = Form.Find <int>("gender");
            var phone      = Form.Find("phone");
            var inviteCode = Form.Find("invite_code");

            if (string.IsNullOrEmpty(name))
            {
                WrapResult(false, "账号不能为空!");
                return;
            }
            if (name.Length > 50)
            {
                WrapResult(false, "账号长度不合法!");
                return;
            }
            if (string.IsNullOrEmpty(password))
            {
                WrapResult(false, "密码不能为空!");
                return;
            }
            var gbkEncoding = System.Text.Encoding.GetEncoding("GBK");

            if (gbkEncoding.GetByteCount(password) > 200)
            {
                WrapResult(false, "密码长度不合法!");
                return;
            }
            if (string.IsNullOrEmpty(nickname))
            {
                WrapResult(false, "昵称不能为空!");
                return;
            }
            if (nickname.Length > 50)
            {
                WrapResult(false, "昵称长度不合法!");
                return;
            }
            if (string.IsNullOrEmpty(realname))
            {
                WrapResult(false, "实名不能为空!");
                return;
            }
            if (realname.Length > 5)
            {
                WrapResult(false, "实名长度不合法!");
                return;
            }
            if (string.IsNullOrEmpty(inviteCode))
            {
                WrapResult(false, "邀请码不能为空!");
                return;
            }
            if (inviteCode.Length != 32)
            {
                WrapResult(false, "非法邀请码!");
                return;
            }

            var invites = RowAdapter.Load <Invite>(p => p.Code == inviteCode);

            if (invites.Count == 0)
            {
                WrapResult(false, "指定邀请码不存在!");
                return;
            }

            var invite = invites.First();

            if (!invite.Available)
            {
                WrapResult(false, "无效的邀请码!");
                return;
            }

            var accounts = RowAdapter.Load <Account>(p => p.Name == name);

            if (accounts.Count > 0)
            {
                WrapResult(false, "指定帐号已存在!");
                return;
            }

            invite.Available = false;
            invite.UseTime   = DateTime.Now;
            invite.Account   = name;
            invite.Save();

            var account = RowAdapter.Create <Account>();

            account.Name     = name;
            account.Password = password;
            account.Nickname = nickname;
            account.Realname = realname;
            account.Birth    = DateTime.Parse(birth);
            account.Gender   = (Gender)gender;
            account.Phone    = phone;
            account.Save();
            WrapResult(true, "ok");
        }