private bool UpdateSlotOptionsCollectionFromMessage(FahClientMessage message) { SlotOptionsCollection.Add(SlotOptions.Load(message.MessageText)); if (SlotCollection != null && SlotCollection.Count == SlotOptionsCollection.Count) { foreach (var slotOptions in SlotOptionsCollection) { if (Int32.TryParse(slotOptions[Options.MachineID], out var machineID)) { var slot = SlotCollection.First(x => x.ID == machineID); slot.SlotOptions = slotOptions; } } return(true); } return(false); }
private void Connect() { Connection?.Dispose(); Connection = Model.CreateConnection(); Connection.Open(); if (!String.IsNullOrWhiteSpace(Model.Password)) { Connection.CreateCommand("auth " + Model.Password).Execute(); } Model.ConnectEnabled = !Connection.Connected; if (Connection.Connected) { Connection.CreateCommand("slot-info").Execute(); var reader = Connection.CreateReader(); if (reader.Read()) { var slotCollection = SlotCollection.Load(reader.Message.MessageText); foreach (var slot in slotCollection) { Connection.CreateCommand(String.Format(CultureInfo.InvariantCulture, FahClientMessages.DefaultSlotOptions, slot.ID)).Execute(); if (reader.Read()) { var slotOptions = SlotOptions.Load(reader.Message.MessageText); if (slotOptions[Options.MachineID] != null) { slot.SlotOptions = slotOptions; } } } Model.RefreshSlots(slotCollection); } else { MessageBox.ShowError(Dialog, "Connected to the FAHClient but did not read any slot information. Are you missing a password?", Core.Application.NameAndVersion); Connection.Close(); Model.ConnectEnabled = !Connection.Connected; } } }