Пример #1
0
        public static bool CidrIpHasChanged(AppState state)
        {
            var getCidrIp = NetworkUtilities.GetCidrIp();

            if (getCidrIp.Failure)
            {
                return(false);
            }

            var newCidrIp   = getCidrIp.Value;
            var cidrIpMatch = state.Settings.LocalNetworkCidrIp == newCidrIp;

            if (cidrIpMatch)
            {
                return(false);
            }

            var prompt =
                "The current value for CIDR IP is " +
                $"{state.Settings.LocalNetworkCidrIp}, however it appears " +
                $"that {newCidrIp} is the correct value for the current LAN, " +
                "would you like to use this value?";

            var updateCidrIp = PromptUserYesOrNo(state, prompt);

            if (!updateCidrIp)
            {
                return(false);
            }

            state.Settings.LocalNetworkCidrIp = newCidrIp;
            return(true);
        }
Пример #2
0
        public static string InitializeLanCidrIp(AppState state)
        {
            var getCidrIp = NetworkUtilities.GetCidrIp();

            if (getCidrIp.Failure)
            {
                return(GetCidrIpFromUser(state));
            }

            var cidrIp = getCidrIp.Value;
            var prompt = "Found a single IPv4 address associated with the only ethernet adapter " +
                         $"on this machine, is it ok to use {cidrIp} as the CIDR IP?";

            return(PromptUserYesOrNo(state, prompt)
                ? cidrIp
                : GetCidrIpFromUser(state));
        }
Пример #3
0
        public void Setup()
        {
            _generateLogFiles  = false;
            _clientLogMessages = new List <string>();
            _serverLogMessages = new List <string>();

            _remoteServerFolderPath = string.Empty;
            _remoteServerLocalIp    = null;
            _remoteServerPublicIp   = null;

            _serverReceivedTextMessage              = false;
            _serverFileTransferPending              = false;
            _serverReceivedAllFileBytes             = false;
            _serverConfirmedFileTransferComplete    = false;
            _serverRejectedFileTransfer             = false;
            _serverProcessingRequestBacklogStarted  = false;
            _serverProcessingRequestBacklogComplete = false;
            _serverErrorOccurred = false;

            _serverSendFileBytesStarted           = false;
            _serverSendFileBytesComplete          = false;
            _serverStoppedSendingFileBytes        = false;
            _serverWasNotifiedFileTransferStalled = false;

            _clientReceivedTextMessage              = false;
            _clientFileTransferPending              = false;
            _clientReceiveFileBytesStarted          = false;
            _clientReceiveFileBytesComplete         = false;
            _clientConfirmedFileTransferComplete    = false;
            _clientRejectedFileTransfer             = false;
            _clientProcessingRequestBacklogStarted  = false;
            _clientProcessingRequestBacklogComplete = false;
            _clientErrorOccurred = false;

            _clientReceivedServerInfo            = false;
            _clientReceiveFileBytesComplete      = false;
            _clientWasNotifiedFolderIsEmpty      = false;
            _clientWasNotifiedFolderDoesNotExist = false;
            _clientWasNotifiedRetryLimitExceeded = false;
            _clientWasNotifiedFileDoesNotExist   = false;

            _fileInfoList = new FileInfoList();

            var currentPath = Directory.GetCurrentDirectory();
            var index       = currentPath.IndexOf("bin", StringComparison.Ordinal);

            _testFilesFolder = $"{currentPath.Remove(index - 1)}{Path.DirectorySeparatorChar}TestFiles{Path.DirectorySeparatorChar}";

            _localFolder  = _testFilesFolder + $"Client{Path.DirectorySeparatorChar}";
            _remoteFolder = _testFilesFolder + $"Server{Path.DirectorySeparatorChar}";
            _emptyFolder  = _testFilesFolder + $"EmptyFolder{Path.DirectorySeparatorChar}";
            _tempFolder   = _testFilesFolder + $"temp{Path.DirectorySeparatorChar}";

            Directory.CreateDirectory(_localFolder);
            Directory.CreateDirectory(_remoteFolder);
            Directory.CreateDirectory(_emptyFolder);

            _localFilePath   = _localFolder + FileName;
            _remoteFilePath  = _remoteFolder + FileName;
            _restoreFilePath = _testFilesFolder + FileName;

            FileHelper.DeleteFileIfAlreadyExists(_localFilePath, 3);
            if (File.Exists(_restoreFilePath))
            {
                File.Copy(_restoreFilePath, _localFilePath);
            }

            FileHelper.DeleteFileIfAlreadyExists(_remoteFilePath, 3);
            if (File.Exists(_restoreFilePath))
            {
                File.Copy(_restoreFilePath, _remoteFilePath);
            }

            _cidrIp = "172.20.10.0/28";
            _remoteServerPlatform = ServerPlatform.None;

            var getCidrIp = NetworkUtilities.GetCidrIp();

            if (getCidrIp.Success)
            {
                _cidrIp = getCidrIp.Value;
            }

            _cts = new CancellationTokenSource();

            _socketSettings = new SocketSettings
            {
                ListenBacklogSize           = 5,
                BufferSize                  = 1024,
                SocketTimeoutInMilliseconds = 10000
            };

            _clientSettings = new ServerSettings
            {
                LocalServerFolderPath      = _localFolder,
                LocalNetworkCidrIp         = _cidrIp,
                SocketSettings             = _socketSettings,
                TransferUpdateInterval     = 0.10f,
                FileTransferStalledTimeout = TimeSpan.FromSeconds(5),
                TransferRetryLimit         = 2,
                RetryLimitLockout          = TimeSpan.FromSeconds(3),
                LogLevel = LogLevel.Info
            };

            _serverSettings = new ServerSettings
            {
                LocalServerFolderPath      = _remoteFolder,
                LocalNetworkCidrIp         = _cidrIp,
                SocketSettings             = _socketSettings,
                TransferUpdateInterval     = 0.10f,
                FileTransferStalledTimeout = TimeSpan.FromSeconds(5),
                TransferRetryLimit         = 2,
                RetryLimitLockout          = TimeSpan.FromSeconds(3),
                LogLevel = LogLevel.Info
            };
        }