public static CoinProfile Create(INTMinerRoot root, MineWorkData mineWorkData, Guid coinId) { if (root.CoinSet.TryGetCoin(coinId, out ICoin coin)) { var data = GetCoinProfileData(mineWorkData, coin.GetId()); if (data == null) { Guid poolId = Guid.Empty; IPool pool = root.PoolSet.OrderBy(a => a.SortNumber).FirstOrDefault(a => a.CoinId == coinId); if (pool != null) { poolId = pool.GetId(); } string wallet = coin.TestWallet; Guid coinKernelId = Guid.Empty; ICoinKernel coinKernel = root.CoinKernelSet.OrderBy(a => a.SortNumber).FirstOrDefault(a => a.CoinId == coinId); if (coinKernel != null) { coinKernelId = coinKernel.GetId(); } data = CoinProfileData.CreateDefaultData(coinId, poolId, wallet, coinKernelId); } CoinProfile coinProfile = new CoinProfile(mineWorkData, data); return(coinProfile); } else { return(Empty); } }
public static CoinProfile Create(INTMinerRoot root, Guid coinId) { if (root.ServerContext.CoinSet.TryGetCoin(coinId, out ICoin coin)) { var data = GetCoinProfileData(coin.GetId()); if (data == null) { Guid poolId = Guid.Empty; IPool pool = root.ServerContext.PoolSet.AsEnumerable().OrderBy(a => a.SortNumber).FirstOrDefault(a => a.CoinId == coinId); if (pool != null) { poolId = pool.GetId(); } string wallet = coin.TestWallet; Guid coinKernelId = GetDefaultCoinKernelId(coin); data = CoinProfileData.CreateDefaultData(coinId, poolId, wallet, coinKernelId); } else { if (!root.ServerContext.CoinKernelSet.TryGetCoinKernel(data.CoinKernelId, out ICoinKernel coinKernel)) { data.CoinKernelId = GetDefaultCoinKernelId(coin); } } CoinProfile coinProfile = new CoinProfile(data); return(coinProfile); } else { return(Empty); } }
public static CoinProfile Create(INTMinerRoot root, Guid coinId) { if (root.CoinSet.TryGetCoin(coinId, out ICoin coin)) { CoinProfile coinProfile = new CoinProfile(root, coin); return(coinProfile); } else { return(Empty); } }
public ICoinProfile GetCoinProfile(Guid coinId) { if (_dicById.ContainsKey(coinId)) { return(_dicById[coinId]); } lock (_locker) { if (_dicById.ContainsKey(coinId)) { return(_dicById[coinId]); } CoinProfile coinProfile = CoinProfile.Create(_root, _mineWorkData, coinId); _dicById.Add(coinId, coinProfile); return(coinProfile); } }
public void SetCoinProfileProperty(Guid coinId, string propertyName, object value) { CoinProfile coinProfile = (CoinProfile)GetCoinProfile(coinId); coinProfile.SetValue(propertyName, value); }