using System; using System.IO; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Input; using Newtonsoft.Json; using Xylem.Common.CommonCore.Consts; using Xylem.Common.Hardware.WaterMeter.Genesis.GenesisConfig; using Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore; using Xylem.Common.Hardware.WaterMeter.WaterMeterCore; using Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts; namespace Xylem.Common.Ui.RelatePcb { /// /// Interaction logic for MainWindow.xaml /// public partial class MainWindow : Window { GenesisMeter CurrentMeter; MeterBatch CurrentMeterBatch; private const string MarriageUrl = "http://sla12iis01/LindaDeMol/api/Marriage/"; public MainWindow() { InitializeComponent(); var configfile = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), nameof(Xylem.Common.Hardware.WaterMeter.Genesis), ProgramConfig.SerialConfigFileName); if (!File.Exists(configfile)) { throw new ApplicationException($"Configuration file {configfile} not found "); } var tr = new StreamReader(configfile); var meterConfigList = JsonConvert.DeserializeObject(tr.ReadToEnd()); cobSlot.Items.Clear(); cobSlot.Items.Add("Manual input"); foreach (var item in meterConfigList) { cobSlot.Items.Add(item.Slot); } cobSlot.SelectedItem = "Manual input"; } private void TxtorderNumber_PreviewTextInput(object sender, TextCompositionEventArgs e) { } private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (sender is ComboBox) { var selectedText = ((ComboBox)sender).SelectedValue.ToString(); var slotNR = 0; if (int.TryParse(selectedText, out slotNR)) { CurrentMeterBatch = new MeterBatch(); CurrentMeter = new GenesisMeter(); CurrentMeter.SetupFromConfigFile(slotNR); CurrentMeterBatch.AddMeter(CurrentMeter); CurrentMeter.Login(); TxtPcbId.Text = CurrentMeter.GetPcbId(); } } } private void btnMarry_Click(object sender, RoutedEventArgs e) { try { if (string.IsNullOrEmpty(TxtPcbId.Text)) { MessageBox.Show("Please input a PcbId"); return; } if (string.IsNullOrEmpty(TxtSerialNumber.Text)) { MessageBox.Show("Please input a SerialNumber"); return; } var url = $"{MarriageUrl}SetPcbToSerial?PcbId={TxtPcbId.Text}&SerialNumber={TxtSerialNumber.Text}"; var http = (HttpWebRequest)WebRequest.Create(url); var response = (HttpWebResponse)http.GetResponse(); if (response.StatusCode == HttpStatusCode.OK) { MessageBox.Show("Success"); } else { var responseStream = response.GetResponseStream(); if (responseStream == null) { throw new InvalidOperationException(); } using (var sr = new StreamReader(responseStream)) { var responseJson = sr.ReadToEnd(); MessageBox.Show($"Error on Store: {Environment.NewLine} {responseJson}"); } } if (CurrentMeter != null) { CurrentMeter.SetProcessState(DisplayCodes.Mounted); CurrentMeter.GetLastProcessState(); } } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e) { CurrentMeter = null; CurrentMeterBatch = null; } } }