Beispiel #1
0
        public void UnitTest1(string userName, string password)
        {
            var ExpectedResult = _porwalGeneralStoreContext
                                 .CustomerInfo
                                 .FirstOrDefault(
                x =>
                x.Phone.Equals(userName, StringComparison.OrdinalIgnoreCase) &&
                x.Password.Equals(password));

            var ActualResult = _userLayer.GetUserDetail(new LoginForm()
            {
                UserName = userName,
                Password = password
            });

            Assert.NotNull(ActualResult);
            Assert.True(ExpectedResult.Id == ActualResult.UserId);
            Assert.True(ExpectedResult.CustomerName == ActualResult.CustomerName);
            Assert.True(ExpectedResult.FirstName == ActualResult.FirstName);
            Assert.True(ExpectedResult.LastName == ActualResult.LastName);
            Assert.True(ExpectedResult.City == ActualResult.City);
            Assert.True(ExpectedResult.Phone == ActualResult.Phone);
        }
        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);
        }