示例#1
0
        public IActionResult Index(AuthDto dto, string returnUrl = null)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    TempData.Add(TempDataModelStateKey, ModelState);
                    return(RedirectToAction("Index"));
                }

                _usersDomain.Authenticate(dto);

                if (!string.IsNullOrEmpty(returnUrl))
                {
                    returnUrl = HttpUtility.UrlDecode(returnUrl);
                    if (Url.IsLocalUrl(returnUrl))
                    {
                        return(Redirect(returnUrl));
                    }
                }

                return(RedirectToAction("Index", "BlogAdmin"));
            }
            catch (ShakerDomainException ex)
            {
                TempData.Add(TempDataErrorMessageKey, ex.Message);
                return(RedirectToAction("Index"));
            }
            catch (Exception ex)
            {
                _logger.LogCritical(ex.Message);
                TempData.Add(TempDataErrorMessageKey, MessagesGetter.Get(ErrorPresentationMessages.DefaultErrorMessage));
                return(RedirectToAction("Index"));
            }
        }
示例#2
0
        public IActionResult Logout()
        {
            try
            {
                _usersDomain.Logout();

                return(Ok());
            }
            catch (Exception ex)
            {
                _logger.LogCritical(ex.Message);

                return(BadRequest(new { message = MessagesGetter.Get(ErrorPresentationMessages.DefaultErrorMessage) }));
            }
        }
示例#3
0
        public IActionResult Logout()
        {
            try
            {
                _usersDomain.Logout();

                return(RedirectToAction("Index"));
            }
            catch (Exception ex)
            {
                _logger.LogCritical(ex.Message);
                TempData.Add(TempDataErrorMessageKey, MessagesGetter.Get(ErrorPresentationMessages.DefaultErrorMessage));
                return(RedirectToAction("Index"));
            }
        }
示例#4
0
        public ChannelDto Put(string id, [FromBody] ChannelDto dto)
        {
            try
            {
                return(_channelsDomain.Update(id, dto));
            }
            catch (Exception ex)
            {
                _logger.LogCritical(ex.Message);

                return(new ChannelDto()
                {
                    Error = MessagesGetter.Get(ErrorPresentationMessages.DefaultErrorMessage)
                });
            }
        }
示例#5
0
        public ChannelDto Get(string id, bool msgs)
        {
            try
            {
                return(_channelsDomain.Get(id, msgs));
            }
            catch (Exception ex)
            {
                _logger.LogCritical(ex.Message);

                return(new ChannelDto()
                {
                    Error = MessagesGetter.Get(ErrorPresentationMessages.DefaultErrorMessage)
                });
            }
        }
示例#6
0
        public UserDto Authenticate(AuthDto dto)
        {
            SignInResult result = _signInManager.PasswordSignInAsync(dto.UserName, dto.Password, dto.RememberMe, true).Result;

            if (result != SignInResult.Success)
            {
                string errorLog          = string.Empty;
                string errorPresentation = string.Empty;

                if (result.IsLockedOut)
                {
                    errorLog          = MessagesGetter.Get(ErrorLogMessages.LockoutLogErrorMessage, dto.UserName);
                    errorPresentation = MessagesGetter.Get(ErrorPresentationMessages.LockoutErrorMessage);
                }

                if (result.IsNotAllowed)
                {
                    errorLog          = MessagesGetter.Get(ErrorLogMessages.NotAllowedLogErrorMessage, dto.UserName);
                    errorPresentation = MessagesGetter.Get(ErrorPresentationMessages.NotAllowedErrorMessage);
                }

                if (result.RequiresTwoFactor)
                {
                    errorLog          = MessagesGetter.Get(ErrorLogMessages.RequiresTwoFactorLogErrorMessage, dto.UserName);
                    errorPresentation = MessagesGetter.Get(ErrorPresentationMessages.RequiresTwoFactorErrorMessage);
                }

                if (result == SignInResult.Failed)
                {
                    errorLog          = MessagesGetter.Get(ErrorLogMessages.FailedSignInLogErrorMessage, dto.UserName);
                    errorPresentation = MessagesGetter.Get(ErrorPresentationMessages.FailedSignInErrorMessage);
                }

                _logger.LogError(errorLog);

                throw new ShakerDomainException(errorPresentation);
            }

            User user = _userManager.FindByNameAsync(dto.UserName).Result;

            return(ToUserDto(user));
        }
示例#7
0
        public ChannelDto Post([FromBody] ChannelDto dto)
        {
            try
            {
                dto = _channelsDomain.Create(dto);

                _botDomain.CreateWelcomeMessage(dto.Id);

                return(dto);
            }
            catch (Exception ex)
            {
                _logger.LogCritical(ex.Message);

                return(new ChannelDto()
                {
                    Error = MessagesGetter.Get(ErrorPresentationMessages.DefaultErrorMessage)
                });
            }
        }
示例#8
0
        public IActionResult Create([FromBody] SignInDto dto)
        {
            try
            {
                UserDto userDto = _usersDomain.Create(dto);

                userDto = _jwtAuth.GenerateToken(userDto);

                return(Ok(userDto));
            }
            catch (ShakerDomainException ex)
            {
                return(BadRequest(new { message = ex.Message }));
            }
            catch (Exception ex)
            {
                _logger.LogCritical(ex.Message);

                return(BadRequest(new { message = MessagesGetter.Get(ErrorPresentationMessages.DefaultErrorMessage) }));
            }
        }