Example #1
0
        public ActionResult <LoginFormResponse> Post([FromBody] OtpLoginForm otpLoginForm)
        {
            LoginFormResponse loginFormResponse = _userBiz.AuthenticateUserByMobileNumber(otpLoginForm);

            return(Ok(loginFormResponse));
        }
Example #2
0
        public ActionResult <LoginFormResponse> Post([FromBody] LoginForm loginForm)
        {
            LoginFormResponse loginFormResponse = _userBiz.AuthenticateUser(loginForm);

            return(Ok(loginFormResponse));
        }
        public LoginFormResponse AuthenticateUserByMobileNumber(OtpLoginForm otpLoginForm)
        {
            LoginFormResponse otpLoginFormResponse = new LoginFormResponse()
            {
                StatusCode = 200
            };

            if (otpLoginForm == null)
            {
                otpLoginFormResponse.StatusCode = 400;
                otpLoginFormResponse.ErrorList  = new List <LoginValidationResponse>()
                {
                    new LoginValidationResponse()
                    {
                        Code    = 1001,
                        Message = "Request Object can't be blank."
                    }
                };
                return(otpLoginFormResponse);
            }

            if (string.IsNullOrWhiteSpace(otpLoginForm.MobileNumber))
            {
                otpLoginFormResponse.StatusCode = 400;
                otpLoginFormResponse.ErrorList  = new List <LoginValidationResponse>()
                {
                    new LoginValidationResponse()
                    {
                        Code    = 1001,
                        Message = "MobileNumber can't be blank."
                    }
                };
                return(otpLoginFormResponse);
            }

            if (string.IsNullOrWhiteSpace(otpLoginForm.Otp))
            {
                otpLoginFormResponse.StatusCode = 400;
                otpLoginFormResponse.ErrorList  = new List <LoginValidationResponse>()
                {
                    new LoginValidationResponse()
                    {
                        Code    = 1001,
                        Message = "Otp can't be blank."
                    }
                };
                return(otpLoginFormResponse);
            }

            if (otpLoginForm.CountryCode <= 0)
            {
                otpLoginFormResponse.StatusCode = 400;
                otpLoginFormResponse.ErrorList  = new List <LoginValidationResponse>()
                {
                    new LoginValidationResponse()
                    {
                        Code    = 1001,
                        Message = "CountryCode can't be blank."
                    }
                };
                return(otpLoginFormResponse);
            }

            if (!Regex.IsMatch(otpLoginForm.MobileNumber, RegexPattern.mobile_number_validation_Patterns.GetCombinedPattern()))
            {
                otpLoginFormResponse.StatusCode = 400;
                otpLoginFormResponse.ErrorList  = new List <LoginValidationResponse>()
                {
                    new LoginValidationResponse()
                    {
                        Code      = 1001,
                        FieldName = nameof(otpLoginForm.MobileNumber),
                        Message   = nameof(otpLoginForm.MobileNumber) + " should be valid. Format -: xxxxxxxxxx "
                    }
                };
                return(otpLoginFormResponse);
            }

            bool isMobileNumberExist = _userLayer.isExistPhoneNumber(otpLoginForm.MobileNumber);

            if (isMobileNumberExist)
            {
                SmsApiResponse smsApiResponse = _smsBiz.VerifyOtpSms(new VerifyOtpRequest()
                {
                    Mobile      = otpLoginForm.MobileNumber,
                    Otp         = otpLoginForm.Otp,
                    CountryCode = otpLoginForm.CountryCode
                });

                if (smsApiResponse.StatusCode == 200)
                {
                    UserInformation userInformation = _userLayer.GetUserDetailByMobileNumber(otpLoginForm.MobileNumber);
                    if (userInformation != null)
                    {
                        JwtTokenResponse jwtTokenResponse = GetJWTToken(userInformation);
                        if (jwtTokenResponse.StatusCode == 200)
                        {
                            JwtToken tokenDetail = jwtTokenResponse.TokenDetail;
                            otpLoginFormResponse.StatusCode      = 200;
                            otpLoginFormResponse.Response        = new LoginResponse();
                            otpLoginFormResponse.Response.UserId = userInformation.UserId;
                            if (tokenDetail != null)
                            {
                                otpLoginFormResponse.Response.TokenDetail = new Token()
                                {
                                    Type      = tokenDetail.Type,
                                    Value     = tokenDetail.Value,
                                    CreatedAt = tokenDetail.CreatedAt,
                                    ExpiredAt = tokenDetail.ExpiredAt
                                };
                            }
                        }
                        else
                        {
                            otpLoginFormResponse.StatusCode = 400;
                            otpLoginFormResponse.ErrorList  = jwtTokenResponse
                                                              .ErrorList
                                                              .Select(x => new LoginValidationResponse()
                            {
                                FieldName = x.FieldName,
                                Message   = x.Message,
                                Code      = x.Code
                            }).ToList();
                        }
                    }
                }
                else
                {
                    otpLoginFormResponse.StatusCode = 400;
                    otpLoginFormResponse.ErrorList  = smsApiResponse.ErrorList.Select(x => new LoginValidationResponse()
                    {
                        Code    = x.Code,
                        Message = x.Message
                    }).ToList();
                }
            }
            else
            {
                otpLoginFormResponse.StatusCode = 400;
                otpLoginFormResponse.ErrorList  = new List <LoginValidationResponse>()
                {
                    new LoginValidationResponse()
                    {
                        Code    = 1001,
                        Message = nameof(otpLoginForm.MobileNumber) + " not found."
                    }
                };
            }

            return(otpLoginFormResponse);
        }
        public LoginFormResponse AuthenticateUser(LoginForm loginForm)
        {
            LoginFormResponse loginFormResponse = new LoginFormResponse()
            {
                StatusCode = 200
            };

            try
            {
                if (loginForm == null)
                {
                    loginFormResponse.StatusCode = 400;
                    loginFormResponse.ErrorList  = new List <LoginValidationResponse>()
                    {
                        new LoginValidationResponse()
                        {
                            Code    = 1001,
                            Message = "Request Object can't be blank."
                        }
                    };
                    return(loginFormResponse);
                }

                if (string.IsNullOrWhiteSpace(loginForm.UserName))
                {
                    loginFormResponse.StatusCode = 400;
                    loginFormResponse.ErrorList  = new List <LoginValidationResponse>()
                    {
                        new LoginValidationResponse()
                        {
                            Code    = 1001,
                            Message = "UserName can't be blank."
                        }
                    };
                    return(loginFormResponse);
                }

                if (string.IsNullOrWhiteSpace(loginForm.Password))
                {
                    loginFormResponse.StatusCode = 400;
                    loginFormResponse.ErrorList  = new List <LoginValidationResponse>()
                    {
                        new LoginValidationResponse()
                        {
                            Code    = 1001,
                            Message = "Password can't be blank."
                        }
                    };
                    return(loginFormResponse);
                }

                if (!Regex.IsMatch(loginForm.UserName, RegexPattern.mobile_number_validation_Patterns.GetCombinedPattern()))
                {
                    loginFormResponse.StatusCode = 400;
                    loginFormResponse.ErrorList  = new List <LoginValidationResponse>()
                    {
                        new LoginValidationResponse()
                        {
                            Code      = 1001,
                            FieldName = nameof(loginForm.UserName),
                            Message   = nameof(loginForm.UserName) + " should be valid. Format -: xxxxxxxxxx "
                        }
                    };
                    return(loginFormResponse);
                }

                UserInformation userInformation = _userLayer.GetUserDetail(loginForm);
                if (userInformation != null)
                {
                    JwtTokenResponse jwtTokenResponse = GetJWTToken(userInformation);
                    if (jwtTokenResponse.StatusCode == 200)
                    {
                        JwtToken tokenDetail = jwtTokenResponse.TokenDetail;
                        loginFormResponse.StatusCode      = 200;
                        loginFormResponse.Response        = new LoginResponse();
                        loginFormResponse.Response.UserId = userInformation.UserId;
                        if (tokenDetail != null)
                        {
                            loginFormResponse.Response.TokenDetail = new Token()
                            {
                                Type      = tokenDetail.Type,
                                Value     = tokenDetail.Value,
                                CreatedAt = tokenDetail.CreatedAt,
                                ExpiredAt = tokenDetail.ExpiredAt
                            };
                        }
                    }
                    else
                    {
                        loginFormResponse.StatusCode = 400;
                        loginFormResponse.ErrorList  = jwtTokenResponse
                                                       .ErrorList
                                                       .Select(x => new LoginValidationResponse()
                        {
                            FieldName = x.FieldName,
                            Message   = x.Message,
                            Code      = x.Code
                        }).ToList();
                    }
                }
                else
                {
                    loginFormResponse.StatusCode = 400;
                    loginFormResponse.ErrorList  = new List <LoginValidationResponse>()
                    {
                        new LoginValidationResponse()
                        {
                            Code    = 1001,
                            Message = "User Not Found"
                        }
                    };
                }
            }
            catch (Exception ex)
            {
                loginFormResponse.StatusCode = 400;
                loginFormResponse.ErrorList  = new List <LoginValidationResponse>()
                {
                    new LoginValidationResponse()
                    {
                        Code    = 1001,
                        Message = "User Authentication Failed" + ex.Message
                    }
                };
            }
            return(loginFormResponse);
        }
Example #5
0
        public LoginFormResponse GetLoginForm()
        {
            var response = new LoginFormResponse();

            return(response.SetSuccessResponse(UserCredentials.Empty));
        }