コード例 #1
0
        public static MessageResponse AddUser(DatabaseManager databaseManager, EncryptionHelper encryptionHelper, SignUpRequest request)
        {
            if (request == null || request.IsInvalid() || request.User.IsInvalid())
            {
                return(new MessageResponse("Wrong data"));
            }

            if (User.GetByEmailFromDB(databaseManager, request.User.Email) != null)
            {
                return(new MessageResponse("This email already registered"));
            }

            if (request.User.UserType == Database.UserType.ADMIN)
            {
                return(new MessageResponse("Security violation"));
            }


            if (!request.User.IsVerified)
            {
                request.User.VerificationLink = EmailHelper.GetRandomVerificationLink();

                try
                {
                    EmailHelper.SendVerificationEmail(request.User.Email, request.User.VerificationLink);
                }
                catch (Exception ex)
                {
                    return(new MessageResponse(ex.Message));
                }
            }

            databaseManager.Database.Insert <User>(request.User);

            Credential credentials = new Credential();

            try
            {
                credentials.Key = Credential.GetLoginFromName(databaseManager, request.User.Name);
            }
            catch (ArgumentException)
            {
                return(new MessageResponse("Wrong name format"));
            }

            credentials.PasswordHash = encryptionHelper.GetHash(request.Password);
            databaseManager.Database.Insert <Credential>(credentials);

            return(new MessageResponse("Registered"));
        }
コード例 #2
0
        public MessageResponse SignUp(SignUpRequest signUpModel)
        {
            if (signUpModel == null || signUpModel.IsInvalid() || signUpModel.User.IsInvalid())
            {
                return(new MessageResponse("Wrong data"));
            }

            if (Models.Database.User.GetByEmailFromDB(databaseManager, signUpModel.User.Email) != null)
            {
                return(new MessageResponse("This email already registered"));
            }

            if (signUpModel.User.UserType == UserType.ADMIN)
            {
                return(new MessageResponse("Security violation"));
            }

            signUpModel.User.IsVerified       = false;
            signUpModel.User.VerificationLink = EmailHelper.GetRandomVerificationLink();

            try
            {
                EmailHelper.SendVerificationEmail(signUpModel.User.Email, signUpModel.User.VerificationLink);
            }
            catch (Exception ex)
            {
                return(new MessageResponse(ex.Message));
            }

            databaseManager.Database.Insert <User>(signUpModel.User);

            Credential credentials = new Credential();

            try
            {
                credentials.Key = GetLoginFromName(signUpModel.User.Name);
            }
            catch (ArgumentException)
            {
                return(new MessageResponse("Wrong name format"));
            }

            credentials.PasswordHash = encryptionHelper.GetHash(signUpModel.Password);
            databaseManager.Database.Insert <Credential>(credentials);

            return(new MessageResponse("Registered"));
        }