) BuildActionLoginPost(ModIdentityServerWebMvcPartAccountJobLoginPostInput input) { input.СlientStore = ExtClientStore; input.Events = ExtEvents; input.Interaction = ExtInteraction; input.SchemeProvider = ExtSchemeProvider; input.SignInManager = ExtSignInManager; input.UserManager = ExtUserManager; var job = AppJobLoginPost; Task <ModIdentityServerWebMvcPartAccountCommonJobLoginOutput> execute() => job.Execute(input); void onSuccess(ModIdentityServerWebMvcPartAccountCommonJobLoginResult result) { job.OnSuccess(ExtLogger, result, input); } void onError(Exception ex, ModIdentityServerWebMvcPartAccountCommonJobLoginResult result) { job.OnError(ex, ExtLogger, result); foreach (var errorMessage in result.ErrorMessages) { input.ModelState.AddModelError(string.Empty, errorMessage); } } return(execute, onSuccess, onError); }
public async Task <IActionResult> LoginPost( ModIdentityServerWebMvcPartAccountViewLoginModel model, string action ) { var result = new ModIdentityServerWebMvcPartAccountCommonJobLoginResult(); var input = new ModIdentityServerWebMvcPartAccountJobLoginPostInput { Action = action, Model = model, ModelState = ModelState, UrlHelper = Url }; var(execute, onSuccess, onError) = MyModel.BuildActionLoginPost(input); try { result.Data = await execute().CoreBaseExtTaskWithCurrentCulture(false); onSuccess(result); } catch (Exception ex) { onError(ex, result); } return(input.Status switch { ModIdentityServerWebMvcPartAccountJobLoginPostEnumStatuses.Index => Redirect("~/"), ModIdentityServerWebMvcPartAccountJobLoginPostEnumStatuses.Redirect => View( "Redirect", new ModIdentityServerWebMvcViewRedirectModel { RedirectUrl = result.Data.ReturnUrl }), ModIdentityServerWebMvcPartAccountJobLoginPostEnumStatuses.Return => Redirect(result.Data.ReturnUrl), _ => View("~/Views/Account/Login.cshtml", result.Data), });
/// <summary> /// Отправить вход в систему. /// </summary> /// <param name="input">Ввод.</param> /// <returns>Задача с выводом.</returns> public async Task <ModIdentityServerWebMvcPartAccountCommonJobLoginOutput> PostLogin( ModIdentityServerWebMvcPartAccountJobLoginPostInput input ) { input.Status = await ProcessLoginPost( input.Model, input.Action, input.Events, input.ModelState, input.SignInManager, input.UrlHelper, input.UserManager, input.Interaction, input.СlientStore ).CoreBaseExtTaskWithCurrentCulture(false); return(await ProduceLogin( input.Model.ReturnUrl, input.Model.LoginMethod, input.Interaction, input.SchemeProvider, input.СlientStore ).CoreBaseExtTaskWithCurrentCulture(false)); }