public void LoadCurrentInfo() { logger.Information("Start LoadCurrentInfo."); // Fill the rich object data to each object foreach (MinerMachine machine in managerInfo.Machines) { if (!string.IsNullOrEmpty(machine.CredentialId)) { MachineCredential credential = managerInfo.Credentials.FirstOrDefault(c => c.Id == machine.CredentialId); if (credential == null) { throw new InvalidDataException($"LoadCurrentInfo error: cannot find CredentialId { machine.CredentialId } in ManagerInfo."); } machine.Credential = credential; } } foreach (MinerClient client in managerInfo.Clients) { MinerMachine machine = managerInfo.Machines.FirstOrDefault(m => m.FullName == client.MachineFullName); if (machine == null) { throw new InvalidDataException($"LoadCurrentInfo error: cannot find machine with name { client.MachineFullName } in ManagerInfo."); } client.Machine = machine; } }
public void AddClient(MinerClient client) { logger.Information("Start AddClient."); if (client == null) { logger.Error("New Client should not be null"); throw new ArgumentNullException("New Client should not be null"); } if (client.Machine == null) { logger.Error("New Client Machine should not be null"); throw new ArgumentNullException("New Client Machine should not be null"); } client.StatusChanged += ClientStatusChanged; client.MachineFullName = client.Machine.FullName; MinerMachine newMachine = client.Machine; MachineCredential newCredential = newMachine.Credential; if (newCredential != null) { newMachine.CredentialId = managerInfo.AddOrUpdateCredential(newMachine.Credential); } managerInfo.AddOrUpdateMachine(newMachine); this.ClientList.Add(client); this.SaveCurrentInfo(); }