Пример #1
0
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);

            config = e.Parameter as IAdapterConfig;
            Bindings.Update();
        }
Пример #2
0
        public static async Task <StorageFile> SaveServerAsync(IAdapterConfig config)
        {
            config.Name = string.IsNullOrEmpty(config.Name) ? $"New {config.AdapterType} Config" : config.Name;
            var file = await IoUtils.SaveUniqueObjAsync(config.Path, config, await AdapterConfigFolderTask);

            config.Path = file.Path;
            return(file);
        }
Пример #3
0
        public static string Encode(this IAdapterConfig adapterConfig)
        {
            switch (adapterConfig)
            {
            case ShadowsocksConfig shadowsocksConfig:
                return(ShadowsocksConfigEncoder(shadowsocksConfig));

            case TrojanConfig trojanConfig:
                return(TrojanConfigEncoder(trojanConfig));
            }
            throw new NotSupportedException("Could not generate a URI of type " + adapterConfig.AdapterType);
        }
Пример #4
0
        public static string Encode(this IAdapterConfig adpaterConfig)
        {
            switch (adpaterConfig)
            {
            case ShadowsocksConfig shadowsocksConfig:
                return(ShadowsocksConfigEncoder(shadowsocksConfig));

            case TrojanConfig trojanConfig:
                return(TrojanConfigEncoder(trojanConfig));
            }
            return("");
        }
Пример #5
0
        /// <summary>
        /// Applies the adapter config.
        /// </summary>
        /// <param name="adapter">the adapter config</param>
        public void ApplyAdapterConfig(IAdapterConfig adapter)
        {
            XmlDocument         doc   = adapterDocTable[adapter.Name];
            XmlNamespaceManager nsmgr = new XmlNamespaceManager(new NameTable());

            nsmgr.AddNamespace("tc", StringResource.DefaultNamespace);
            XmlNode adapterNode = doc.SelectSingleNode("tc:TestSite/tc:Adapters", nsmgr);
            XmlNode node        = adapter.CreateXmlNode(doc);

            adapterNode.RemoveChild(adapterTable[adapter.Name]);
            adapterNode.AppendChild(node);
            adapterTable[adapter.Name] = node;
        }
Пример #6
0
        private void LoadAdapterConfig(Type adapterType)
        {
            IAdapterConfig adapter = AssemblyHelper.CreateAdapter <IAdapterConfig>(adapterType);

            if (adapter == null)
            {
                MessageBox.Show("Cannot create instance of type " + adapterType.ToString() + "\r\n\r\n" + AssemblyHelper.LastErrorInfor);
                return;
            }

            IConfigUI[] uilist = adapter.GetConfigUI();
            if (uilist != null && uilist.Length > 0)
            {
                _config = uilist[0];
            }

            if (_config == null)
            {
                MessageBox.Show("Cannot get config implementation from adapter " + adapterType.ToString());
                return;
            }

            Control ctrl = _config.GetControl();

            if (ctrl == null)
            {
                MessageBox.Show("Cannot get config GUI from adapter " + adapterType.ToString());
                return;
            }

            AssemblyHelper.PrepareControl(ctrl, tabPage2);
            tabPage2.Controls.Add(ctrl);

            //this.Text = _config.FileName;
            _config.LoadConfig();
        }
 /// <summary>
 /// Applies the adapter config.
 /// </summary>
 /// <param name="adapter">the adapter config</param>
 public void ApplyAdapterConfig(IAdapterConfig adapter)
 {
     XmlDocument doc = adapterDocTable[adapter.Name];
     XmlNamespaceManager nsmgr = new XmlNamespaceManager(new NameTable());
     nsmgr.AddNamespace("tc", StringResource.DefaultNamespace);
     XmlNode adapterNode = doc.SelectSingleNode("tc:TestSite/tc:Adapters", nsmgr);
     XmlNode node = adapter.CreateXmlNode(doc);
     adapterNode.RemoveChild(adapterTable[adapter.Name]);
     adapterNode.AppendChild(node);
     adapterTable[adapter.Name] = node;
 }