//this is necessary due to large changes to the class definition and streaming in / deserializing //older legacy XML public void RemoveDuplicateDeviceConfigurations() { DeviceConfigurations = DeviceConfigurations .GroupBy(c => new { c.Kind, c.RelativeIndex, c.Driver, c.Path, c.Serial }) .Select(c => c.First()) .ToList(); }
public T Create <T>() where T : IDevice { var device = Activator.CreateInstance <T>(); device.Guid = Guid.NewGuid(); Devices.Add(device); device.Config = new DeviceConfig { Name = typeof(T).GetCustomAttribute <DisplayName>()?.Name ?? "Device", DeviceType = typeof(T), Properties = typeof(T) .GetProperties() .Where(x => x.GetCustomAttributes <rMind.Robot.Config>().Any()) .Select(x => new ConfigProperty { ClassName = x.Name, Value = x.GetCustomAttribute <Config>()?.Default, Name = x.GetCustomAttribute <DisplayName>()?.Name ?? "Property" }).ToList(), Guid = device.Guid }; DeviceConfigurations.Add(device.Config); m_deviceDict[device.Guid] = device; return(device); }
private void RemoveDisabledCoinsFromDeviceConfigurations() { foreach (Coin coinConfiguration in CoinConfigurations.Where(c => !c.Enabled)) { IEnumerable <Device> coinDeviceConfigurations = DeviceConfigurations.Where(c => !String.IsNullOrEmpty(c.CoinSymbol) && c.CoinSymbol.Equals(coinConfiguration.PoolGroup.Id)); foreach (Device coinDeviceConfiguration in coinDeviceConfigurations) { coinDeviceConfiguration.CoinSymbol = string.Empty; } } }
private void RemoveDisabledCoinsFromDeviceConfigurations() { foreach (CoinConfiguration coinConfiguration in CoinConfigurations.Where(c => !c.Enabled)) { IEnumerable <DeviceConfiguration> coinDeviceConfigurations = DeviceConfigurations.Where(c => c.CoinSymbol.Equals(coinConfiguration.Coin.Symbol)); foreach (DeviceConfiguration coinDeviceConfiguration in coinDeviceConfigurations) { coinDeviceConfiguration.CoinSymbol = string.Empty; } } }
private void FixDeviceConfigurationSymbolDiscrepencies() { bool save = DeviceConfigurations.Any(dc => dc.CoinSymbol.Equals(KnownCoins.BadDogecoinSymbol, StringComparison.OrdinalIgnoreCase)); foreach (Device deviceConfiguration in DeviceConfigurations.Where(dc => dc.CoinSymbol.Equals(KnownCoins.BadDogecoinSymbol, StringComparison.OrdinalIgnoreCase))) { deviceConfiguration.CoinSymbol = KnownCoins.DogecoinSymbol; } if (save) { SaveDeviceConfigurations(); } }