private ServerParameters CheckingParameters(ServerParameters checkingContainer) { var resultContainer = new ServerParameters(checkingContainer.Address, checkingContainer.Port, checkingContainer.TimeOut, checkingContainer.DataBaseConnectionString); var regex = new Regex(ADDRESS_PATTERN); Match compare = regex.Match(resultContainer.Address); if (!compare.Success) { resultContainer.Address = DEFAULT_ADDRESS; } int valuePort = Convert.ToInt32(resultContainer.Port); if (!(valuePort > MIN_PORT && valuePort < MAX_PORT)) { resultContainer.Port = DEFAULT_PORT; } if (resultContainer.TimeOut <= 0) { resultContainer.TimeOut = DEFAULT_TIMEOUT; } if (string.IsNullOrEmpty(resultContainer.DataBaseConnectionString)) { resultContainer.DataBaseConnectionString = DEFAULT_DATABASE_CONNECTION_STRING; } return(resultContainer); }
private static void Main(string[] args) { ServerConfiguration _serverConfiguration; try { _serverConfiguration = new ServerConfiguration(); _serverParameters = _serverConfiguration.ReadConfigurationFile(); _networkWrapper = new NetworkWrapper( _serverParameters.Address, _serverParameters.Port, _serverParameters.TimeOut, _serverParameters.DataBaseConnectionString); _networkWrapper.Start(); Console.ReadLine(); _networkWrapper.Stop(); _serverConfiguration.SaveConfigurationFile( _serverParameters.Address, _serverParameters.Port, _serverParameters.TimeOut, _serverParameters.DataBaseConnectionString); } catch (Exception exception) { _networkWrapper.WriteErrorToDataBase(exception); Console.WriteLine(exception); Console.ReadLine(); } }
public void SaveConfigurationFile(string address, int port, int timeOut, string dataBaseConnectionString) { var serverParameters = new ServerParameters(address, port, timeOut, dataBaseConnectionString); if (!File.Exists(_pathToConfigurationFile)) { StreamWriter streamWriter = new StreamWriter(_pathToConfigurationFile); streamWriter.Close(); } using (StreamWriter file = File.CreateText(_pathToConfigurationFile)) { var serializer = new JsonSerializer(); serializer.Serialize(file, serverParameters); } }