예제 #1
0
        public static async Task <UserAccount> register_account(Mo_User_SignUp field)
        {
            if (await get_account(field.login) != null)
            {
                //todo: логгировать
                return(null);
            }

            UserAccount account = new UserAccount();

            account.username       = field.login.ToLower();
            account.password       = field.password;
            account.displayName    = field.displayName;
            account.phoneNumber    = field.phoneNumber;
            account.email          = field.email;
            account.registeredDate = DateTime.Now;
            account.images         = new string[0];
            await accounts.InsertOneAsync(account);

            return(account);
        }
예제 #2
0
        public async Task <Mo_Result> signup(Mo_User_SignUp model)
        {
            Mo_Result   response = new Mo_Result();
            UserAccount uacc     = null;

            if (Server.validLogin(model.login))
            {
                uacc = Server.get_account(model.login).GetAwaiter().GetResult();
                if (uacc == null)
                {
                    uacc = Server.get_account(model.email).GetAwaiter().GetResult();
                    if (uacc != null)
                    {
                        response.message = "Email is registered";
                        goto break_point;
                    }
                }
            }
            else
            {
                response.message = "Invalid login";
                goto break_point;
            }
            //is not an registered
            if (uacc == null)
            {
                if (Server.validPassword(model.password))
                {
                    if (!Server.validDisplayName(model.displayName))
                    {
                        response.message = "Invalid Display Name";
                        goto break_point;
                    }

                    if (!Server.validPhoneNumber(model.phoneNumber))
                    {
                        response.message = "Invalid Phone number";
                        goto break_point;
                    }
                    if (!Server.validMail(model.email, out MailAddress ml))
                    {
                        response.message = "Invalid Mail format";
                        goto break_point;
                    }

                    //register account
                    UserAccount registeredAccount = await Server.register_account(model);

                    response.result  = true;
                    response.message = "Account registered";
                }
                else
                {
                    response.message = "Invalid password";
                    goto break_point;
                }
            }
            else // have a registered
            {
                response.message = "Have a account";
            }
break_point:
            return(response);
        }