ntminer 6 years ago
parent
commit
bb090c85ee

+ 1 - 1
src/AppModels/AppContext.partials.KernelOutputViewModels.cs

@@ -55,7 +55,7 @@ namespace NTMiner {
             }
 
             private void Init() {
-                foreach (var item in NTMinerRoot.Instance.ServerContext.KernelOutputSet) {
+                foreach (var item in NTMinerRoot.Instance.ServerContext.KernelOutputSet.AsEnumerable()) {
                     _dicById.Add(item.GetId(), new KernelOutputViewModel(item));
                 }
             }

+ 2 - 1
src/NTMinerClient/Core/Kernels/IKernelOutputSet.cs

@@ -2,9 +2,10 @@
 using System.Collections.Generic;
 
 namespace NTMiner.Core.Kernels {
-    public interface IKernelOutputSet : IEnumerable<IKernelOutput> {
+    public interface IKernelOutputSet {
         bool Contains(Guid id);
         bool TryGetKernelOutput(Guid id, out IKernelOutput kernelOutput);
         void Pick(ref string input, IMineContext mineContext);
+        IEnumerable<IKernelOutput> AsEnumerable();
     }
 }

+ 2 - 8
src/NTMinerClient/Core/Kernels/Impl/KernelOutputSet.cs

@@ -1,6 +1,5 @@
 using NTMiner.Core.Gpus;
 using System;
-using System.Collections;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text.RegularExpressions;
@@ -113,14 +112,9 @@ namespace NTMiner.Core.Kernels.Impl {
             return result;
         }
 
-        IEnumerator IEnumerable.GetEnumerator() {
+        public IEnumerable<IKernelOutput> AsEnumerable() {
             InitOnece();
-            return _dicById.Values.GetEnumerator();
-        }
-
-        public IEnumerator<IKernelOutput> GetEnumerator() {
-            InitOnece();
-            return _dicById.Values.GetEnumerator();
+            return _dicById.Values;
         }
 
         private DateTime _kernelRestartKeywordOn = DateTime.MinValue;

+ 2 - 2
src/NTMinerClient/JsonDb/ServerJsonDb.cs

@@ -35,7 +35,7 @@ namespace NTMiner.JsonDb {
             Groups = root.ServerContext.GroupSet.AsEnumerable().Cast<GroupData>().ToArray();
             CoinGroups = root.ServerContext.CoinGroupSet.AsEnumerable().Cast<CoinGroupData>().ToArray();
             KernelInputs = root.ServerContext.KernelInputSet.AsEnumerable().Cast<KernelInputData>().ToArray();
-            KernelOutputs = root.ServerContext.KernelOutputSet.Cast<KernelOutputData>().ToArray();
+            KernelOutputs = root.ServerContext.KernelOutputSet.AsEnumerable().Cast<KernelOutputData>().ToArray();
             KernelOutputTranslaters = root.ServerContext.KernelOutputTranslaterSet.Cast<KernelOutputTranslaterData>().ToArray();
             Kernels = root.ServerContext.KernelSet.Cast<KernelData>().ToList();
             Packages = root.ServerContext.PackageSet.Cast<PackageData>().ToList();
@@ -106,7 +106,7 @@ namespace NTMiner.JsonDb {
             Pools = pools;
             Groups = root.ServerContext.GroupSet.AsEnumerable().Cast<GroupData>().Where(a => coinGroups.Any(b => b.GroupId == a.Id)).ToArray();
             KernelInputs = root.ServerContext.KernelInputSet.AsEnumerable().Cast<KernelInputData>().Where(a => a.Id == kernel.KernelInputId).ToArray();
-            KernelOutputs = root.ServerContext.KernelOutputSet.Cast<KernelOutputData>().Where(a => a.Id == kernel.KernelOutputId).ToArray();
+            KernelOutputs = root.ServerContext.KernelOutputSet.AsEnumerable().Cast<KernelOutputData>().Where(a => a.Id == kernel.KernelOutputId).ToArray();
             KernelOutputTranslaters = root.ServerContext.KernelOutputTranslaterSet.Cast<KernelOutputTranslaterData>().Where(a => a.KernelOutputId == kernel.KernelOutputId).ToArray();
             Kernels = new List<KernelData> { (KernelData)kernel };
             Packages = root.ServerContext.PackageSet.Cast<PackageData>().Where(a => a.Name == kernel.Package).ToList();