/// <summary> /// Helper method to post miner stats back to the website /// </summary> /// <param name="stats"></param> protected void PostMinerMonitorStat(Guid accountId, string workerName, MinerMonitorStat stats) { // Use OpenHardwareMonitor to add any missing data if needed stats = SupplementMinerMonitorStatData(accountId, workerName, stats); // Send data to API MinerMonitorStatsAPI minerMonitorStatsAPI = new MinerMonitorStatsAPI(); minerMonitorStatsAPI.PostMinerMonitorStats(stats); }
/// <summary> /// Helper method to post miner stats back to the website /// </summary> /// <param name="stats"></param> protected void PostMinerMonitorStat(MinerMonitorStat stats) { // Use OpenHardwareMonitor to add any missing data if needed stats = SupplementMinerMonitorStatData(stats); // Send data to API MinerMonitorStatsAPI minerMonitorStatsAPI = new MinerMonitorStatsAPI(); minerMonitorStatsAPI.PostMinerMonitorStats(stats); }
public void GetAccountWorkerList() { // If there is an account id set, and there are no records in the list then load from API if (Application.Current.Properties["AccountID"] != null) { // Load list of account workers MinerMonitorStatsAPI minerMonitorStatsAPI = new MinerMonitorStatsAPI(); AccountWorkersList = minerMonitorStatsAPI.GetMinerMonitorStats(); OnPropertyChanged("AccountWorkersList"); } }
/// <summary> /// Load list of miner monitor stats /// </summary> private void InitMonitorMining() { try { if (Application.Current.Properties["AccountID"] != null) { // Load list of miner monitor stats MinerMonitorStatsAPI minerMonitorStatsAPI = new MinerMonitorStatsAPI(); MinerMonitorStatList = minerMonitorStatsAPI.GetMinerMonitorStats(); // Convert GPU List into data tables for UI binding foreach (MinerMonitorStat minerMonitorStat in minerMonitorStatList) { minerMonitorStat.DataTableGPUData = ToDataTable(minerMonitorStat.GPUMonitorStatList); minerMonitorStat.DataTableGPUData = GetTransposedTable(minerMonitorStat.DataTableGPUData); // Remove extra columns that were created when mapping to datatable minerMonitorStat.DataTableGPUData.Columns.RemoveAt(0); // Remove extra rows that were created when mapping to datatable minerMonitorStat.DataTableGPUData.Rows.RemoveAt(8); minerMonitorStat.DataTableGPUData.Rows.RemoveAt(7); minerMonitorStat.DataTableGPUData.Rows.RemoveAt(6); minerMonitorStat.DataTableGPUData.Rows.RemoveAt(5); minerMonitorStat.DataTableGPUData.Rows.RemoveAt(4); minerMonitorStat.DataTableGPUData.Rows.RemoveAt(3); minerMonitorStat.DataTableGPUData.Rows.RemoveAt(2); minerMonitorStat.DataTableGPUData.Rows.RemoveAt(1); minerMonitorStat.DataTableGPUData.Rows.RemoveAt(0); } // Notify UI of change OnPropertyChanged("MinerMonitorStatList"); } } catch (Exception e) { ShowError(string.Format("Error loading monitor data: {0}", e.Message)); } }
/// <summary> /// Load list of miner monitor stats /// </summary> public void GetMinerMonitoringResults() { try { if (Application.Current.Properties["AccountID"] != null) { // Load list of miner monitor stats List <MinerMonitorStat> minerMonitorStatList = new List <MinerMonitorStat>(); MinerMonitorStatsAPI minerMonitorStatsAPI = new MinerMonitorStatsAPI(); minerMonitorStatList = minerMonitorStatsAPI.GetMinerMonitorStats(Application.Current.Properties["AccountID"].ToString()).ToList(); GetMinerMonitoringSumGrouped(minerMonitorStatList); GetWorkersOnlineGrouped(minerMonitorStatList); GetWorkersOfflineGrouped(minerMonitorStatList); GetTotalPower(minerMonitorStatList); GetMinerCardsSumGrouped(minerMonitorStatList); } } catch (Exception e) { ShowError(string.Format("Error loading monitor data: {0}", e.Message)); } }
/// <summary> /// Load list of miner monitor stats /// </summary> public void InitMonitorMining() { try { if (Application.Current.Properties["AccountID"] != null && WorkerName != null) { // Load list of miner monitor stats MinerMonitorStatsAPI minerMonitorStatsAPI = new MinerMonitorStatsAPI(); ObservableCollection <MinerMonitorStat> MinerMonitorStatList = minerMonitorStatsAPI.GetMinerMonitorStats(); // Filter list by worker MinerMonitorStat = MinerMonitorStatList.Where(x => x.WorkerName == WorkerName && x.CoinType == CoinType).OrderBy(y => y.Created).FirstOrDefault(); if (MinerMonitorStat != null) { // Calculate Efficiency if (MinerMonitorStat.Power <= 0 || MinerMonitorStat.HashRate <= 0) { Efficiency = "0"; } else { Efficiency = String.Format("{0}/W", HashrateFormatter.Format(MinerMonitorStat.CoinType, (MinerMonitorStat.HashRate / MinerMonitorStat.Power))); } // Notify UI of change OnPropertyChanged("MinerMonitorStat"); OnPropertyChanged("Efficiency"); } } } catch (Exception e) { ShowError(string.Format("Error loading monitor data: {0}", e.Message)); } }
/// <summary> /// Load list of miner monitor stats /// </summary> public void InitMonitorMining24Hour() { try { if (Application.Current.Properties["AccountID"] != null && WorkerName != null) { // Load list of miner monitor stats MinerMonitorStatsAPI minerMonitorStatsAPI = new MinerMonitorStatsAPI(); MinerMonitorStatList24Hour = minerMonitorStatsAPI.GetMinerMonitorStats24Hour(); // LineChart data ChartValuesHashRate = new ChartValues <DateTimePoint>(); ChartValuesPower = new ChartValues <DateTimePoint>(); // Filter list by worker List <MinerMonitorStat> MinerMonitorStatListFiltered = new List <MinerMonitorStat>(); MinerMonitorStatListFiltered = MinerMonitorStatList24Hour.Where(x => x.WorkerName == WorkerName && x.CoinType == CoinType).OrderBy(y => y.Created).ToList(); // Calculate average values and display if (MinerMonitorStatListFiltered.Count > 0) { Calculate24HourAverageHashrate(MinerMonitorStatListFiltered); Calculate24HourAveragePower(MinerMonitorStatListFiltered); } else { Hashrate24HourAverage = "0"; Power24HourAverage = "0"; } // Populate series to be graphed foreach (MinerMonitorStat minerMonitorStat in MinerMonitorStatListFiltered) { DateTimePoint dateTimePoint = new DateTimePoint(); // HashRate dateTimePoint.DateTime = minerMonitorStat.Created.ToLocalTime(); dateTimePoint.Value = HashrateFormatter.FormatNumeric(minerMonitorStat.CoinType, minerMonitorStat.HashRate); ChartValuesHashRate.Add(dateTimePoint); // Power DateTimePoint dateTimePointPower = new DateTimePoint(); dateTimePointPower.DateTime = minerMonitorStat.Created.ToLocalTime(); dateTimePointPower.Value = minerMonitorStat.Power; ChartValuesPower.Add(dateTimePointPower); } // Backfill lists as needed WorkerChartDataBackFill chartDataBackFill = new WorkerChartDataBackFill(); ChartValuesHashRate = chartDataBackFill.BackFillList(ChartValuesHashRate); ChartValuesPower = chartDataBackFill.BackFillList(ChartValuesPower); // Axis label formats XFormatter = val => new DateTime((long)val).ToString(); YFormatter = val => val.ToString(); // Notify UI of change OnPropertyChanged("ChartValuesHashRate"); OnPropertyChanged("ChartValuesPower"); } } catch (Exception e) { ShowError(string.Format("Error loading monitor data: {0}", e.Message)); } }