using Tiobon.Core.Common.Extensions;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Http.Extensions;

namespace Tiobon.Core.Common.Swagger;

public static class SwaggerContextExtension
{
    public const string SwaggerCodeKey = "swagger-code";
    public const string SwaggerJwt = "swagger-jwt";

    public static bool IsSuccessSwagger()
    {
        return App.HttpContext?.GetSession()?.GetString(SwaggerCodeKey) == "success";
    }

    public static bool IsSuccessSwagger(this HttpContext context)
    {
        return context.GetSession()?.GetString(SwaggerCodeKey) == "success";
    }

    public static void SuccessSwagger()
    {
        App.HttpContext?.GetSession()?.SetString(SwaggerCodeKey, "success");
    }

    public static void SuccessSwagger(this HttpContext context)
    {
        context.GetSession()?.SetString(SwaggerCodeKey, "success");
    }

    public static void SuccessSwaggerJwt(this HttpContext context, string token)
    {
        context.GetSession()?.SetString(SwaggerJwt, token);
    }

    public static string GetSuccessSwaggerJwt(this HttpContext context)
    {
        return context.GetSession()?.GetString(SwaggerJwt);
    }


    public static void RedirectSwaggerLogin(this HttpContext context, bool IsDevelopment)
    {
        var returnUrl = context.Request.GetDisplayUrl(); //获取当前url地址 
        if (IsDevelopment)
            context.Response.Redirect("/swg-login.html?returnUrl=" + returnUrl);
        else
            context.Response.Redirect("/Advanced/swg-login.html?returnUrl=" + returnUrl);
    }
}