public async Task <IActionResult> CallbackGet()
        {
            var result = new ModIdentityServerWebMvcPartExternalJobCallbackGetResult();

            var input = new ModIdentityServerWebMvcPartExternalJobCallbackGetInput
            {
                HttpContext = HttpContext
            };

            var(execute, onSuccess, onError) = MyModel.BuildActionCallbackGet(input);

            try
            {
                result.Data = await execute().CoreBaseExtTaskWithCurrentCulture(false);

                onSuccess(result);
            }
            catch (Exception ex)
            {
                onError(ex, result);
            }

            return(input.Status switch
            {
                ModIdentityServerWebMvcPartExternalJobCallbackGetEnumStatuses.Redirect =>
                View(
                    "Redirect",
                    new ModIdentityServerWebMvcViewRedirectModel
                {
                    RedirectUrl = result.Data.ReturnUrl
                }),

                _ =>
                Redirect(result.Data.ReturnUrl)
            });
Exemplo n.º 2
0
            ) BuildActionCallbackGet(ModIdentityServerWebMvcPartExternalJobCallbackGetInput input)
        {
            input.ClientStore         = ExtClientStore;
            input.Events              = ExtEvents;
            input.Interaction         = ExtInteraction;
            input.JobUserEntityCreate = AppJobUserEntityCreate;
            input.Logger              = ExtLogger;
            input.RoleManager         = ExtRoleManager;
            input.SignInManager       = ExtSignInManager;
            input.UserManager         = ExtUserManager;

            var job = AppJobCallbackGet;

            Task <ModIdentityServerWebMvcPartExternalJobCallbackGetOutput> execute() => job.Execute(input);

            void onSuccess(ModIdentityServerWebMvcPartExternalJobCallbackGetResult result)
            {
                job.OnSuccess(ExtLogger, result, input);
            }

            void onError(Exception ex, ModIdentityServerWebMvcPartExternalJobCallbackGetResult result)
            {
                job.OnError(ex, ExtLogger, result);
            }

            return(execute, onSuccess, onError);
        }
        /// <summary>
        /// Получить обратный вызов.
        /// </summary>
        /// <param name="input">Ввод.</param>
        /// <returns>Задача с выводом.</returns>
        public async Task <ModIdentityServerWebMvcPartExternalJobCallbackGetOutput> GetCallback(
            ModIdentityServerWebMvcPartExternalJobCallbackGetInput input
            )
        {
            var(status, returnUrl) = await ProcessCallbackGet(
                input.ClientStore,
                input.Events,
                input.HttpContext,
                input.Interaction,
                input.JobUserEntityCreate,
                input.Logger,
                input.RoleManager,
                input.SignInManager,
                input.UserManager
                );

            input.Status = status;

            return(new ModIdentityServerWebMvcPartExternalJobCallbackGetOutput
            {
                ReturnUrl = returnUrl
            });
        }