Esempio n. 1
0
 public CoinKernelViewModel(ICoinKernel data) : this(data.GetId())
 {
     _coinId          = data.CoinId;
     _kernelId        = data.KernelId;
     _sortNumber      = data.SortNumber;
     _dualCoinGroupId = data.DualCoinGroupId;
     _args            = data.Args;
     _notice          = data.Notice;
     _supportedGpu    = data.SupportedGpu;
     _isSupportPool1  = data.IsSupportPool1;
     // 复制,视为值对象,防止直接修改引用
     _environmentVariables.AddRange(data.EnvironmentVariables.Select(a => new EnvironmentVariable(a)));
     // 复制,视为值对象,防止直接修改引用
     _inputSegments.AddRange(data.InputSegments.Select(a => new InputSegment(a)));
     _inputSegmentVms.AddRange(_inputSegments.Select(a => new InputSegmentViewModel(a)));
     _fileWriterIds     = data.FileWriterIds;
     _fragmentWriterIds = data.FragmentWriterIds;
     foreach (var writerId in _fileWriterIds)
     {
         if (AppContext.Instance.FileWriterVms.TryGetFileWriterVm(writerId, out FileWriterViewModel writerVm))
         {
             _fileWriterVms.Add(writerVm);
         }
     }
     foreach (var writerId in _fragmentWriterIds)
     {
         if (AppContext.Instance.FragmentWriterVms.TryGetFragmentWriterVm(writerId, out FragmentWriterViewModel writerVm))
         {
             _fragmentWriterVms.Add(writerVm);
         }
     }
 }
Esempio n. 2
0
                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);
                    }
                }
Esempio n. 3
0
 public CoinKernelViewModel(ICoinKernel data) : this(data.GetId())
 {
     _coinId          = data.CoinId;
     _kernelId        = data.KernelId;
     _dualCoinGroupId = data.DualCoinGroupId;
     _args            = data.Args;
     _dualFullArgs    = data.DualFullArgs;
     _notice          = data.Notice;
     _supportedGpu    = data.SupportedGpu;
     _isSupportPool1  = data.IsSupportPool1;
     // 复制,视为值对象,防止直接修改引用
     _environmentVariables.AddRange(data.EnvironmentVariables.Select(a => new EnvironmentVariable(a)));
     // 复制,视为值对象,防止直接修改引用
     _inputSegments.AddRange(data.InputSegments.Select(a => new InputSegment(a)));
     _inputSegmentVms.AddRange(_inputSegments.Select(a => new InputSegmentViewModel(a)));
     _gpuInputSegmentVms.AddRange(_inputSegmentVms.Where(a => a.TargetGpu.IsSupportedGpu(NTMinerRoot.Instance.GpuSet.GpuType)));
     _fileWriterIds     = data.FileWriterIds;
     _fragmentWriterIds = data.FragmentWriterIds;
     _isHot             = data.IsHot;
     _isRecommend       = data.IsRecommend;
     foreach (var writerId in _fileWriterIds)
     {
         if (AppContext.Instance.FileWriterVms.TryGetFileWriterVm(writerId, out FileWriterViewModel writerVm))
         {
             _fileWriterVms.Add(writerVm);
         }
     }
     foreach (var writerId in _fragmentWriterIds)
     {
         if (AppContext.Instance.FragmentWriterVms.TryGetFragmentWriterVm(writerId, out FragmentWriterViewModel writerVm))
         {
             _fragmentWriterVms.Add(writerVm);
         }
     }
 }
Esempio n. 4
0
 private CoinKernelProfile(INTMinerRoot root, ICoinKernel coinKernel)
 {
     _root = root;
     _data = GetCoinKernelProfileData(coinKernel.GetId());
     if (_data == null)
     {
         throw new ValidationException("未获取到CoinKernelProfileData数据,请重试");
     }
 }
Esempio n. 5
0
 public CoinKernelViewModel(ICoinKernel data) : this(data.GetId())
 {
     _coinId          = data.CoinId;
     _kernelId        = data.KernelId;
     _sortNumber      = data.SortNumber;
     _dualCoinGroupId = data.DualCoinGroupId;
     _args            = data.Args;
     _description     = data.Description;
     _supportedGpu    = data.SupportedGpu;
 }
 public CoinKernelViewModel(ICoinKernel data) : this(data.GetId())
 {
     _coinId          = data.CoinId;
     _kernelId        = data.KernelId;
     _sortNumber      = data.SortNumber;
     _dualCoinGroupId = data.DualCoinGroupId;
     _args            = data.Args;
     _description     = data.Description;
     _supportedGpu    = data.SupportedGpu;
     // 复制,视为值对象,防止直接修改引用
     _environmentVariables.AddRange(data.EnvironmentVariables.Select(a => new EnvironmentVariable {
         Key   = a.Key,
         Value = a.Value
     }));
 }
Esempio n. 7
0
 public CoinKernelViewModel(ICoinKernel data) : this(data.GetId())
 {
     _coinId          = data.CoinId;
     _kernelId        = data.KernelId;
     _sortNumber      = data.SortNumber;
     _dualCoinGroupId = data.DualCoinGroupId;
     _args            = data.Args;
     _notice          = data.Notice;
     _supportedGpu    = data.SupportedGpu;
     // 复制,视为值对象,防止直接修改引用
     _environmentVariables.AddRange(data.EnvironmentVariables.Select(a => new EnvironmentVariable(a)));
     // 复制,视为值对象,防止直接修改引用
     _inputSegments.AddRange(data.InputSegments.Select(a => new InputSegment(a)));
     _inputSegmentVms.AddRange(_inputSegments.Select(a => new InputSegmentViewModel(a)));
 }