public void DiscoverReaders(StripeDiscoveryConfiguration config, Action <IList <StripeTerminalReader> > readers, Action scanTimeoutCallback) { // this assures the discovery succeeds on Android. Old code, ignores this, leading to lack of success in finding other types of readers except for Chipper2x var deviceType = DeviceType.Chipper2x; switch (config.DeviceType) { case "Chipper2X": deviceType = DeviceType.Chipper2x; break; case "VerifoneP400": deviceType = DeviceType.VerifoneP400; break; case "WisePad3": deviceType = DeviceType.Wisepad3; break; } var configuration = new DiscoveryConfiguration(config.TimeOut, deviceType, isSimulated: config.IsSimulated); _onReadersDiscoveredAction = readers; _discoveryCancelable?.Cancel(new GenericCallback((ex) => { // Do Nothing... })); _discoveryCancelable = StripeTerminal.Instance.DiscoverReaders(configuration, this, new GenericCallback((ex) => { // Do Nothing... scanTimeoutCallback(); })); }
public DiscoveryResultBase FilterIgnoredItems( DiscoveryResultBase discoveryResult) { DiscoveryResultBase discoveryResult1 = this.FilterItems(discoveryResult, (Func <IDiscoveryPlugin, DiscoveryResultBase, DiscoveryPluginResultBase>)((plugin, result) => plugin.FilterOutItemsFromIgnoreList(result))); DiscoveryConfiguration config = DiscoveryDatabase.GetDiscoveryConfiguration(((DiscoveryPluginResultBase)discoveryResult.GetPluginResultOfType <CoreDiscoveryPluginResult>()).get_ProfileId() ?? 0); if (config != null && config.get_IsAutoImport()) { discoveryResult1 = this.FilterItems(discoveryResult1, (Func <IDiscoveryPlugin, DiscoveryResultBase, DiscoveryPluginResultBase>)((plugin, result) => !(plugin is ISupportAutoImport) ? (DiscoveryPluginResultBase)null : ((ISupportAutoImport)plugin).FilterAutoImportItems(result, (DiscoveryConfigurationBase)config))); } return(discoveryResult1); }
// Token: 0x0600037B RID: 891 RVA: 0x0001619C File Offset: 0x0001439C private static TimeSpan GetDiscoveryJobTimeout(DiscoveryConfiguration configuration) { if (configuration.IsAgentJob) { return(BusinessLayerSettings.Instance.AgentDiscoveryJobTimeout); } if (configuration.JobTimeout == TimeSpan.Zero || configuration.JobTimeout == TimeSpan.MinValue) { return(TimeSpan.FromMinutes(60.0)); } return(configuration.JobTimeout); }
// Token: 0x0600061D RID: 1565 RVA: 0x00024BA8 File Offset: 0x00022DA8 public DiscoveryResultBase FilterIgnoredItems(DiscoveryResultBase discoveryResult) { DiscoveryResultBase discoveryResultBase = this.FilterItems(discoveryResult, (IDiscoveryPlugin plugin, DiscoveryResultBase result) => plugin.FilterOutItemsFromIgnoreList(result)); DiscoveryConfiguration config = DiscoveryDatabase.GetDiscoveryConfiguration(discoveryResult.GetPluginResultOfType <CoreDiscoveryPluginResult>().ProfileId ?? 0); if (config != null && config.IsAutoImport) { discoveryResultBase = this.FilterItems(discoveryResultBase, delegate(IDiscoveryPlugin plugin, DiscoveryResultBase result) { if (!(plugin is ISupportAutoImport)) { return(null); } return(((ISupportAutoImport)plugin).FilterAutoImportItems(result, config)); }); } return(discoveryResultBase); }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); // Set our view from the "main" layout resource SetContentView(Resource.Layout.activity_main); //StripeConfiguration.SetApiKey(""); //var options = new ConnectionTokenCreateOptions { }; //var service = new ConnectionTokenService(); //ConnectionToken connectionToken = service.Create(options); Terminal.InitTerminal(Android.App.Application.Context, Com.Stripe.Stripeterminal.LogLevel.Verbose, new ConnectionTokenProvider(), new TerminalListener()); DiscoveryConfiguration config = new DiscoveryConfiguration(0, DeviceType.Chipper2x, true); Terminal.Instance.DiscoverReaders(config, new DiscoveryListener(), new Callback()); Com.Stripe.Stripeterminal.Reader reader = DiscoveryListener.readers[0]; Terminal.Instance.ConnectReader(reader, new ReaderCallback()); var paymentIntentService = new PaymentIntentService(); var paymentIntentOptions = new PaymentIntentCreateOptions { Amount = 1000, Currency = "usd", PaymentMethodTypes = new List <string> { "card_present" }, CaptureMethod = "manual", }; Terminal.Instance.RetrievePaymentIntent( paymentIntentService.Create(paymentIntentOptions).ClientSecret, new PaymentIntentCallback()); Cancelable cancelable = Terminal.Instance.CollectPaymentMethod(PaymentIntentCallback.paymentIntent, new ReaderListener(), new PaymentIntentCallback()); Terminal.Instance.ProcessPayment(PaymentIntentCallback.paymentIntent, new PaymentIntentCallback()); var intent = paymentIntentService.Capture(PaymentIntentCallback.paymentIntent.Id, new PaymentIntentCaptureOptions()); }
public ScheduledJob CreateDiscoveryJob(DiscoveryConfiguration configuration) { return(this.CreateDiscoveryJob(configuration, (IDiscoveryPluginFactory) new DiscoveryPluginFactory())); }
public ScheduledJob CreateDiscoveryJob( DiscoveryConfiguration configuration, IDiscoveryPluginFactory pluginFactory) { if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } Engine engine = this.engineDAL.GetEngine(((DiscoveryConfigurationBase)configuration).get_EngineId()); DiscoveryPollingEngineType?pollingEngineType = OrionDiscoveryJobFactory.GetDiscoveryPollingEngineType(configuration.get_EngineID(), this.engineDAL); int result; if (!int.TryParse(SettingsDAL.Get("SWNetPerfMon-Settings-SNMP MaxReps"), out result)) { result = 5; } OrionDiscoveryJobDescription discoveryJobDescription1 = new OrionDiscoveryJobDescription(); discoveryJobDescription1.set_ProfileId(((DiscoveryConfigurationBase)configuration).get_ProfileId()); discoveryJobDescription1.set_EngineId(((DiscoveryConfigurationBase)configuration).get_EngineId()); discoveryJobDescription1.set_HopCount(configuration.get_HopCount()); discoveryJobDescription1.set_IcmpTimeout(configuration.get_SearchTimeout()); DiscoveryCommonSnmpConfiguration snmpConfiguration = new DiscoveryCommonSnmpConfiguration(); snmpConfiguration.set_MaxSnmpReplies(result); snmpConfiguration.set_SnmpRetries(configuration.get_SnmpRetries()); snmpConfiguration.set_SnmpTimeout(configuration.get_SnmpTimeout()); snmpConfiguration.set_SnmpPort(configuration.get_SnmpPort()); snmpConfiguration.set_PreferredSnmpVersion(configuration.get_PreferredSnmpVersion()); discoveryJobDescription1.set_SnmpConfiguration(snmpConfiguration); discoveryJobDescription1.set_DisableICMP(configuration.get_DisableICMP()); discoveryJobDescription1.set_PreferredPollingMethod(((CoreDiscoveryPluginConfiguration)((DiscoveryConfigurationBase)configuration).GetDiscoveryPluginConfiguration <CoreDiscoveryPluginConfiguration>()).get_PreferredPollingMethod()); discoveryJobDescription1.set_VulnerabilityCheckDisabled(SettingsDAL.GetCurrentInt("SWNetPerfMon-Settings-VulnerabilityCheckDisabled", 0) == 1); discoveryJobDescription1.set_MaxThreadsInDetectionPhase(SettingsDAL.GetCurrentInt("Discovery-MaxThreadsInDetectionPhase", 5)); discoveryJobDescription1.set_MaxThreadsInInventoryPhase(SettingsDAL.GetCurrentInt("Discovery-MaxThreadsInInventoryPhase", 5)); discoveryJobDescription1.set_PreferredDnsAddressFamily(SettingsDAL.GetCurrentInt("SWNetPerfMon-Settings-Default Preferred AddressFamily DHCP", 4)); discoveryJobDescription1.set_TagFilter(configuration.get_TagFilter()); discoveryJobDescription1.set_DefaultProbes(configuration.get_DefaultProbes()); OrionDiscoveryJobDescription discoveryJobDescription2 = discoveryJobDescription1; List <DiscoveryPluginInfo> discoveryPluginInfos = DiscoveryPluginFactory.GetDiscoveryPluginInfos(); IList <IDiscoveryPlugin> plugins = pluginFactory.GetPlugins((IList <DiscoveryPluginInfo>)discoveryPluginInfos); List <DiscoveryPluginInfo> pluginInfos = new List <DiscoveryPluginInfo>(); IDictionary <IDiscoveryPlugin, DiscoveryPluginInfo> pairsPluginAndInfo = DiscoveryPluginHelper.CreatePairsPluginAndInfo((IEnumerable <IDiscoveryPlugin>)plugins, (IEnumerable <DiscoveryPluginInfo>)discoveryPluginInfos); bool flag1 = RegistrySettings.IsFreePoller(); using (IEnumerator <IDiscoveryPlugin> enumerator = ((IEnumerable <IDiscoveryPlugin>)plugins).GetEnumerator()) { while (((IEnumerator)enumerator).MoveNext()) { IDiscoveryPlugin current = enumerator.Current; if (flag1 && !(current is ISupportFreeEngine)) { OrionDiscoveryJobFactory.log.DebugFormat("Discovery plugin {0} is not supported on FPE machine", (object)current); } else if (!((DiscoveryConfigurationBase)configuration).get_ProfileId().HasValue&& !(current is IOneTimeJobSupport)) { OrionDiscoveryJobFactory.log.DebugFormat("Plugin {0} is not supporting one time job and it's description woun't be added.", (object)((object)current).GetType().FullName); } else { if (configuration.get_TagFilter() != null && configuration.get_TagFilter().Any <string>()) { if (!(current is IDiscoveryPluginTags idiscoveryPluginTags)) { OrionDiscoveryJobFactory.log.DebugFormat("Discovery job for tags requested, however plugin {0} doesn't support tags, skipping.", (object)current); continue; } if (!configuration.get_TagFilter().Intersect <string>(idiscoveryPluginTags.get_Tags() ?? Enumerable.Empty <string>(), (IEqualityComparer <string>)StringComparer.InvariantCultureIgnoreCase).Any <string>()) { OrionDiscoveryJobFactory.log.DebugFormat("Discovery job for tags [{0}], however plugin {1} doesn't support any of the tags requested, skipping.", (object)string.Join(",", (IEnumerable <string>)configuration.get_TagFilter()), (object)current); continue; } } if (configuration.get_IsAgentJob() && (!(current is IAgentPluginJobSupport pluginJobSupport) || !((IEnumerable <string>)configuration.get_AgentPlugins()).Contains <string>(pluginJobSupport.get_PluginId()))) { OrionDiscoveryJobFactory.log.DebugFormat("Plugin {0} is not contained in supported agent plugins and will not be used.", (object)((object)current).GetType().FullName); }
// Token: 0x0600037A RID: 890 RVA: 0x00015B20 File Offset: 0x00013D20 public ScheduledJob CreateDiscoveryJob(DiscoveryConfiguration configuration, IDiscoveryPluginFactory pluginFactory) { if (configuration == null) { throw new ArgumentNullException("configuration"); } Engine engine = this.engineDAL.GetEngine(configuration.EngineId); DiscoveryPollingEngineType?discoveryPollingEngineType = OrionDiscoveryJobFactory.GetDiscoveryPollingEngineType(configuration.EngineID, this.engineDAL); int maxSnmpReplies; if (!int.TryParse(SettingsDAL.Get("SWNetPerfMon-Settings-SNMP MaxReps"), out maxSnmpReplies)) { maxSnmpReplies = 5; } OrionDiscoveryJobDescription orionDiscoveryJobDescription = new OrionDiscoveryJobDescription { ProfileId = configuration.ProfileId, EngineId = configuration.EngineId, HopCount = configuration.HopCount, IcmpTimeout = configuration.SearchTimeout, SnmpConfiguration = new DiscoveryCommonSnmpConfiguration { MaxSnmpReplies = maxSnmpReplies, SnmpRetries = configuration.SnmpRetries, SnmpTimeout = configuration.SnmpTimeout, SnmpPort = configuration.SnmpPort, PreferredSnmpVersion = configuration.PreferredSnmpVersion }, DisableICMP = configuration.DisableICMP, PreferredPollingMethod = configuration.GetDiscoveryPluginConfiguration <CoreDiscoveryPluginConfiguration>().PreferredPollingMethod, VulnerabilityCheckDisabled = (SettingsDAL.GetCurrentInt("SWNetPerfMon-Settings-VulnerabilityCheckDisabled", 0) == 1), MaxThreadsInDetectionPhase = SettingsDAL.GetCurrentInt("Discovery-MaxThreadsInDetectionPhase", 5), MaxThreadsInInventoryPhase = SettingsDAL.GetCurrentInt("Discovery-MaxThreadsInInventoryPhase", 5), PreferredDnsAddressFamily = SettingsDAL.GetCurrentInt("SWNetPerfMon-Settings-Default Preferred AddressFamily DHCP", 4), TagFilter = configuration.TagFilter, DefaultProbes = configuration.DefaultProbes }; List <DiscoveryPluginInfo> discoveryPluginInfos = DiscoveryPluginFactory.GetDiscoveryPluginInfos(); IList <IDiscoveryPlugin> plugins = pluginFactory.GetPlugins(discoveryPluginInfos); List <DiscoveryPluginInfo> list = new List <DiscoveryPluginInfo>(); IDictionary <IDiscoveryPlugin, DiscoveryPluginInfo> dictionary = DiscoveryPluginHelper.CreatePairsPluginAndInfo(plugins, discoveryPluginInfos); bool flag = RegistrySettings.IsFreePoller(); foreach (IDiscoveryPlugin discoveryPlugin in plugins) { if (flag && !(discoveryPlugin is ISupportFreeEngine)) { OrionDiscoveryJobFactory.log.DebugFormat("Discovery plugin {0} is not supported on FPE machine", discoveryPlugin); } else if (configuration.ProfileId == null && !(discoveryPlugin is IOneTimeJobSupport)) { OrionDiscoveryJobFactory.log.DebugFormat("Plugin {0} is not supporting one time job and it's description woun't be added.", discoveryPlugin.GetType().FullName); } else { if (configuration.TagFilter != null && configuration.TagFilter.Any <string>()) { IDiscoveryPluginTags discoveryPluginTags = discoveryPlugin as IDiscoveryPluginTags; if (discoveryPluginTags == null) { OrionDiscoveryJobFactory.log.DebugFormat("Discovery job for tags requested, however plugin {0} doesn't support tags, skipping.", discoveryPlugin); continue; } if (!configuration.TagFilter.Intersect(discoveryPluginTags.Tags ?? Enumerable.Empty <string>(), StringComparer.InvariantCultureIgnoreCase).Any <string>()) { OrionDiscoveryJobFactory.log.DebugFormat("Discovery job for tags [{0}], however plugin {1} doesn't support any of the tags requested, skipping.", string.Join(",", configuration.TagFilter), discoveryPlugin); continue; } } if (configuration.IsAgentJob) { IAgentPluginJobSupport agentPluginJobSupport = discoveryPlugin as IAgentPluginJobSupport; if (agentPluginJobSupport == null || !configuration.AgentPlugins.Contains(agentPluginJobSupport.PluginId)) { OrionDiscoveryJobFactory.log.DebugFormat("Plugin {0} is not contained in supported agent plugins and will not be used.", discoveryPlugin.GetType().FullName); continue; } } if (discoveryPollingEngineType != null && !OrionDiscoveryJobFactory.IsDiscoveryPluginSupportedForDiscoveryPollingEngineType(discoveryPlugin, discoveryPollingEngineType.Value, dictionary)) { if (OrionDiscoveryJobFactory.log.IsDebugEnabled) { OrionDiscoveryJobFactory.log.DebugFormat(string.Format("Plugin {0} is not supported for polling engine {1}", discoveryPlugin.GetType().FullName, configuration.EngineID), Array.Empty <object>()); } } else { DiscoveryPluginJobDescriptionBase discoveryPluginJobDescriptionBase = null; Exception ex = null; try { discoveryPluginJobDescriptionBase = discoveryPlugin.GetJobDescription(configuration); } catch (Exception ex2) { discoveryPluginJobDescriptionBase = null; ex = ex2; } if (discoveryPluginJobDescriptionBase == null) { string text = "Plugin " + discoveryPlugin.GetType().FullName + " was not able found valid job description."; if (ex != null) { OrionDiscoveryJobFactory.log.Warn(text, ex); } else { OrionDiscoveryJobFactory.log.Warn(text); } } else { orionDiscoveryJobDescription.DiscoveryPluginJobDescriptions.Add(discoveryPluginJobDescriptionBase); DiscoveryPluginInfo item = dictionary[discoveryPlugin]; list.Add(item); } } } } JobDescription jobDescription = new JobDescription { TypeName = typeof(OrionDiscoveryJob).AssemblyQualifiedName, JobDetailConfiguration = this.GetOrionDiscoveryJobDescriptionString(orionDiscoveryJobDescription, list, configuration.UseJsonFormat), JobNamespace = "orion", ResultTTL = TimeSpan.FromMinutes(10.0), TargetNode = new HostAddress(IPAddressHelper.ToStringIp(engine.IP), 4), LegacyEngine = engine.ServerName.ToLowerInvariant(), EndpointAddress = (configuration.IsAgentJob ? configuration.AgentAddress : null), SupportedRoles = 7 }; jobDescription.Timeout = OrionDiscoveryJobFactory.GetDiscoveryJobTimeout(configuration); ScheduledJob scheduledJob; if (configuration.CronSchedule != null) { bool flag2 = false; string text2 = configuration.CronSchedule.CronExpression; if (string.IsNullOrWhiteSpace(text2)) { DateTime t = configuration.CronSchedule.StartTime.ToLocalTime(); if (t < DateTime.Now) { OrionDiscoveryJobFactory.log.InfoFormat("Profile (ID={0}) with past Once(Cron) schedule. We should not create job for it.", configuration.ProfileID); return(null); } text2 = string.Format("{0} {1} {2} {3} *", new object[] { t.Minute, t.Hour, t.Day, t.Month }); flag2 = true; } scheduledJob = new ScheduledJob(jobDescription, text2, "net.pipe://localhost/orion/core/scheduleddiscoveryjobsevents2", configuration.ProfileID.ToString()); scheduledJob.RunOnce = flag2; scheduledJob.TimeZoneInfo = TimeZoneInfo.Local; if (!flag2) { scheduledJob.Start = configuration.CronSchedule.StartTime.ToUniversalTime(); DateTime?endTime = configuration.CronSchedule.EndTime; DateTime maxValue = DateTime.MaxValue; if ((endTime == null || (endTime != null && endTime.GetValueOrDefault() != maxValue)) && configuration.CronSchedule.EndTime != null) { scheduledJob.End = configuration.CronSchedule.EndTime.Value.ToUniversalTime(); } } } else if (!configuration.ScheduleRunAtTime.Equals(DateTime.MinValue)) { scheduledJob = new ScheduledJob(jobDescription, configuration.ScheduleRunAtTime, "net.pipe://localhost/orion/core/scheduleddiscoveryjobsevents2", configuration.ProfileID.ToString()); } else { scheduledJob = new ScheduledJob(jobDescription, configuration.ScheduleRunFrequency, "net.pipe://localhost/orion/core/scheduleddiscoveryjobsevents2", configuration.ProfileID.ToString()); } return(scheduledJob); }
// Token: 0x060002AE RID: 686 RVA: 0x00010840 File Offset: 0x0000EA40 private static void StartImportInternal(Guid importId, DiscoveryResultBase result, SortedDictionary <int, List <IDiscoveryPlugin> > importingPlugins, bool checkLicenseLimits, DiscoveryImportManager.CallbackDiscoveryImportFinished callbackAfterImport) { string webjs_PS0_ = Resources.WEBJS_PS0_17; StartImportStatus status = StartImportStatus.Failed; List <DiscoveryLogItem> list = new List <DiscoveryLogItem>(); try { DiscoveryConfiguration discoveryConfiguration = DiscoveryDatabase.GetDiscoveryConfiguration(result.ProfileID); if (discoveryConfiguration != null) { string name = discoveryConfiguration.Name; } } catch (Exception ex) { DiscoveryImportManager.log.Warn("Unable to load profile name", ex); } using (LocaleThreadState.EnsurePrimaryLocale()) { try { DiscoveryNetObjectStatusManager.Instance.BeginOrionDatabaseChanges(); if (checkLicenseLimits) { if (DiscoveryImportManager.GetLicensedStatus(result).Any((ElementLicenseInfo n) => n.ExceededBy != 0)) { DiscoveryImportManager.log.Debug("Can't import discovery result, because license was exceeded"); status = StartImportStatus.LicenseExceeded; return; } } double progress = 0.0; double num = (double)(100 / importingPlugins.Keys.Count); foreach (int key in importingPlugins.Keys) { using (List <IDiscoveryPlugin> .Enumerator enumerator2 = importingPlugins[key].GetEnumerator()) { while (enumerator2.MoveNext()) { IDiscoveryPlugin plugin = enumerator2.Current; ISupportImportLog supportImportLog = plugin as ISupportImportLog; if (supportImportLog != null) { supportImportLog.SetImportLogCallback(new Action <DiscoveryLogItem>(list.Add)); } plugin.ImportResults(result, delegate(string message, double phaseProgress) { DiscoveryImportManager.UpdateProgress(importId, message, progress + phaseProgress / (double)importingPlugins.Keys.Count, phaseProgress, plugin.GetImportPhaseName(), false); }); } } progress += num; } DiscoveryImportManager.UpdateProgress(importId, Resources.LIBCODE_VB0_28, 100.0, 100.0, string.Empty, true); status = StartImportStatus.Finished; } catch (Exception ex2) { status = StartImportStatus.Failed; DiscoveryImportManager.log.Error("Exception occurred during discovery import", ex2); DiscoveryImportManager.UpdateProgress(importId, Resources.LIBCODE_TM0_30, 100.0, 100.0, string.Empty, true); } finally { DiscoveryNetObjectStatusManager.Instance.EndOrionDatabaseChanges(); result.BatchID = Guid.NewGuid(); try { DiscoveryImportManager.InsertDiscoveryLogItems(list, result.BatchID); } catch (Exception ex3) { DiscoveryImportManager.log.Error("Unable to store discovery import items", ex3); } if (callbackAfterImport != null) { try { callbackAfterImport(result, importId, status); } catch (Exception ex4) { DiscoveryImportManager.log.Error("Error while calling callback after import.", ex4); } } DiscoveryNetObjectStatusManager.Instance.RequestUpdateAsync(null, BusinessLayerSettings.Instance.DiscoveryUpdateNetObjectStatusWaitForChangesDelay); } } }