using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace MesAdaptor { public class SajectConnectSajet2 : ISajetConnect { private enum CMD { Signin = 1, SnCheck = 2, Report = 3, ValueReport = 4, } private readonly string _MechineCode; public SajectConnectSajet2(string MechineCode) { if (string.IsNullOrEmpty(MechineCode)) { throw new Exception("MechineCode cannot not be empty"); } _MechineCode = MechineCode; } public bool SajetTransStart() => SajetConnectAdapter.SajetTransStart(); public bool SajetTransClose() => SajetConnectAdapter.SajetTransClose(); private string userId = ""; public bool SajetTransSignIn(ref string data) { var attemptId = data; var msg = data + ";"; if (SajetTransData(CMD.Signin, ref data)) { if (string.IsNullOrEmpty(data) || data.StartsWith("NG")) { userId = ""; return false; } else { userId = attemptId; return true; } } userId = ""; return false; } [Obsolete] public bool SajetTransWoCheck(ref string workOrder) { return true; } private PhihongSystemID.SystemID systemID; public bool SajetTransSnCheck(ref string serialNumber) { if (!PhihongSystemID.SystemID.TryParse(serialNumber, out var id)) { return false; } var msg = string.Format("{0};{1};;", id.ModelName.ToString(), id.ToString()); if (SajetTransData(CMD.SnCheck, ref msg)) { if (string.IsNullOrEmpty(msg) || msg.StartsWith("NG")) { systemID = null; return false; } systemID = id; return true; } systemID = null; return false; } //public bool SajetTransSnCheck(string partNO,string sn) //{ // var msg = string.Format("{0};{1};;", partNO, sn); // if (SajetTransData(CMD.SnCheck, ref msg)) // { // if (string.IsNullOrEmpty(msg) || msg.StartsWith("NG")) // { // return false; // } // return true; // } // return false; //} public bool SajetTranFinishSuccess() { if (string.IsNullOrEmpty(userId)) return false; if (systemID == null) return false; //string msg = userId + ";" + systemID.ToString() + ";"; string msg = string.Format("{0};{1};{2};{3}:0;", userId, _MechineCode, systemID.ModelName.ToString(), systemID.ToString()); if (string.IsNullOrEmpty(msg)) return false; #if DEBUG return true; #endif return SajetTransData(CMD.Report, ref msg); } //public bool SajetTranFinishSuccess(string partNO, string sn) //{ // if (string.IsNullOrEmpty(userId)) // return false; // //string msg = userId + ";" + systemID.ToString() + ";"; // string msg = string.Format("{0};{1};{2};{3}:0;", userId, _MechineCode, partNO, sn); // if (string.IsNullOrEmpty(msg)) // return false; // return SajetTransData(CMD.Report, ref msg); //} public bool SajetTranFinishFail(MesErrorCode errorCode) { if (string.IsNullOrEmpty(userId)) return false; if (systemID == null) return false; //string msg = userId + ";" + systemID.ToString() + ";"; string msg = string.Format("{0};{1};{2};{3}:1:", userId, _MechineCode, systemID.ModelName.ToString(), systemID.ToString()); if (string.IsNullOrEmpty(msg)) return false; msg += $"{errorCode};"; //E114 #if DEBUG return true; #endif return SajetTransData(CMD.Report, ref msg); } //public bool SajetTranFinishFail(string partNO, string sn, MesErrorCode errorCode) //{ // if (string.IsNullOrEmpty(userId)) // return false; // //string msg = userId + ";" + systemID.ToString() + ";"; // string msg = string.Format("{0};{1};{2};{3}:1:", userId, _MechineCode, partNO, sn); // if (string.IsNullOrEmpty(msg)) // return false; // msg += $"{errorCode};"; //E114 // return SajetTransData(CMD.Report, ref msg); //} [Obsolete] public string SajetTransRegisterHeader(string model, string header) { return ""; } public bool SajetTransReport(Dictionary reportPair) { if (string.IsNullOrEmpty(userId)) return false; if (systemID == null) return false; var totalResult = true; foreach (var pair in reportPair) { var msg = string.Format("{0};{1};{2};{3};{4}:{5};", userId, _MechineCode, systemID.ModelName.ToString(), systemID.ToString(), pair.Key, pair.Value); var result = SajetTransData(CMD.ValueReport, ref msg); totalResult &= result; } return totalResult; } //public bool SajetTransReport(string partNO, string no, Dictionary reportPair) //{ // if (string.IsNullOrEmpty(userId)) // return false; // var totalResult = true; // foreach (var pair in reportPair) // { // var msg = string.Format("{0};{1};{2};{3};{4}:{5};", userId, _MechineCode, partNO, no, pair.Key, pair.Value); // var result = SajetTransData(CMD.ValueReport, ref msg); // totalResult &= result; // } // return totalResult; //} [Obsolete] public bool SajetTransReport(Dictionary resultPair, Dictionary codePair) { return true; } [Obsolete] public bool SajetTransReport(Dictionary resultPair, Dictionary codePair) { return true; } [Obsolete] public bool SajetTransLog(string data) { return true; } private bool SajetTransData(CMD command, ref string data) { return SajetConnectAdapter.SajetTransData((int)command, ref data); } } }