using System; using System.Collections.Generic; using System.Net; using System.Threading.Tasks; using System.Windows; using Xylem.Common.CommonCore.Configuration; using Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts; using Xylem.Common.Logic.SoftwareAccessHelper; namespace ProductionUiCordonelLegacy.Model { public class MarriageMultiModeViewModel : BaseMultiModeChildViewModel { private Boolean canMarry; public Boolean CanMarry { get => canMarry; set { canMarry = value; NotifyPropertyChanged(); } } private Int32 serialNr; public Int32 SerialNr { get => serialNr; set { serialNr = value; NotifyPropertyChanged(); } } private Boolean locked = false; public MarriageMultiModeViewModel(String ctrName, Int32 slotNR, List barcodeTrigger, Int32? stationID = null) : base(ctrName, slotNR, barcodeTrigger, stationID) { VisibilityMarriage = Visibility.Visible; MeterDetectedHandler += PickingMultiModeViewModel_MeterDetectedHandler; } internal async Task Store() { var url = $"{ServiceUrls.MarriageServiceUrl()}SetPcbToSerial?PcbId={CurrentPcbID}&SerialNumber={SerialNr}&returnMetroData=0"; return await Task.Run(() => { try { //url = "http://10.49.40.25/MeterProcessState/api/Marriage/SetPcbToSerial?PcbId=201420242&SerialNumber=20728820&returnMetroData=1"; var resp = LocalWebRequest.GetRequest(url); if (!string.IsNullOrEmpty(resp)) { if (CurrentMeter != null) { CurrentMeter.Login(); //if (resp.Trim() != "store") //{ // var myJsonResponse = JsonConvert.DeserializeObject>(resp); // foreach (var item in myJsonResponse) // { // CurrentMeter.WriteRegister(item.RegisterName, item.RegisterValue); // } //} CurrentMeter.SetProcessState(DisplayCodes.Mounted); CurrentMeter.GetLastProcessState(); } return true; } Log($"No result for {url} on Store"); return false; } catch (Exception ex) { if (ex is WebException) { Log($"Error on Store {url}: {Environment.NewLine} {((WebException)ex).Message}"); } else { Log(ex.Message); } } return false; }); } private void PickingMultiModeViewModel_MeterDetectedHandler(Object sender, EventArgs e) { CheckBtnEnable(); } private void CheckBtnEnable() { if (SerialNr > 0 && !string.IsNullOrEmpty(CurrentPcbID)) { CanMarry = true; } else { CanMarry = false; } } public override void InputText(String text) { try { SerialNr = 0; text = text.Replace(" ", ""); var preFix = "8SEN20"; if (text.Contains(preFix) && text.Contains(",")) { var tmpSerialNr = 0; var srText = text.Substring(text.IndexOf(preFix) + preFix.Length, text.IndexOf(",") - preFix.Length); if (int.TryParse(srText, out tmpSerialNr)) { SerialNr = tmpSerialNr; } } CheckBtnEnable(); } catch (Exception ex) { Log(ex.Message); } finally { CheckBtnEnable(); } } public override Boolean SlotIsLocked() { return locked; } } }