public void LoadDBData() { //Todo:loda core from the db DB db = Factory.Instance.Model.Data; //1. Load mineralgos and miner programs if (db.Miners.Count == 0) { //load default ether miner IHashAlgorithm algo = Factory.Instance.DefaultAlgorithm; IMiner miner = algo.DefaultMiner(); if (miner != null) { List <GpuData> gpus = ((MinerBase)miner).GetGpuList(); bool atLeast1GPu = false; foreach (GpuData gpuData in gpus) { if (gpuData.Make == CardMake.Nvidia || gpuData.Make == CardMake.Amd) { atLeast1GPu = true; } } if (!atLeast1GPu) { //add a cpu monero miner IHashAlgorithm cryptonight = new Coins.CryptoNote.CryptoNote(); miner = cryptonight.DefaultMiner(); } Miners.Add(miner); SelectedMiner = miner; } } else { IMiner miner = null; foreach (IMinerData item in db.Miners) { IHashAlgorithm algo = Factory.Instance.CreateAlgoObject(item.Algorithm); miner = algo.RegenerateMiner(item); if (miner != null) { Miners.Add(miner); if (miner.Id == db.CurrentMinerId) { SelectedMiner = miner; } } } if (SelectedMiner == null) { SelectedMiner = miner; } } //2. load configured miners }
public IHashAlgorithm CreateAlgoObject(string name) { IHashAlgorithm algo = null; switch (name) { case "Ethhash": algo = new EthHash.EthHash(); break; case "Equihash": algo = new Equihash.Equihash(); break; case "CryptoNote": algo = new Coins.CryptoNote.CryptoNote(); break; } return(algo); }