159 lines
4.5 KiB
C#
159 lines
4.5 KiB
C#
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<String> barcodeTrigger, Int32? stationID = null) :
|
|
base(ctrName, slotNR, barcodeTrigger, stationID)
|
|
{
|
|
VisibilityMarriage = Visibility.Visible;
|
|
MeterDetectedHandler += PickingMultiModeViewModel_MeterDetectedHandler;
|
|
}
|
|
|
|
internal async Task<Boolean> Store()
|
|
{
|
|
var url = $"{ServiceUrls.MarriageServiceUrl()}SetPcbToSerial?PcbId={CurrentPcbID}&SerialNumber={SerialNr}&returnMetroData=0";
|
|
|
|
return await Task<Boolean>.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<IList<ProgrammingParameters>>(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;
|
|
}
|
|
}
|
|
}
|