Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 3
0
 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");
     }
 }
Esempio n. 4
0
        /// <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));
            }
        }