Ejemplo n.º 1
0
        private async Task ResolveServerList()
        {
            DebugWrite("Resolving server list");

            IEnumerable <IPEndPoint> serverList = await ServerListProvider.FetchServerListAsync().ConfigureAwait(false);

            List <IPEndPoint> endpointList = serverList.ToList();

            if (endpointList.Count == 0 && canFetchDirectory)
            {
                DebugWrite("Server list provider had no entries, will query SteamDirectory");
                var directoryList = await SteamDirectory.LoadAsync(CellID).ConfigureAwait(false);

                endpointList = directoryList.ToList();
            }

            if (endpointList.Count == 0 && canFetchDirectory)
            {
                DebugWrite("Could not query SteamDirectory, falling back to cm0");
                var cm0 = await Dns.GetHostAddressesAsync("cm0.steampowered.com").ConfigureAwait(false);

                endpointList = cm0.Select(ipaddr => new IPEndPoint(ipaddr, 27015)).ToList();
            }

            DebugWrite("Resolved {0} servers", endpointList.Count);
            ReplaceList(endpointList);
        }
        public void Init()
        {
            var fixture = new Fixture();

            _token           = fixture.Create <string>();
            _expectedServers = fixture.Create <IList <Server> >();

            _clientMock = new Mock <IRestClient>();
            _sut        = new ServerListProvider(_clientMock.Object);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Replace the list with a new list of servers provided to us by the Steam servers.
        /// </summary>
        /// <param name="endpointList">The <see cref="IPEndPoint"/>s to use for this <see cref="SmartCMServerList"/>.</param>
        public void ReplaceList(IEnumerable <IPEndPoint> endpointList)
        {
            lock ( listLock )
            {
                var distinctEndPoints = endpointList.Distinct().ToArray();

                servers.Clear();

                for (var i = 0; i < distinctEndPoints.Length; i++)
                {
                    AddCore(distinctEndPoints[i]);
                }

                ServerListProvider.UpdateServerListAsync(distinctEndPoints).Wait();
            }
        }
Ejemplo n.º 4
0
        public MainForm(DatabaseSettingsForm databaseSettingsForm,
                        UserManagementForm userManagementForm,
                        UserProfileForm userProfileForm,
                        UserSettingsForm userSettingsForm,
                        CreateIssueForm createIssueForm,
                        CreateEventForm createEventForm,
                        CreateMeetingForm createMeetingForm,
                        AddResource addResource,
                        AddServerForm addServerForm,
                        AddCameraForm addCameraForm,
                        CalculatorForm calculatorForm,
                        EditorForm editorForm,
                        PasswordManager passwordManager,
                        CipherForm cipherForm,
                        SendMailForm sendMailForm,
                        LogViewer logViewer,
                        EmailSettingsForm emailSettingsForm,
                        AboutBox aboutBox,
                        ResourceListProvider resourceListProvider,
                        ServerListProvider serverListProvider,
                        FileManager fileManager,
                        IssueListProvider issueListProvider,
                        MeetingsListProvider meetingsListProvider,
                        EventListProvider eventListProvider,
                        IssueRepository issueRepository,
                        ResourceRepository resourceRepository,
                        ServerRepository serverRepository,
                        CameraRepository cameraRepository,
                        MeetingRepository meetingRepository,
                        EventRepository eventRepository,
                        CalendarItemsProvider calendarItemsProvider,
                        WakeOnLan wakeOnLan,
                        PingRequestSender pingRequestSender,
                        SystemSettingsRepository systemSettingsRepository,
                        ProcessUtils processUtils,
                        ErrorBoxHelper errorBoxHelper,
                        AddImageForm addImageForm,
                        IDateTimeProvider dateTimeProvider)
        {
            this.databaseSettingsForm     = databaseSettingsForm;
            this.userManagementForm       = userManagementForm;
            this.userProfileForm          = userProfileForm;
            this.userSettingsForm         = userSettingsForm;
            this.createIssueForm          = createIssueForm;
            this.createEventForm          = createEventForm;
            this.createMeetingForm        = createMeetingForm;
            this.sendMailForm             = sendMailForm;
            this.logViewer                = logViewer;
            this.emailSettingsForm        = emailSettingsForm;
            this.dateTimeProvider         = dateTimeProvider;
            this.addResource              = addResource;
            this.addServerForm            = addServerForm;
            this.addCameraForm            = addCameraForm;
            this.calculatorForm           = calculatorForm;
            this.editorForm               = editorForm;
            this.passwordManager          = passwordManager;
            this.cipherForm               = cipherForm;
            this.resourceListProvider     = resourceListProvider;
            this.serverListProvider       = serverListProvider;
            this.fileManager              = fileManager;
            this.issueListProvider        = issueListProvider;
            this.issueRepository          = issueRepository;
            this.resourceRepository       = resourceRepository;
            this.eventRepository          = eventRepository;
            this.meetingRepository        = meetingRepository;
            this.serverRepository         = serverRepository;
            this.cameraRepository         = cameraRepository;
            this.meetingsListProvider     = meetingsListProvider;
            this.eventListProvider        = eventListProvider;
            this.calendarItemsProvider    = calendarItemsProvider;
            this.systemSettingsRepository = systemSettingsRepository;
            this.aboutBox          = aboutBox;
            this.wakeOnLan         = wakeOnLan;
            this.pingRequestSender = pingRequestSender;
            this.processUtils      = processUtils;
            this.errorBoxHelper    = errorBoxHelper;
            this.addImageForm      = addImageForm;

            InitializeComponent();
            pTaskDetails.Dock = DockStyle.Fill;
            Translator.Translate(this);

            addResource.FormClosed += (_, __) =>
            {
                resourceListProvider.GetResources(tvItems);
            };

            fileManager.Active = lvFileExplorerLeft;
            GetDrives();

            cbView.FillWithEnum <CalendarViewType>();

            var columns = taskboard.GetColumns();

            foreach (var column in columns)
            {
                column.IssueStateChanged += TaskboardColumn_IssueStateChanged;
            }

            SetCalendarColumnSize();
        }