Ejemplo n.º 1
0
        public void ResetPassword_Success_ReturnsOk()
        {
            var userId = 2;
            var passwordForResetDto = new PasswordForResetDto
            {
                Token    = It.IsAny <string>(),
                Email    = "*****@*****.**",
                Password = "******",
            };
            var response = new UserManagerResponse
            {
                IsSuccess = true,
                Message   = "Password reset was successful"
            };
            var userFromRepo = FakeUsers().SingleOrDefault(x => x.Id == userId);

            _mockEmailService.Setup(x => x.ResetPasswordAsync(passwordForResetDto)).ReturnsAsync(response);

            _recipeRepoMock.Setup(x => x.GetUser(passwordForResetDto.Email)).ReturnsAsync(userFromRepo);

            var result = _authController.ResetPassword(passwordForResetDto).Result;

            var okResult = Assert.IsType <OkObjectResult>(result);
            // Assert.Equal(response, okResult.Value);
        }
        public async Task <UserManagerResponse> LoginUserAsync(LoginRequest loginRequest)
        {
            StringContent serializedLoginRequest = new StringContent(JsonSerializer.Serialize(loginRequest, serializerOptions), Encoding.UTF8, "application/json");
            var           response = await httpClient.PostAsync(_baseUrl + "/api/auth/login", serializedLoginRequest);

            var responseAsString = await response.Content.ReadAsStringAsync();

            UserManagerResponse userManagerResponse = JsonSerializer.Deserialize <UserManagerResponse>(responseAsString, serializerOptions);

            return(userManagerResponse);
        }
        public static UserManagerResponse Create(string Message, bool IsSuccess, IEnumerable <string> Errors)
        {
            UserManagerResponse response = new UserManagerResponse
            {
                Message   = Message,
                IsSuccess = IsSuccess,
                Errors    = Errors
            };

            return(response);
        }
Ejemplo n.º 4
0
        public async Task <UserManagerResponse> MakeDeposit(string id, DepositDetail dd)
        {
            var localDP = DepositPlanDetail.CurrentPlans.FirstOrDefault(d => d.Id == dd.Id);

            //return new UserManagerResponse()
            //{
            //    IsSuccess =  false,
            //    Message=  JsonConvert.SerializeObject(localDP)
            //};

            var response = new UserManagerResponse()
            {
                IsSuccess = false
            };

            if (localDP == null)
            {
                response.Message = "Plan not found!";
                return(response);
            }

            if (!(dd.Amount >= localDP.Min && dd.Amount <= localDP.Max))
            {
                response.Message = "Amount can't be greater than or less than package ";
                return(response);
            }

            var user = await _userManager.FindByIdAsync(id);

            if (user == null)
            {
                return(null);
            }

            var investment = new Investment()
            {
                PlanId    = dd.Id,
                Confirmed = false,
                UserId    = user.Id.ToString()
            };

            await _db.Investments.AddAsync(investment);

            await _db.SaveChangesAsync();

            response.Message = await _bitCoinService.GetAddressToDeposit(user.Id.ToString(), investment.Id) + "|" + investment.Id;

            response.IsSuccess = true;

            return(response);
        }
Ejemplo n.º 5
0
        public async Task <IActionResult> Login([FromBody] LoginModel model)
        {
            if (ModelState.IsValid)
            {
                UserManagerResponse serverResponse = await userServices.LoginUserAsync(model);

                if (serverResponse.IsSuccess)
                {
                    return(Ok(serverResponse)); // Status Code: 200
                }
                return(BadRequest(serverResponse));
            }
            return(BadRequest("Some properties are not valid")); // Status code: 400
        }
Ejemplo n.º 6
0
        public async Task <UserManagerResponse> GetAllSportAsync(HttpRequest request)
        {
            var data = await _dbContext.Sports.Select(x => new Sport()
            {
                Id        = x.Id,
                Name      = x.Name,
                ImageName = String.Format("{0}://{1}{2}/Images/Sport/{3}", request.Scheme, request.Host, request.PathBase, x.ImageName)
            })
                       .ToListAsync();

            var x = new UserManagerResponse {
                Message   = "All Sports",
                IsSuccess = true,
                Data      = _mapper.Map <IEnumerable <SportDto> >(data)
            };

            return(x);
        }
Ejemplo n.º 7
0
        public async Task <UserManagerResponse> GetTeamBySportAsync(HttpRequest request, int id)
        {
            var data = await _dbContext.Teams.Where(x => x.SportId == id).Select(x => new Team()
            {
                Id        = x.Id,
                Name      = x.Name,
                SportId   = x.SportId,
                ImageName = String.Format("{0}://{1}{2}/Images/Team/{3}", request.Scheme, request.Host, request.PathBase, x.ImageName)
            })
                       .ToListAsync();

            var x = new UserManagerResponse {
                Message   = "All Teams",
                IsSuccess = true,
                Data      = _mapper.Map <IEnumerable <TeamDto> >(data)
            };

            return(x);
        }
Ejemplo n.º 8
0
        public IActionResult Token(LoginRequest token)
        {
            var identity = GetIdentity(token.Login, token.Password);

            if (identity == null)
            {
                var badRequest = new UserManagerResponse
                {
                    Message   = "Неверный логин или пароль",
                    IsSuccess = false
                };
                return(Json(badRequest));
            }

            var now = DateTime.UtcNow;
            // создаем JWT-токен
            var jwt = new JwtSecurityToken(
                issuer: AuthOptions.ISSUER,
                audience: AuthOptions.AUDIENCE,
                notBefore: now,
                claims: identity.Claims,
                expires: now.Add(TimeSpan.FromMinutes(AuthOptions.LIFETIME)),
                signingCredentials: new SigningCredentials(AuthOptions.GetSymmetricSecurityKey(), SecurityAlgorithms.HmacSha256));
            var encodedJwt = new JwtSecurityTokenHandler().WriteToken(jwt);

            var employee = _context.Set <Employee>().FirstOrDefault(x => x.Id == int.Parse(identity.Name));

            var umr = new UserManagerResponse
            {
                UserInfo = new Dictionary <string, string>
                {
                    { "FirstName", employee?.FirstName },
                    { "LastName", employee?.LastName },
                    { ClaimTypes.NameIdentifier, employee?.Id.ToString() },
                    { ClaimTypes.Role, identity.Claims.Where(x => x.Type == ClaimTypes.Role).Select(x => x.Value).FirstOrDefault() }
                },
                Message   = encodedJwt,
                IsSuccess = true
            };

            return(Json(umr));
        }
Ejemplo n.º 9
0
        public async Task <IActionResult> LoginAsync([FromBody] LoginViewModel loginViewModel)
        {
            if (ModelState.IsValid)
            {
                UserManagerResponse loginResult = await _userService.LoginUserAsync(loginViewModel);

                if (loginResult.IsSuccess)
                {
                    // в случае успешной авторизации в DTO объекте loginResult поле message содержит токен.
                    // сохранение токена в куках
                    SetTokenInCookies(loginResult.Message);

                    loginResult.Message = "Signed in successfully";

                    return(Ok(loginResult));
                }

                return(BadRequest(loginResult));
            }
            return(BadRequest("Some properties are not valid"));
        }
Ejemplo n.º 10
0
        public void ResetPassWord_Fails_ReturnsBadRequest()
        {
            var passwordForResetDto = new PasswordForResetDto
            {
                Token    = It.IsAny <string>(),
                Email    = "*****@*****.**",
                Password = "******",
            };
            var response = new UserManagerResponse
            {
                IsSuccess = false,
                Message   = "Password reset failed"
            };

            _mockEmailService.Setup(x => x.ResetPasswordAsync(passwordForResetDto)).ReturnsAsync(response);

            var result = _authController.ResetPassword(passwordForResetDto).Result;

            var okResult = Assert.IsType <BadRequestObjectResult>(result);

            Assert.Equal(response, okResult.Value);
        }
Ejemplo n.º 11
0
        public void ForgetPassword_FindsUser_FailsToSendsEmail_ReturnsBadRequest()
        {
            var email    = "*****@*****.**";
            var response = new UserManagerResponse
            {
                IsSuccess = false,
                Message   = "Failed to send email to user"
            };

            _recipeRepoMock.Setup(x => x.GetUser(email)).ReturnsAsync(
                new User
            {
                UserName = "******",
                Email    = email
            }
                );
            _mockEmailService.Setup(x => x.ForgetPasswordAsync(email)).ReturnsAsync(response);

            var result = _authController.ForgetPassword(email).Result;

            var okResult = Assert.IsType <BadRequestObjectResult>(result);

            Assert.Equal(response, okResult.Value);
        }
Ejemplo n.º 12
0
        public void ForgetPassword_FindsUser_SendsEmail_ReturnsOk()
        {
            var email    = "*****@*****.**";
            var response = new UserManagerResponse
            {
                IsSuccess = true,
                Message   = "Reset password URL has been sent to the email successfully"
            };

            _recipeRepoMock.Setup(x => x.GetUser(email)).ReturnsAsync(
                new User
            {
                UserName = "******",
                Email    = email
            }
                );
            _mockEmailService.Setup(x => x.ForgetPasswordAsync(email)).ReturnsAsync(response);

            var result = _authController.ForgetPassword(email).Result;

            var okResult = Assert.IsType <OkObjectResult>(result);

            Assert.Equal(response, okResult.Value);
        }
Ejemplo n.º 13
0
        public void Confirm_Email_Fails_Returns_BadRequest()
        {
            // Arrange
            int userId   = 10;
            var response = new UserManagerResponse
            {
                Errors = null, ExpireDate = null, IsSuccess = false, Message = "email confirmation failed"
            };

            _recipeRepoMock.Setup(x => x.GetUser(userId)).ReturnsAsync(new User
            {
                Email    = "*****@*****.**",
                UserName = "******"
            });
            _mockEmailService.Setup(x => x.ConfirmEmailAsync(userId, It.IsAny <string>())).ReturnsAsync(response);

            // Act
            var result = _authController.ConfirmEmail(userId, "somerandomstring").Result;

            // Assert
            var okResult = Assert.IsType <BadRequestObjectResult>(result);

            Assert.Equal(response, okResult.Value);
        }