예제 #1
0
        public static async Task <ResetPasswordResponse> ResetPasswordAsync(string refLink, ResetPasswordRequest resetPasswordRequest)
        {
            try
            {
                using (var conn = Connection)
                {
                    DynamicParameters parameters = new DynamicParameters();
                    parameters.Add("refLink", refLink);
                    parameters.Add("NewPasswordHash", GetHash.HashCode(resetPasswordRequest.NewPassword));
                    await conn.ExecuteAsync("ResetPasswordProcedure", parameters, commandType : System.Data.CommandType.StoredProcedure);

                    return(new ResetPasswordResponse(true, new List <ServiceResponse>
                    {
                        new ServiceResponse("200", "Your Password was reset successfully", null)
                    }));
                }
            }
            catch (Exception ex)
            {
                return(new ResetPasswordResponse(false, new List <ServiceResponse>
                {
                    new ServiceResponse("400", "Something went wrong", new List <Error>
                    {
                        new Error(ex.GetHashCode().ToString(), ex.Message)
                    })
                }));
            }
        }
예제 #2
0
        public static async Task <SignupResponse> SignupAsync(SignupRequest signupRequest)
        {
            try
            {
                if (!await VerifyUsername(signupRequest.Username))
                {
                    using (var conn = Connection)
                    {
                        conn.Open();
                        DynamicParameters parameters = new DynamicParameters();
                        parameters.Add("UserId", signupRequest.UserId);
                        parameters.Add("Username", signupRequest.Username);
                        parameters.Add("FirstName", signupRequest.FirstName);
                        parameters.Add("LastName", signupRequest.LastName);
                        parameters.Add("Email", signupRequest.EmailAddress);
                        parameters.Add("PasswordHash", GetHash.HashCode(signupRequest.Password));
                        parameters.Add("Gender", signupRequest.Gender);
                        parameters.Add("BirthDate", signupRequest.BirthDate);
                        parameters.Add("Nationality", signupRequest.Nationality);
                        parameters.Add("PhoneNumber", signupRequest.PhoneNumber);
                        parameters.Add("Location", signupRequest.Location);
                        parameters.Add("PrimaryGenre", signupRequest.PrimaryGenre);
                        parameters.Add("Biography", signupRequest.Biography);
                        parameters.Add("Website", signupRequest.Website);
                        parameters.Add("ProfileImagePath", signupRequest.ProfileImagePath);
                        parameters.Add("CoverImagePath", signupRequest.CoverImagePath);
                        parameters.Add("DateCreated", signupRequest.DateCreated);

                        await conn.ExecuteAsync("SignupProcedure", parameters, commandType : System.Data.CommandType.StoredProcedure);

                        return(new SignupResponse(true, new List <ServiceResponse>
                        {
                            new ServiceResponse("200", "Successful", null)
                        }));
                    }
                }
                else
                {
                    return(new SignupResponse(false, new List <ServiceResponse>
                    {
                        new ServiceResponse("200", "Username already exists", null)
                    }));
                }
            }
            catch (Exception ex)
            {
                return(new SignupResponse(false, new List <ServiceResponse>
                {
                    new ServiceResponse("400", "Error Signing Up", new List <Error>()
                    {
                        new Error(ex.GetHashCode().ToString(), ex.Message)
                    })
                }));
            }
        }
예제 #3
0
        public static async Task <SigninResponse> SigninAsync(LoginRequest loginRequest)
        {
            int    AccessCountFailed = 0;
            string DbUsername = "", DbPasswordhash = "", Message = "LockedOut";

            try
            {
                using (var conn = Connection)
                {
                    DynamicParameters parameters = new DynamicParameters();
                    parameters.Add("Username", loginRequest.Username);
                    System.Data.IDataReader reader = await conn.ExecuteReaderAsync("SigninProcedure", parameters, commandType : System.Data.CommandType.StoredProcedure);

                    while (reader.Read())
                    {
                        DbUsername        = reader["Username"].ToString();
                        DbPasswordhash    = reader["PasswordHash"].ToString();
                        AccessCountFailed = reader.GetInt32(2);
                        break;
                    }
                    reader.Close();

                    while (AccessCountFailed < 5)
                    {
                        if ((loginRequest.Username == DbUsername) && (GetHash.HashCode(loginRequest.Password) == DbPasswordhash))
                        {
                            Message = "true";
                        }
                        else
                        {
                            //await conn.ExecuteAsync("AccessFailedCountIncrement",parameters, commandType: System.Data.CommandType.StoredProcedure);
                            Message = "false";
                        }
                        break;
                    }

                    return(new SigninResponse(true, new List <ServiceResponse>
                    {
                        new ServiceResponse("200", Message, null)
                    }));
                }
            }
            catch (Exception ex)
            {
                return(new SigninResponse(false, new List <ServiceResponse>
                {
                    new ServiceResponse("400", "Error Logging In", new List <Error>()
                    {
                        new Error(ex.GetHashCode().ToString(), ex.Message)
                    })
                }));
            }
        }