private bool HandlePoolEditCommand(string[] input) { var symbol = input[2]; var url = input[3]; var user = input[4]; var coinConfig = app.EngineConfiguration.CoinConfigurations.SingleOrDefault( c => c.PoolGroup.Id.Equals(symbol, StringComparison.OrdinalIgnoreCase) || c.PoolGroup.Id.ShortCoinSymbol().Equals(symbol, StringComparison.OrdinalIgnoreCase)); MiningPool poolConfig = null; if (coinConfig == null) { var index = -1; if (int.TryParse(symbol, out index)) { index--; var fullPoolList = GetPoolList(); if ((index >= 0) && (index < fullPoolList.Count)) { coinConfig = fullPoolList[index].Configuration; poolConfig = fullPoolList[index].Pool; } } } else poolConfig = app.FindPoolConfiguration(coinConfig, url, String.Empty); if (poolConfig != null) { var pass = input[5]; Uri uri = new UriBuilder(url).Uri; poolConfig.Host = uri.GetComponents(UriComponents.AbsoluteUri & ~UriComponents.Port, UriFormat.UriEscaped); poolConfig.Port = uri.Port; poolConfig.Password = pass; poolConfig.Username = user; app.EngineConfiguration.SaveCoinConfigurations(); notificationHandler(String.Format("Pool {0} updated", url)); return true; } return false; }