using BBWY.Common.Http;
using BBWY.Common.Models;
using BBWY.Server.Model;
using BBWY.Server.Model.Db.Mds;
using FreeSql;
using Microsoft.Extensions.Options;
using System.Collections.Generic;

namespace BBWY.Server.Business
{
    public class TestBusiness : BasePlatformRelayBusiness, IDenpendency
    {
        private FreeSqlMultiDBManager freeSqlMultiDBManager;
        private VenderBusiness venderBusiness;
        public TestBusiness(RestApiService restApiService,
                            IOptions<GlobalConfig> options,
                            FreeSqlMultiDBManager freeSqlMultiDBManager,
                            VenderBusiness venderBusiness,YunDingBusiness yunDingBusiness) : base(restApiService, options, yunDingBusiness)
        {
            this.freeSqlMultiDBManager = freeSqlMultiDBManager;
            this.venderBusiness = venderBusiness;
        }

        public void SyncVenderId()
        {
            var noVenderShops = freeSqlMultiDBManager.MDSfsql.Select<Shops>().Where(s => !string.IsNullOrEmpty(s.AppToken) && !string.IsNullOrEmpty(s.ShopId) && string.IsNullOrEmpty(s.VenderId)).ToList();
            //IList < IUpdate < Shops >> updateShops = new List<IUpdate<Shops>>();
            foreach (var noVenderShop in noVenderShops)
            {
                if (string.IsNullOrEmpty(noVenderShop.AppKey))
                { 
                   
                }
                var venderResponse = venderBusiness.GetVenderInfo(new Model.Dto.PlatformRequest()
                {
                    AppKey = noVenderShop.AppKey,
                    AppSecret = noVenderShop.AppSecret,
                    AppToken = noVenderShop.AppToken,
                    Platform = (Enums.Platform)noVenderShop.PlatformId
                });

                freeSqlMultiDBManager.MDSfsql.Update<Shops>(noVenderShop.Id).Set(s => s.VenderId, venderResponse.VenderId).ExecuteAffrows();
            }
        }
    }
}