HardwareFileLoader.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. using System.Collections.Concurrent;
  2. namespace ConfigOperator;
  3. public class HardwareFileLoader(Hardwares hardwares)
  4. {
  5. public bool Load()
  6. {
  7. if (!DierctoryHelper.GetAllFiles(Paths.HardwareFolder, out List<string>? hardwareFiles) || hardwareFiles is null)
  8. return false;
  9. foreach (var item in hardwareFiles)
  10. {
  11. if (!XmlHelper.DeserializeXml(item, out HardwareSaveXML? output) || output is null)
  12. continue;
  13. if (output.Mini8 is null)
  14. continue;
  15. if (output.Channels is null)
  16. continue;
  17. hardwares.Mini8s[output.Mini8.Index] = output.Mini8;
  18. ConcurrentDictionary<byte, ChannelData> channels = [];
  19. foreach (var channel in output.Channels)
  20. channels[channel.ChannelIndex] = channel;
  21. hardwares.Mini8Channels[output.Mini8.Index] = channels;
  22. }
  23. //LoadHardwareSetValue();
  24. return true;
  25. }
  26. public bool SaveSingleMini8(byte mini8Index)
  27. {
  28. if (!hardwares.Mini8s.TryGetValue(mini8Index, out Mini8Data? mini8) || mini8 is null)
  29. return false;
  30. HardwareSaveXML saveItems = new()
  31. {
  32. Mini8 = mini8,
  33. Channels = [.. hardwares.Mini8Channels[mini8Index].Values],
  34. };
  35. string path = Path.Combine(Paths.HardwareFolder, $"{mini8.Name}.xml");
  36. return XmlFileHelper.WriteFile(path, saveItems);
  37. }
  38. public void Save()
  39. {
  40. foreach (var mini8 in hardwares.Mini8s)
  41. {
  42. HardwareSaveXML saveItems = new()
  43. {
  44. Mini8 = mini8.Value,
  45. Channels = [.. hardwares.Mini8Channels[mini8.Key].Values],
  46. };
  47. string path = Path.Combine(Paths.HardwareFolder, $"{mini8.Value.Name}.xml");
  48. XmlFileHelper.WriteFile(path, saveItems);
  49. }
  50. }
  51. }
  52. public class HardwareSaveXML
  53. {
  54. public Mini8Data? Mini8 { get; set; }
  55. public List<ChannelData>? Channels { get; set; }
  56. }