private void UpdatePoolInfo(PoolResult poolResult) { if (poolResult == null) { return; } Control[] poolStatusIcons = { pictureBoxPoolStatus1, pictureBoxPoolStatus2, pictureBoxPoolStatus3 }; int i = 0; for (; i < poolResult.Pools.Length && i < 3; i++) { if (poolResult.Pools[i].Status == "Alive") { SafeControlUpdater.SetbackgroundImage(poolStatusIcons[i], Resources.online); } else { SafeControlUpdater.SetbackgroundImage(poolStatusIcons[i], Resources.offline); } } SafeControlUpdater.Invalidate(this.pictureBox1); }
private void RestartBfgMinerProc(object state) { SafeCloseBfgMiner(); _summaryQueue.Clear(); _currentSummaryResult = null; _currentPoolResult = null; SafeControlUpdater.Invalidate(pictureBox1); SafeControlUpdater.Invalidate(pictureBoxGraph); _avalonFloatWindow.CurMHS = 0; Thread.Sleep(100); RunMinerAndMonitorData(); }
public PoolResult DeterminePoolResults(List <Match> playedMatches) { var poolResults = new PoolResult(); var normalizedTeamsFromMatches = NormalizeTeamsFromMatches(playedMatches); List <Team> orderedTeamsForPoolResult = normalizedTeamsFromMatches .OrderByDescending(x => x.TotalPoints) .ThenByDescending(x => x.GoalDifference) .ThenByDescending(x => x.TotalGoalsFor) .ThenBy(x => x.TotalGoalsAgaint) .ToList(); var teamsWithSameResult = SearchTeamWihSameResults(orderedTeamsForPoolResult); // if teams have the same result order by mutual match results if (teamsWithSameResult != null && teamsWithSameResult.Count > 0) { var matchesForTeamsWithSameResult = SearchMatchesForMutualResult(teamsWithSameResult, playedMatches); var matchWithbiggestDifference = GetMutualMatchWithBiggestDifference(matchesForTeamsWithSameResult); var lossingTeamFromMutualResult = GetLosingTeam(matchWithbiggestDifference); var winningTeamFromMutualResult = GetWinnigTeam(matchWithbiggestDifference); var currentLosingIndex = orderedTeamsForPoolResult.FindIndex(x => x.Id == lossingTeamFromMutualResult.Id); var currentWinnigIndex = orderedTeamsForPoolResult.FindIndex(x => x.Id == winningTeamFromMutualResult.Id); // Only if lossingteamIndex is lower, bump the winning team up in position if (currentLosingIndex < currentWinnigIndex) { orderedTeamsForPoolResult = orderedTeamsForPoolResult .Move( orderedTeamsForPoolResult.FindIndex(x => x.Id == winningTeamFromMutualResult.Id), orderedTeamsForPoolResult.Count, orderedTeamsForPoolResult.FindIndex(x => x.Id == winningTeamFromMutualResult.Id) - 1).ToList(); } } poolResults.Teams = orderedTeamsForPoolResult; return(poolResults); }
private bool ParseData(string apiName, string content) { string[] items = content.Split("|".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); if (items == null || items.Length < 2) { return(false); } if (string.Compare(apiName, "summary", true) == 0) { SummaryResult summary = new SummaryResult(); summary.Header.Deserialize(items[0]); summary.Summary.Deserialize(items[1]); if (_summaryQueue.Count > SummaryQueueSize) { _summaryQueue.Dequeue(); } _summaryQueue.Enqueue(summary); UpdateSummary(summary); return(true); } else if (string.Compare(apiName, "pools", true) == 0) { PoolResult poolResult = new PoolResult(); poolResult.Header.Deserialize(items[0]); int poolSize = items.Length - 1; int v = 0; if (Int32.TryParse(poolResult.Header.Msg, out v)) { if (v < poolSize) { poolSize = v; } } if (poolSize > 0) { Pool[] pools = new Pool[poolSize]; for (int i = 0; i < poolSize; i++) { Pool pi = new Pool(); pi.Deserialize(items[i + 1]); pools[i] = pi; } poolResult.Pools = pools; } _currentPoolResult = poolResult; UpdatePoolInfo(poolResult); return(true); } return(false); }