Exemple #1
0
        public async Task <ActionResult> Login(LoginModel model, string returnUrl = "/")
        {
            LoginVM viewModel = new LoginVM();


            var authent = new AuthenticationInfo {
                UserName = model.UserName, Password = model.Password
            };
            AuthenticationOut authentResult = null;

            try
            {
                authentResult = await accountService.AuthenticationAsync(authent);
            }
            catch (Exception ex)
            {
                string s = ex.Message; //TODO:Лог
            }


            switch (authentResult.Result.Type)
            {
            case ResultRequestType.Success:



                IEnumerable <string> roles = await accountService.AuthorizationAsync(model.UserName);

                if (roles.Count() > 0)
                {
                    var userInfo    = userManagerService.Get(authentResult.UserId);
                    var userProfile = await userProfileService.GetAsync(userInfo.ProfileId);

                    SignIn(authentResult.UserId, $"{model.UserName} {userProfile.FirstName.ToUpper()[0]}.{userProfile.Patronymic.ToUpper()[0]}. ", roles);
                    viewModel.URI         = string.IsNullOrWhiteSpace(returnUrl) ? "/" : returnUrl;
                    viewModel.Result.Type = ResultRequestType.Success;
                }
                else
                {
                    //TODO: лог
                    viewModel.Result.Type    = ResultRequestType.Error;
                    viewModel.Result.Message = $"Пользователь с guid'ом - {authentResult.UserId} не включен не в одну из ролей";
                }



                break;

            case ResultRequestType.Error:
            case ResultRequestType.Warning:
            case ResultRequestType.Info:
                viewModel = mapper.Map <AuthenticationOut, LoginVM>(authentResult);
                break;
            }

            return(RedirectToLocal(returnUrl));
        }
Exemple #2
0
        public async Task <UserProfileOut> Get(Guid id)
        {
            UserProfileOut result = await userProfileService.GetAsync(id);

            return(result);
        }