using BBWY.Common.Models;
using BBWY.Server.Business;
using BBWY.Server.Model;
using Microsoft.AspNetCore.Mvc.Filters;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Primitives;

namespace JD.API.Filters
{
    public class YunDingFilter : ActionFilterAttribute
    {
        private IConfiguration configuration;
        private YunDingBusiness yunDingBusiness;


        public YunDingFilter(IConfiguration configuration, YunDingBusiness yunDingBusiness)
        {
            this.configuration = configuration;
            this.yunDingBusiness = yunDingBusiness;
        }

        public override void OnActionExecuted(ActionExecutedContext context)
        {

        }

        public override void OnActionExecuting(ActionExecutingContext context)
        {
            var platform = (Enums.Platform)int.Parse(configuration.GetSection("ValidatePlatformKey").Value);
            if (platform == Enums.Platform.京东)
            {
                if (!context.HttpContext.Request.Headers.TryGetValue("YunDingKey", out StringValues yundingKey))
                    throw new BusinessException("身份验证失败");

                if (yunDingBusiness.GetKey() != yundingKey.ToString())
                    throw new BusinessException("身份验证失败");
            }
        }
    }
}