public ServicesContainerWrapper( HttpConfiguration originalConfig, ModelValidatorProvider requiredMemberModelValidatorProvider) { _originalConfig = originalConfig; _requiredMemberModelValidatorProvider = requiredMemberModelValidatorProvider; }
public void TearDown() { ModelValidatorProviders.Providers.Clear(); for (int i = 0; i < m_OriginalModelValidatorProviderCollection.Count; i++) { ModelValidatorProvider modelValidatorProvider = m_OriginalModelValidatorProviderCollection[i]; ModelValidatorProviders.Providers.Add(modelValidatorProvider); } }
public void SetItem() { // Arrange ModelValidatorProviderCollection collection = new ModelValidatorProviderCollection(); collection.Add(new Mock <ModelValidatorProvider>().Object); ModelValidatorProvider newProvider = new Mock <ModelValidatorProvider>().Object; // Act collection[0] = newProvider; // Assert ModelValidatorProvider provider = Assert.Single(collection); Assert.Equal(newProvider, provider); }
public void ModelValidatorProviderCollectionCombinedItemsCaches() { // Arrange var providers = new ModelValidatorProvider[] { new Mock <ModelValidatorProvider>(MockBehavior.Strict).Object, new Mock <ModelValidatorProvider>(MockBehavior.Strict).Object }; var collection = new ModelValidatorProviderCollection(providers); // Act var combined1 = collection.CombinedItems; var combined2 = collection.CombinedItems; // Assert Assert.Equal(providers, combined1); Assert.Same(combined1, combined2); }
public void ModelValidatorProviderCollectionCombinedItemsCaches() { // Arrange var providers = new ModelValidatorProvider[] { new Mock<ModelValidatorProvider>(MockBehavior.Strict).Object, new Mock<ModelValidatorProvider>(MockBehavior.Strict).Object }; var collection = new ModelValidatorProviderCollection(providers); // Act var combined1 = collection.CombinedItems; var combined2 = collection.CombinedItems; // Assert Assert.Equal(providers, combined1); Assert.Same(combined1, combined2); }
public void ModelBinderValidatorCollectionCombinedItemsDelegatesToResolver() { // Arrange var firstProvider = new Mock<ModelValidatorProvider>(); var secondProvider = new Mock<ModelValidatorProvider>(); var thirdProvider = new Mock<ModelValidatorProvider>(); var dependencyProviders = new ModelValidatorProvider[] { firstProvider.Object, secondProvider.Object }; var collectionProviders = new ModelValidatorProvider[] { thirdProvider.Object }; var expectedProviders = new ModelValidatorProvider[] { firstProvider.Object, secondProvider.Object, thirdProvider.Object }; var resolver = new Mock<IDependencyResolver>(); resolver.Setup(r => r.GetServices(typeof(ModelValidatorProvider))).Returns(dependencyProviders); var providers = new ModelValidatorProviderCollection(collectionProviders, resolver.Object); // Act ModelValidatorProvider[] combined = providers.CombinedItems; // Assert Assert.Equal(expectedProviders, combined); }
public void ModelBinderValidatorCollectionCombinedItemsDelegatesToResolver() { // Arrange var firstProvider = new Mock <ModelValidatorProvider>(); var secondProvider = new Mock <ModelValidatorProvider>(); var thirdProvider = new Mock <ModelValidatorProvider>(); var dependencyProviders = new ModelValidatorProvider[] { firstProvider.Object, secondProvider.Object }; var collectionProviders = new ModelValidatorProvider[] { thirdProvider.Object }; var expectedProviders = new ModelValidatorProvider[] { firstProvider.Object, secondProvider.Object, thirdProvider.Object }; var resolver = new Mock <IDependencyResolver>(); resolver.Setup(r => r.GetServices(typeof(ModelValidatorProvider))).Returns(dependencyProviders); var providers = new ModelValidatorProviderCollection(collectionProviders, resolver.Object); // Act ModelValidatorProvider[] combined = providers.CombinedItems; // Assert Assert.Equal(expectedProviders, combined); }
private static void ValidateValidatorPropertyNames(Expression <Func <TestModel, string> > propertyNameExpression, ModelValidatorProvider provider, ControllerContext controllerContext) { string propertyName = LinqUtils.GetMemberName(propertyNameExpression); ModelMetadata propertyMetaData = GetModelMetaDataForProperty(typeof(TestModel), propertyName); IList <ModelValidator> properyValidators = provider.GetValidators(propertyMetaData, controllerContext).ToList(); Assert.IsTrue(properyValidators.Count > 0); Assert.IsTrue((properyValidators.Cast <LaboPropertyValidator>()).All(x => x.ValidationRule.MemberInfo.Name == propertyName)); }
protected override void OnCreate2(Bundle?savedInstanceState) { base.OnCreate2(savedInstanceState); this.SetSupportActionBarWithNavigationClick(binding !.toolbar, true); R.Subscribe(() => { Title = ViewModel !.Title; if (binding == null) { return; } binding.tvSystemProxyIp.Text = AppResources.Settings_Proxy_SystemProxyIp; binding.tvCustomDNS.Text = AppResources.Settings_Proxy_CustomDNS; binding.tvProgramStartupRunProxy.Text = AppResources.CommunityFix_AutoRunProxy; binding.tvOnlyEnableProxyScript.Text = AppResources.CommunityFix_ProxyOnlyOnScript; binding.tvProxySettingsSocks5.Text = AppResources.Settings_Proxy_Socks5Proxy; binding.tvSocks5ProxyPortId.Text = AppResources.Settings_Proxy_ProxyPort; binding.tvProxySettingsTwoLevelAgent.Text = AppResources.Settings_Proxy_TwoLevelAgent; binding.tvTwoLevelAgentProxyType.Text = AppResources.Settings_Proxy_ProxyType; binding.tvTwoLevelAgentIp.Text = AppResources.Settings_Proxy_IPAddress; binding.tvTwoLevelAgentPortId.Text = AppResources.Settings_Proxy_Port; binding.tvTwoLevelAgentUserName.Text = AppResources.Settings_Proxy_UserName; binding.tvTwoLevelAgentPassword.Text = AppResources.Settings_Proxy_Password; binding.tvIsVpnMode.Text = AppResources.CommunityFix_IsVpnMode; }).AddTo(this); CreateArrayAdapter(binding.tbSystemProxyIp, items: ViewModel !.SystemProxyIps); CreateArrayAdapter(binding.tbCustomDNS, items: ViewModel !.ProxyDNSs); CreateArrayAdapter(binding.tbTwoLevelAgentProxyType, items: ViewModel.ProxyTypes.Select(x => x.ToString())); SetOnClickListener( binding.layoutRootProgramStartupRunProxy, binding.layoutRootOnlyEnableProxyScript, binding.layoutRootProxySettingsSocks5, binding.layoutRootProxySettingsTwoLevelAgent, binding.layoutRootIsVpnMode); SetProgramStartupRunProxy(); SetOnlyEnableProxyScript(); SetProxySettingsSocks5(); SetProxySettingsTwoLevelAgent(); SetIsVpnMode(); #region Binding TextBox binding.tbSystemProxyIp.Text = SystemProxyIp.Value; binding.tbSystemProxyIp.TextChanged += (_, _) => { var value = binding.tbSystemProxyIp.Text; if (IPAddress.TryParse(value, out var _)) { SystemProxyIp.Value = value; } }; binding.tbCustomDNS.Text = ProxyMasterDns.Value; binding.tbCustomDNS.TextChanged += (_, _) => { var value = binding.tbCustomDNS.Text; if (IPAddress.TryParse(value, out var _)) { ProxyMasterDns.Value = value; } }; binding.tbSocks5ProxyPortId.Text = Socks5ProxyPortId.Value.ToString(); binding.tbSocks5ProxyPortId.TextChanged += (_, _) => { var value = binding.tbSocks5ProxyPortId.Text; if (ModelValidatorProvider.IsPortId(value, out var value2)) { Socks5ProxyPortId.Value = value2; } }; binding.tbTwoLevelAgentIp.Text = TwoLevelAgentIp.Value; binding.tbTwoLevelAgentIp.TextChanged += (_, _) => { var value = binding.tbTwoLevelAgentIp.Text; if (IPAddress.TryParse(value, out var _)) { TwoLevelAgentIp.Value = value; } }; binding.tbTwoLevelAgentPortId.Text = TwoLevelAgentPortId.Value.ToString(); binding.tbTwoLevelAgentPortId.TextChanged += (_, _) => { var value = binding.tbTwoLevelAgentPortId.Text; if (ModelValidatorProvider.IsPortId(value, out var value2)) { TwoLevelAgentPortId.Value = value2; } }; binding.tbTwoLevelAgentUserName.Text = TwoLevelAgentUserName.Value; binding.tbTwoLevelAgentUserName.TextChanged += (_, _) => { var value = binding.tbTwoLevelAgentUserName.Text; TwoLevelAgentUserName.Value = value; }; binding.tbTwoLevelAgentPassword.Text = TwoLevelAgentPassword.Value; binding.tbTwoLevelAgentPassword.TextChanged += (_, _) => { var value = binding.tbTwoLevelAgentPassword.Text; TwoLevelAgentPassword.Value = value; }; binding.tbTwoLevelAgentProxyType.Text = ((ExternalProxyType)TwoLevelAgentProxyType.Value).ToString(); binding.tbTwoLevelAgentProxyType.TextChanged += (_, _) => { var value = binding.tbTwoLevelAgentProxyType.Text; if (Enum.TryParse <ExternalProxyType>(value, true, out var value2)) { TwoLevelAgentProxyType.Value = (short)value2; } }; #endregion }
private ProxyService() { mCurrent = this; ProxyDomains = new SourceList <AccelerateProjectGroupDTO>(); ProxyScripts = new SourceList <ScriptDTO>(); ProxyDomains .Connect() .ObserveOn(RxApp.MainThreadScheduler) .Sort(SortExpressionComparer <AccelerateProjectGroupDTO> .Ascending(x => x.Order).ThenBy(x => x.Name)) .Bind(out _ProxyDomainsList) .Subscribe(_ => SelectGroup = ProxyDomains.Items.FirstOrDefault()); this.WhenValueChanged(x => x.ProxyStatus, false) .Subscribe(async x => { if (x) { httpProxyService.ProxyDomains = EnableProxyDomains; httpProxyService.IsEnableScript = ProxySettings.IsEnableScript.Value; httpProxyService.Scripts = EnableProxyScripts; if (IApplication.IsDesktopPlatform) { httpProxyService.IsOnlyWorkSteamBrowser = ProxySettings.IsOnlyWorkSteamBrowser.Value; httpProxyService.IsSystemProxy = ProxySettings.EnableWindowsProxy.Value; httpProxyService.IsProxyGOG = ProxySettings.IsProxyGOG.Value; } else { httpProxyService.IsSystemProxy = true; } // macOS 上目前因权限问题仅支持 0.0.0.0(IPAddress.Any) httpProxyService.ProxyIp = (!OperatingSystem2.IsMacOS && IPAddress2.TryParse(ProxySettings.SystemProxyIp.Value, out var ip)) ? ip : IPAddress.Any; httpProxyService.Socks5ProxyEnable = ProxySettings.Socks5ProxyEnable.Value; httpProxyService.Socks5ProxyPortId = ProxySettings.Socks5ProxyPortId.Value; if (!ModelValidatorProvider.IsPortId(httpProxyService.Socks5ProxyPortId)) { httpProxyService.Socks5ProxyPortId = ProxySettings.DefaultSocks5ProxyPortId; } //httpProxyService.HostProxyPortId = ProxySettings.HostProxyPortId; httpProxyService.TwoLevelAgentEnable = ProxySettings.TwoLevelAgentEnable.Value; httpProxyService.TwoLevelAgentProxyType = (ExternalProxyType)ProxySettings.TwoLevelAgentProxyType.Value; if (!httpProxyService.TwoLevelAgentProxyType.IsDefined()) { httpProxyService.TwoLevelAgentProxyType = IHttpProxyService.DefaultTwoLevelAgentProxyType; } httpProxyService.TwoLevelAgentIp = IPAddress2.TryParse(ProxySettings.TwoLevelAgentIp.Value, out var ip_t) ? ip_t.ToString() : IPAddress.Loopback.ToString(); httpProxyService.TwoLevelAgentPortId = ProxySettings.TwoLevelAgentPortId.Value; if (!ModelValidatorProvider.IsPortId(httpProxyService.TwoLevelAgentPortId)) { httpProxyService.TwoLevelAgentPortId = ProxySettings.DefaultTwoLevelAgentPortId; } httpProxyService.TwoLevelAgentUserName = ProxySettings.TwoLevelAgentUserName.Value; httpProxyService.TwoLevelAgentPassword = ProxySettings.TwoLevelAgentPassword.Value; httpProxyService.ProxyDNS = IPAddress2.TryParse(ProxySettings.ProxyMasterDns.Value, out var dns) ? dns : null; this.RaisePropertyChanged(nameof(EnableProxyDomains)); this.RaisePropertyChanged(nameof(EnableProxyScripts)); if (!httpProxyService.IsSystemProxy) { const ushort httpsPort = 443; var inUse = httpProxyService.PortInUse(httpsPort); if (inUse) { string?error_CommunityFix_StartProxyFaild443 = null; if (OperatingSystem2.IsWindows) { var p = SocketHelper.GetProcessByTcpPort(httpsPort); if (p != null) { error_CommunityFix_StartProxyFaild443 = AppResources.CommunityFix_StartProxyFaild443___.Format(httpsPort, p.ProcessName, p.Id); } } error_CommunityFix_StartProxyFaild443 ??= AppResources.CommunityFix_StartProxyFaild443_.Format(httpsPort); Toast.Show(error_CommunityFix_StartProxyFaild443); return; } } var isRun = await httpProxyService.StartProxy(); if (isRun) { if (!httpProxyService.IsSystemProxy) { if (httpProxyService.ProxyDomains.Any_Nullable()) { var localhost = IPAddress.Any.Equals(httpProxyService.ProxyIp) ? IPAddress.Loopback.ToString() : httpProxyService.ProxyIp.ToString(); var hosts = httpProxyService.ProxyDomains !.SelectMany(s => { if (s == null) { return(default !);
static void Main(string[] args) { ModelValidatorProvider.Init(); DI.Init(ConfigureServices); BuildAvaloniaApp().StartWithClassicDesktopLifetime(args); }