using Newtonsoft.Json; using QRCoder; using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Windows.Forms; using Xylem.Common.CommonCore.Configuration; using Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore; using Xylem.Common.Hardware.WaterMeter.WaterMeterCore; using Xylem.Common.Logic.ProductionOrderCore.TestResults; using Xylem.Common.Logic.SoftwareAccessHelper; namespace Xylem.Common.Ui.GenesisToolBox { public partial class FrmMasterMapping : Form { public FrmMasterMapping() { InitializeComponent(); } private void button1_Click(Object sender, EventArgs e) { var ret = LocalWebRequest.GetRequest("http://10.49.40.25/MeterProcessState/api/Marriage/GetSerialNumberFromOrderDataUnMapped?OrderNumber=" + txtOrder.Text, 80000); Int32 tmp = 0; if (int.TryParse(ret.ToString().Trim('\"'), out tmp)) { QRCodeGenerator qrGenerator = new QRCodeGenerator(); QRCodeData qrCodeData = qrGenerator.CreateQrCode(tmp.ToString(), QRCodeGenerator.ECCLevel.L); QRCode qrCode = new QRCode(qrCodeData); Bitmap qrCodeImage = qrCode.GetGraphic(10); piBoQr.Image = qrCodeImage; lblSrn.Text = tmp.ToString(); } else { MessageBox.Show(@"error"); } } private void button1_Click_1(Object sender, EventArgs e) { var ret = LocalWebRequest.PostRequestAsync("http://10.49.40.25/MeterProcessState/api/ProccesState/SetPickingState?PcbId=" + txtFastPcbid.Text + "&FertigungsauftragsNr=" + txtFastOrder.Text, 80000); if (ret) { var url = ServiceUrls.MeterProcessStateUrl(); url = url + $"SetPressureStateDetailed"; var mutedResult = new PressureResultData() { Passed = true, LeakRate = "", PcbId = txtFastPcbid.Text, Remark = "fast Map", Rev = 0, TesterName = "pc", TestPressure = "0", TestPoints = new System.Collections.Generic.List() { new PressureTestPoints() { Ident = 1, Input = "0" } } }; ret = LocalWebRequest.PostRequestAsync(url, json: mutedResult); if (ret) { url = $"{ServiceUrls.MarriageServiceUrl()}SetPcbToSerial?PcbId={txtFastPcbid.Text}&SerialNumber={txtFastSerialnumber.Text}&returnMetroData=0"; var retSeri = LocalWebRequest.GetRequest(url, 18000); if (retSeri.Contains("store")) { MessageBox.Show(@"hat geklappt"); } } } } public class Root { public String PcbId { get; set; } public Int32? CordonelAssignedPicking_FertigungsAuftragsNr { get; set; } public Int32? CordonelPressureTest_FertigungsAuftragsNr { get; set; } public Int32? MapPcbIdToSerialNumber_SerialNumber { get; set; } } private void btnConnect_Click(Object sender, EventArgs e) { if (cbComSlot.SelectedItem != null) // && cbComSlot.SelectedValue is ListBoxItem) { Int32 slotNR = 0; lblPcbId.Text = "-"; if (!string.IsNullOrEmpty(cbComSlot.SelectedItem.ToString()) && int.TryParse(cbComSlot.SelectedItem.ToString(), out slotNR)) { var pcb = getPcbId(slotNR); try { var url = $"http://10.49.40.25/MeterProcessState/api/Order/GetCordonelMapping?PcbId={pcb}"; var retSeri = LocalWebRequest.GetRequest(url, 18000); Root myDeserializedClass = JsonConvert.DeserializeObject>(retSeri).First(); lblPcbId.Text = myDeserializedClass.PcbId; lblPickingOrder.Text = myDeserializedClass.CordonelAssignedPicking_FertigungsAuftragsNr.HasValue ? myDeserializedClass.CordonelAssignedPicking_FertigungsAuftragsNr.Value.ToString() : "-"; lblPressureOrder.Text = myDeserializedClass.CordonelPressureTest_FertigungsAuftragsNr.HasValue ? myDeserializedClass.CordonelPressureTest_FertigungsAuftragsNr.Value.ToString() : "-"; label8.Text = myDeserializedClass.MapPcbIdToSerialNumber_SerialNumber.HasValue? myDeserializedClass.MapPcbIdToSerialNumber_SerialNumber.Value.ToString() : "-"; //[{"PcbId":"210520272","CordonelAssignedPicking_FertigungsAuftragsNr":3200192,"CordonelPressureTest_FertigungsAuftragsNr":3200192,"MapPcbIdToSerialNumber_SerialNumber":22799122}] btnRemove.Visible = true; } catch (Exception) { throw; } //load } } } private GenesisMeter _currentGenesis; private String _currentPcbId; private MeterBatch _meterBatch = new MeterBatch(); private String getPcbId(Int32 slotNR) { try { _meterBatch.RemoveAllMeters(); _currentGenesis = new GenesisMeter(); try { _currentGenesis.SetupFromConfigFile(slotNR); _meterBatch.AddMeter(_currentGenesis); } catch (Exception ex) { MessageBox.Show($@"Slot #{slotNR} failed: {ex.Message}"); } return _currentGenesis.GetPcbId(); } catch (Exception ex) { MessageBox.Show(ex.Message); } return "-"; } private void btnRemove_Click(Object sender, EventArgs e) { btnRemoveSure.Visible = true; btnRemoveSure.Text = "Are you sure to delete mapping for PCB " + lblPcbId.Text + "?"; btnRemove.Visible = false; } private void btnRemoveSure_Click(Object sender, EventArgs e) { var ipcb = 0; if (int.TryParse(lblPcbId.Text, out ipcb)) { var ret = LocalWebRequest.PostRequestAsync($"http://10.49.40.25/MeterProcessState/api/Order/DeleteCordonelMapping?PcbId={ipcb}", 80000); if (ret) { MessageBox.Show(@"succeed. mapping is deleted "); btnRemoveSure.Visible = false; } else { MessageBox.Show(@"something went wrong"); } } } private void FrmMasterMapping_FormClosing(Object sender, FormClosingEventArgs e) { _currentGenesis?.Logout(); _meterBatch?.RemoveAllMeters(); _meterBatch?.Dispose(); Dispose(); } private void button2_Click(Object sender, EventArgs e) { var ret = LocalWebRequest.PostRequestAsync("http://10.49.40.25/MeterProcessState/api/ProccesState/SetPressureStateHydralic?PcbId=" + txtHyMapPcb.Text + "&FertigungsauftragsNr=" + txtHyMapOrder.Text, 80000); if (ret) { MessageBox.Show(@"Erfogreich"); } else { MessageBox.Show(@"Fehler"); } } } }