using BBWYB.Client.APIServices;
using Microsoft.Extensions.DependencyInjection;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;

namespace BBWYB.Client.Views.WebB
{
    /// <summary>
    /// WebB.xaml 的交互逻辑
    /// </summary>
    public partial class WebB : Page
    {
        private WebView2Manager w2m;
        private bool isNavigated;

        private IList<string> managerDepartment;
        private MdsApiService mdsApiService;
        private ShopService shopService;
        private GlobalContext globalContext;

        public WebB()
        {
            InitializeComponent();
            this.Loaded += WebB_Loaded;
            this.Unloaded += WebB_Unloaded;
        }

        private void WebB_Unloaded(object sender, RoutedEventArgs e)
        {
            grid.Children.Remove(w2m.wb2);
            //w2m.wb2.Dispose();
            w2m.Close();
        }

        private void WebB_Loaded(object sender, System.Windows.RoutedEventArgs e)
        {
            var sp = (App.Current as App).ServiceProvider;
            using (var s = sp.CreateScope())
            {
                w2m = s.ServiceProvider.GetRequiredService<WebView2Manager>();
                globalContext = s.ServiceProvider.GetRequiredService<GlobalContext>();
                mdsApiService = s.ServiceProvider.GetRequiredService<MdsApiService>();
                shopService = s.ServiceProvider.GetRequiredService<ShopService>();
            }

            var url = "http://qtbbwy.qiyue666.com";
            w2m.CoreWebView2InitializationCompleted = (e) =>
            {
                w2m.wb2.CoreWebView2.AddHostObjectToScript("qtbbwybContext", this.globalContext);
                isNavigated = true;
                w2m.wb2.CoreWebView2.Navigate(url);
            };


            w2m.Init();
            w2m.wb2.SetValue(Grid.RowProperty, 1);
            w2m.wb2.Margin = new Thickness(1, 0, 1, 0);
            //grid.Children.Clear();
            grid.Children.Add(w2m.wb2);

            if (w2m.IsInitializationCompleted && !isNavigated)
            {
                w2m.wb2.CoreWebView2.Navigate(url);
                //w2m.wb2.CoreWebView2.NavigateToString(content);
                isNavigated = true;
            }
        }
    }
}