public OctopusRepository(IOctopusClient client)
 {
     this.Client = client;
     Feeds = new FeedRepository(client);
     Backups = new BackupRepository(client);
     Machines = new MachineRepository(client);
     MachineRoles = new MachineRoleRepository(client);
     MachinePolicies = new MachinePolicyRepository(client);
     Subscriptions = new SubscriptionRepository(client);
     Environments = new EnvironmentRepository(client);
     Events = new EventRepository(client);
     FeaturesConfiguration = new FeaturesConfigurationRepository(client);
     ProjectGroups = new ProjectGroupRepository(client);
     Projects = new ProjectRepository(client);
     Proxies = new ProxyRepository(client);
     Tasks = new TaskRepository(client);
     Users = new UserRepository(client);
     VariableSets = new VariableSetRepository(client);
     LibraryVariableSets = new LibraryVariableSetRepository(client);
     DeploymentProcesses = new DeploymentProcessRepository(client);
     Releases = new ReleaseRepository(client);
     Deployments = new DeploymentRepository(client);
     Certificates = new CertificateRepository(client);
     Dashboards = new DashboardRepository(client);
     DashboardConfigurations = new DashboardConfigurationRepository(client);
     Artifacts = new ArtifactRepository(client);
     Interruptions = new InterruptionRepository(client);
     ServerStatus = new ServerStatusRepository(client);
     UserRoles = new UserRolesRepository(client);
     Teams = new TeamsRepository(client);
     RetentionPolicies = new RetentionPolicyRepository(client);
     Accounts = new AccountRepository(client);
     Defects = new DefectsRepository(client);
     Lifecycles = new LifecyclesRepository(client);
     OctopusServerNodes = new OctopusServerNodeRepository(client);
     Channels = new ChannelRepository(client);
     ProjectTriggers = new ProjectTriggerRepository(client);
     Schedulers = new SchedulerRepository(client);
     Tenants = new TenantRepository(client);
     TagSets = new TagSetRepository(client);
     BuiltInPackageRepository = new BuiltInPackageRepositoryRepository(client);
     ActionTemplates = new ActionTemplateRepository(client);
     CommunityActionTemplates = new CommunityActionTemplateRepository(client);
 }
示例#2
0
        private static void WorkLoop()
        {
            var repo = new ProxyRepository(new ProxyDbContext());

            foreach (var line in pendingLines.GetConsumingEnumerable())
            {
                var parts = line.Split(':');
                var ip    = parts[0];
                var port  = ushort.Parse(parts[1]);

                var result      = IpQuery.IPQuery(ip);
                var proxyResult = ProxyQuery.GetAll(ip);
                var lastSeen    = DateTime.MinValue;
                if (int.TryParse(proxyResult.Last_Seen, out var days))
                {
                    lastSeen = DateTime.UtcNow - TimeSpan.FromDays(days);
                }

                switch (proxyResult.Usage_Type)
                {
                case "COM": proxyResult.Usage_Type = "Commercial"; break;

                case "ORG": proxyResult.Usage_Type = "Organization"; break;

                case "GOV": proxyResult.Usage_Type = "Government"; break;

                case "MIL": proxyResult.Usage_Type = "Military"; break;

                case "EDU": proxyResult.Usage_Type = "University/College/School"; break;

                case "LIB": proxyResult.Usage_Type = "Library"; break;

                case "CDN": proxyResult.Usage_Type = "Content Delivery Network"; break;

                case "ISP": proxyResult.Usage_Type = "Fixed Line ISP"; break;

                case "MOB": proxyResult.Usage_Type = "Mobile ISP"; break;

                case "ISP/MOB": proxyResult.Usage_Type = "Fixed/Mobile ISP"; break;

                case "DCH": proxyResult.Usage_Type = "Data Center/Web Hosting/Transit"; break;

                case "SES": proxyResult.Usage_Type = "Search Engine Spider"; break;

                case "-": proxyResult.Usage_Type = ""; break;
                }

                var proxy = new Proxy
                {
                    ID        = Helpers.IpToInt(ip),
                    IP        = ip,
                    Port      = port,
                    City      = result.City,
                    Country   = result.CountryLong,
                    Region    = result.Region,
                    Longitude = result.Longitude,
                    Latitude  = result.Latitude,
                    AS        = proxyResult.AS,
                    ASN       = proxyResult.ASN,
                    Domain    = proxyResult.Domain,
                    ISP       = proxyResult.ISP,
                    LastSeen  = lastSeen,
                    Threat    = proxyResult.Threat,
                    ProxyType = proxyResult.Usage_Type
                };

                foreach (var m in proxy.GetType().GetProperties())
                {
                    if (m.PropertyType != typeof(String))
                    {
                        continue;
                    }

                    var val = (string)m.GetValue(proxy);

                    if (val != "-")
                    {
                        continue;
                    }

                    m.SetValue(proxy, string.Empty);
                    val = (string)m.GetValue(proxy);
                }

                repo.AddOrUpdateProxy(proxy);
                _cache.TryRemove(ip, out _);
                Interlocked.Increment(ref processedLines);
                Console.WriteLine($"Processed: {processedLines}, Pending:{pendingLines.Count}");
            }
        }
 public OctopusAsyncRepository(IOctopusAsyncClient client, RepositoryScope repositoryScope = null)
 {
     Client                     = client;
     Scope                      = repositoryScope ?? RepositoryScope.Unspecified();
     Accounts                   = new AccountRepository(this);
     ActionTemplates            = new ActionTemplateRepository(this);
     Artifacts                  = new ArtifactRepository(this);
     Backups                    = new BackupRepository(this);
     BuiltInPackageRepository   = new BuiltInPackageRepositoryRepository(this);
     BuildInformationRepository = new BuildInformationRepository(this);
     CertificateConfiguration   = new CertificateConfigurationRepository(this);
     Certificates               = new CertificateRepository(this);
     Channels                   = new ChannelRepository(this);
     CommunityActionTemplates   = new CommunityActionTemplateRepository(this);
     Configuration              = new ConfigurationRepository(this);
     DashboardConfigurations    = new DashboardConfigurationRepository(this);
     Dashboards                 = new DashboardRepository(this);
     Defects                    = new DefectsRepository(this);
     DeploymentProcesses        = new DeploymentProcessRepository(this);
     Deployments                = new DeploymentRepository(this);
     Environments               = new EnvironmentRepository(this);
     Events                     = new EventRepository(this);
     FeaturesConfiguration      = new FeaturesConfigurationRepository(this);
     Feeds                      = new FeedRepository(this);
     Interruptions              = new InterruptionRepository(this);
     LibraryVariableSets        = new LibraryVariableSetRepository(this);
     Licenses                   = new LicensesRepository(this);
     Lifecycles                 = new LifecyclesRepository(this);
     MachinePolicies            = new MachinePolicyRepository(this);
     MachineRoles               = new MachineRoleRepository(this);
     Machines                   = new MachineRepository(this);
     Migrations                 = new MigrationRepository(this);
     OctopusServerNodes         = new OctopusServerNodeRepository(this);
     PerformanceConfiguration   = new PerformanceConfigurationRepository(this);
     PackageMetadataRepository  = new PackageMetadataRepository(this);
     ProjectGroups              = new ProjectGroupRepository(this);
     Projects                   = new ProjectRepository(this);
     Runbooks                   = new RunbookRepository(this);
     RunbookProcess             = new RunbookProcessRepository(this);
     RunbookSnapshots           = new RunbookSnapshotRepository(this);
     RunbookRuns                = new RunbookRunRepository(this);
     ProjectTriggers            = new ProjectTriggerRepository(this);
     Proxies                    = new ProxyRepository(this);
     Releases                   = new ReleaseRepository(this);
     RetentionPolicies          = new RetentionPolicyRepository(this);
     Schedulers                 = new SchedulerRepository(this);
     ServerStatus               = new ServerStatusRepository(this);
     Spaces                     = new SpaceRepository(this);
     Subscriptions              = new SubscriptionRepository(this);
     TagSets                    = new TagSetRepository(this);
     Tasks                      = new TaskRepository(this);
     Teams                      = new TeamsRepository(this);
     Tenants                    = new TenantRepository(this);
     TenantVariables            = new TenantVariablesRepository(this);
     UserInvites                = new UserInvitesRepository(this);
     UserRoles                  = new UserRolesRepository(this);
     Users                      = new UserRepository(this);
     VariableSets               = new VariableSetRepository(this);
     Workers                    = new WorkerRepository(this);
     WorkerPools                = new WorkerPoolRepository(this);
     ScopedUserRoles            = new ScopedUserRoleRepository(this);
     UserPermissions            = new UserPermissionsRepository(this);
     UserTeams                  = new UserTeamsRepository(this);
     UpgradeConfiguration       = new UpgradeConfigurationRepository(this);
     loadRootResource           = new Lazy <Task <RootResource> >(LoadRootDocumentInner, true);
     loadSpaceRootResource      = new Lazy <Task <SpaceRootResource> >(LoadSpaceRootDocumentInner, true);
 }
 public ProxyService(ProxyRepository repository) => _proxyRepository = repository;