129 lines
4.3 KiB
C#
129 lines
4.3 KiB
C#
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
|
|
{
|
|
/// <summary>
|
|
/// Interaction logic for MainWindow.xaml
|
|
/// </summary>
|
|
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<SlotConfig[]>(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;
|
|
}
|
|
}
|
|
}
|