|
|
@@ -0,0 +1,581 @@
|
|
|
+using System;
|
|
|
+using System.Collections.Generic;
|
|
|
+using System.Linq;
|
|
|
+using System.Text;
|
|
|
+using System.Threading.Tasks;
|
|
|
+using UMESDLLService;
|
|
|
+using System.Collections.Generic;
|
|
|
+using Newtonsoft.Json;
|
|
|
+using Newtonsoft.Json.Linq;
|
|
|
+
|
|
|
+namespace MES
|
|
|
+{
|
|
|
+ class Program
|
|
|
+ {
|
|
|
+ static private MESHelper m_mesHelper = new MESHelper();
|
|
|
+ static void Main(string[] args)
|
|
|
+ {
|
|
|
+ string function = args[0];
|
|
|
+ if(function == "Login")
|
|
|
+ {
|
|
|
+ if(args.Length != 4)
|
|
|
+ {
|
|
|
+ Respone rep = new Respone();
|
|
|
+ rep.function = "Login";
|
|
|
+ rep.result = false;
|
|
|
+ rep.errorMessage = "The number of params is error";
|
|
|
+ Console.Write(rep.ToString());
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ string userName = args[1];
|
|
|
+ string password = args[2];
|
|
|
+ string resCode = args[3];
|
|
|
+ Login(userName, password, resCode);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if(function == "CheckRoute")
|
|
|
+ {
|
|
|
+ if (args.Length != 3)
|
|
|
+ {
|
|
|
+ Respone rep = new Respone();
|
|
|
+ rep.function = "CheckRoute";
|
|
|
+ rep.result = false;
|
|
|
+ rep.errorMessage = "The number of params is error";
|
|
|
+ Console.Write(rep.ToString());
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ string sn = args[1];
|
|
|
+ string resCode = args[2];
|
|
|
+ CheckRoute(sn, resCode);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if (function == "GetRcardMOInfo")
|
|
|
+ {
|
|
|
+ if (args.Length != 2)
|
|
|
+ {
|
|
|
+ Respone rep = new Respone();
|
|
|
+ rep.function = "GetRcardMOInfo";
|
|
|
+ rep.result = false;
|
|
|
+ rep.errorMessage = "The number of params is error";
|
|
|
+ Console.Write(rep.ToString());
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ string sn = args[1];
|
|
|
+ GetRcardMOInfo(sn);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if (function == "GetAddressRangeByMO")
|
|
|
+ {
|
|
|
+ if (args.Length != 2)
|
|
|
+ {
|
|
|
+ Respone rep = new Respone();
|
|
|
+ rep.function = "GetAddressRangeByMO";
|
|
|
+ rep.result = false;
|
|
|
+ rep.errorMessage = "The number of params is error";
|
|
|
+ Console.Write(rep.ToString());
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ string sn = args[1];
|
|
|
+ GetAddressRangeByMO(sn);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if (function == "SetAddressInfo")
|
|
|
+ {
|
|
|
+ if (args.Length != 7)
|
|
|
+ {
|
|
|
+ Respone rep = new Respone();
|
|
|
+ rep.function = "SetAddressInfo";
|
|
|
+ rep.result = false;
|
|
|
+ rep.errorMessage = "The number of params is error";
|
|
|
+ Console.Write(rep.ToString());
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ string sn = args[1];
|
|
|
+ string wifi = args[2];
|
|
|
+ string bt = args[3];
|
|
|
+ string code1 = args[4];
|
|
|
+ string code2 = args[5];
|
|
|
+ string code3 = args[6];
|
|
|
+ SetAddressInfo(sn, wifi, bt, code1, code2, code3);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if (function == "GetMEIOrNetCodeRange")
|
|
|
+ {
|
|
|
+ if (args.Length != 4)
|
|
|
+ {
|
|
|
+ Respone rep = new Respone();
|
|
|
+ rep.function = "GetMEIOrNetCodeRange";
|
|
|
+ rep.result = false;
|
|
|
+ rep.errorMessage = "The number of params is error";
|
|
|
+ Console.Write(rep.ToString());
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ string sn = args[1];
|
|
|
+ string imei = args[2];
|
|
|
+ string inetCode = args[3];
|
|
|
+ GetMEIOrNetCodeRange(sn, imei, inetCode);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if (function == "SetIMEIInfo")
|
|
|
+ {
|
|
|
+ if (args.Length != 10)
|
|
|
+ {
|
|
|
+ Respone rep = new Respone();
|
|
|
+ rep.function = "SetIMEIInfo";
|
|
|
+ rep.result = false;
|
|
|
+ rep.errorMessage = "The number of params is error";
|
|
|
+ Console.Write(rep.ToString());
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ string sn = args[1];
|
|
|
+ string imei1 = args[2];
|
|
|
+ string imei2 = args[3];
|
|
|
+ string imei3 = args[4];
|
|
|
+ string meid = args[5];
|
|
|
+ string netcode = args[6];
|
|
|
+ string id1 = args[7];
|
|
|
+ string id2 = args[8];
|
|
|
+ string id3 = args[9];
|
|
|
+ SetIMEIInfo(sn, imei1, imei2, imei3, meid, netcode, id1, id2, id3);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if (function == "GetMobileAllInfo")
|
|
|
+ {
|
|
|
+ if (args.Length != 2)
|
|
|
+ {
|
|
|
+ Respone rep = new Respone();
|
|
|
+ rep.function = "GetMobileAllInfo";
|
|
|
+ rep.result = false;
|
|
|
+ rep.errorMessage = "The number of params is error";
|
|
|
+ Console.Write(rep.ToString());
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ string sn = args[1];
|
|
|
+ GetMobileAllInfo(sn);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if (function == "SetMobileData")
|
|
|
+ {
|
|
|
+ if (args.Length != 7)
|
|
|
+ {
|
|
|
+ Respone rep = new Respone();
|
|
|
+ rep.function = "SetMobileData";
|
|
|
+ rep.result = false;
|
|
|
+ rep.errorMessage = "The number of params is error";
|
|
|
+ Console.Write(rep.ToString());
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ string tsn = args[1];
|
|
|
+ string sn = args[2];
|
|
|
+ string resCode = args[3];
|
|
|
+ string user = args[4];
|
|
|
+ string result = args[5];
|
|
|
+ string errCode = args[6];
|
|
|
+ SetMobileData(tsn, sn, resCode, user, result, errCode);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if (function == "SetPcbaData")
|
|
|
+ {
|
|
|
+ if (args.Length != 6)
|
|
|
+ {
|
|
|
+ Respone rep = new Respone();
|
|
|
+ rep.function = "SetPcbaData";
|
|
|
+ rep.result = false;
|
|
|
+ rep.errorMessage = "The number of params is error";
|
|
|
+ Console.Write(rep.ToString());
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ string sn = args[1];
|
|
|
+ string resCode = args[2];
|
|
|
+ string user = args[3];
|
|
|
+ string result = args[4];
|
|
|
+ string errCode = args[5];
|
|
|
+ SetPcbaData(sn, resCode, user, result, errCode);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if (function == "GoMo")
|
|
|
+ {
|
|
|
+ if (args.Length != 4)
|
|
|
+ {
|
|
|
+ Respone rep = new Respone();
|
|
|
+ rep.function = "GoMo";
|
|
|
+ rep.result = false;
|
|
|
+ rep.errorMessage = "The number of params is error";
|
|
|
+ Console.Write(rep.ToString());
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ string moCode = args[1];
|
|
|
+ string sn = args[2];
|
|
|
+ string resCode = args[3];
|
|
|
+ GoMo(moCode, sn, resCode);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if(function == "GetInfoByMaterial")
|
|
|
+ {
|
|
|
+ if (args.Length != 2)
|
|
|
+ {
|
|
|
+ Respone rep = new Respone();
|
|
|
+ rep.function = "GetInfoByMaterial";
|
|
|
+ rep.result = false;
|
|
|
+ rep.errorMessage = "The number of params is error";
|
|
|
+ Console.Write(rep.ToString());
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ string pcbaSN = args[1];
|
|
|
+ GetInfoByMaterial(pcbaSN);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 登录
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="userName"></param>
|
|
|
+ /// <param name="password"></param>
|
|
|
+ /// <param name="resCode"></param>
|
|
|
+ static void Login(string userName, string password, string resCode)
|
|
|
+ {
|
|
|
+ Respone rep = new Respone();
|
|
|
+ rep.function = "Login";
|
|
|
+ try
|
|
|
+ {
|
|
|
+ string errMessage = null;
|
|
|
+ bool res = m_mesHelper.CheckUserAndResourcePassed(userName, resCode, password, out errMessage);
|
|
|
+ rep.result = res;
|
|
|
+ rep.errorMessage = errMessage;
|
|
|
+ Console.Write(rep.ToString());
|
|
|
+ }
|
|
|
+ catch(Exception ex)
|
|
|
+ {
|
|
|
+ rep.result = false;
|
|
|
+ rep.errorMessage = ex.Message;
|
|
|
+ Console.Write(rep.ToString());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 检查工序, 需先登录
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="sn"></param>
|
|
|
+ /// <param name="resCode"></param>
|
|
|
+ static void CheckRoute(string sn, string resCode)
|
|
|
+ {
|
|
|
+ Respone rep = new Respone();
|
|
|
+ rep.function = "CheckRoute";
|
|
|
+ try
|
|
|
+ {
|
|
|
+ string errMessage = null;
|
|
|
+ bool res = m_mesHelper.CheckRoutePassed(sn, resCode, out errMessage);
|
|
|
+ rep.result = res;
|
|
|
+ rep.errorMessage = errMessage;
|
|
|
+ Console.Write(rep.ToString());
|
|
|
+ }
|
|
|
+ catch(Exception ex)
|
|
|
+ {
|
|
|
+ rep.result = false;
|
|
|
+ rep.errorMessage = ex.Message;
|
|
|
+ Console.Write(rep.ToString());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 根据SN获取工单信息
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="sn"></param>
|
|
|
+ static void GetRcardMOInfo(string sn)
|
|
|
+ {
|
|
|
+ Respone rep = new Respone();
|
|
|
+ rep.function = "GetRcardMOInfo";
|
|
|
+ try
|
|
|
+ {
|
|
|
+ string errMessage = null;
|
|
|
+ string moCode = null;
|
|
|
+ bool res = m_mesHelper.GetRcardMOInfo(sn, out moCode, out errMessage);
|
|
|
+ JObject data = new JObject();
|
|
|
+ data.Add("MoCode", moCode);
|
|
|
+ rep.result = res;
|
|
|
+ rep.errorMessage = errMessage;
|
|
|
+ rep.data = data;
|
|
|
+ Console.Write(rep.ToString());
|
|
|
+ }
|
|
|
+ catch(Exception ex)
|
|
|
+ {
|
|
|
+ rep.result = false;
|
|
|
+ rep.errorMessage = ex.Message;
|
|
|
+ Console.Write(rep.ToString());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 分配MAC地址和BT地址
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="sn"></param>
|
|
|
+ static void GetAddressRangeByMO(string sn)
|
|
|
+ {
|
|
|
+ Respone rep = new Respone();
|
|
|
+ rep.function = "GetAddressRangeByMO";
|
|
|
+ try
|
|
|
+ {
|
|
|
+ string errMessage = null;
|
|
|
+ string info = "";
|
|
|
+ bool res = m_mesHelper.GetAddressRangeByMO(sn, out info, out errMessage);
|
|
|
+ JObject data = JObject.Parse(info);
|
|
|
+ rep.result = res;
|
|
|
+ rep.errorMessage = errMessage;
|
|
|
+ rep.data = data;
|
|
|
+ Console.Write(rep.ToString());
|
|
|
+ }
|
|
|
+ catch(Exception ex)
|
|
|
+ {
|
|
|
+ rep.result = false;
|
|
|
+ rep.errorMessage = ex.Message;
|
|
|
+ Console.Write(rep.ToString());
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 记录MAC和BT地址信息
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="sn"></param>
|
|
|
+ /// <param name="wifi"></param>
|
|
|
+ /// <param name="bt"></param>
|
|
|
+ /// <param name="code1"></param>
|
|
|
+ /// <param name="code2"></param>
|
|
|
+ /// <param name="code3"></param>
|
|
|
+ static void SetAddressInfo(string sn, string wifi, string bt, string code1, string code2, string code3)
|
|
|
+ {
|
|
|
+ Respone rep = new Respone();
|
|
|
+ rep.function = "SetAddressInfo";
|
|
|
+ try
|
|
|
+ {
|
|
|
+ string errMessage = null;
|
|
|
+ bool res = m_mesHelper.SetAddressInfo(sn, wifi, bt, code1, code2, code3, out errMessage);
|
|
|
+ rep.result = res;
|
|
|
+ rep.errorMessage = errMessage;
|
|
|
+ Console.Write(rep.ToString());
|
|
|
+ }
|
|
|
+ catch(Exception ex)
|
|
|
+ {
|
|
|
+ rep.result = false;
|
|
|
+ rep.errorMessage = ex.Message;
|
|
|
+ Console.Write(rep.ToString());
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 分配IMEI地址信息
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="sn"></param>
|
|
|
+ /// <param name="imei"></param>
|
|
|
+ /// <param name="inetCode"></param>
|
|
|
+ static void GetMEIOrNetCodeRange(string sn, string imei, string inetCode)
|
|
|
+ {
|
|
|
+ Respone rep = new Respone();
|
|
|
+ rep.function = "GetMEIOrNetCodeRange";
|
|
|
+ try
|
|
|
+ {
|
|
|
+ string errMessage = null;
|
|
|
+ string info = "";
|
|
|
+ bool res = m_mesHelper.GetMEIOrNetCodeRange(sn, imei, inetCode, out info, out errMessage);
|
|
|
+ JObject data = JObject.Parse(info);
|
|
|
+ rep.result = res;
|
|
|
+ rep.errorMessage = errMessage;
|
|
|
+ rep.data = data;
|
|
|
+ Console.Write(rep.ToString());
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ rep.result = false;
|
|
|
+ rep.errorMessage = ex.Message;
|
|
|
+ Console.Write(rep.ToString());
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 记录IMEI使用信息
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="sn"></param>
|
|
|
+ /// <param name="imei"></param>
|
|
|
+ static void SetIMEIInfo(string sn, string imei1, string imei2, string imei3, string meid, string netcode, string id1, string id2, string id3)
|
|
|
+ {
|
|
|
+ Respone rep = new Respone();
|
|
|
+ rep.function = "SetIMEIInfo";
|
|
|
+ try
|
|
|
+ {
|
|
|
+ string errMessage = null;
|
|
|
+ bool res = m_mesHelper.SetIMEIInfo(sn, imei1, imei2, imei3, meid, netcode, id1, id2, id3, out errMessage);
|
|
|
+ rep.result = res;
|
|
|
+ rep.errorMessage = errMessage;
|
|
|
+ Console.Write(rep.ToString());
|
|
|
+ }
|
|
|
+ catch(Exception ex)
|
|
|
+ {
|
|
|
+ rep.result = false;
|
|
|
+ rep.errorMessage = ex.Message;
|
|
|
+ Console.Write(rep.ToString());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ static void GetMobileAllInfo(string sn)
|
|
|
+ {
|
|
|
+ Respone rep = new Respone();
|
|
|
+ rep.function = "GetMobileAllInfo";
|
|
|
+ try
|
|
|
+ {
|
|
|
+ string errMessage = null;
|
|
|
+ string info = null;
|
|
|
+ bool res = m_mesHelper.GetMobileAllInfo(sn, out info, out errMessage);
|
|
|
+ JObject data = JObject.Parse(info);
|
|
|
+ rep.result = res;
|
|
|
+ rep.errorMessage = errMessage;
|
|
|
+ rep.data = data;
|
|
|
+ Console.Write(rep.ToString());
|
|
|
+ }
|
|
|
+ catch(Exception ex)
|
|
|
+ {
|
|
|
+ rep.result = false;
|
|
|
+ rep.errorMessage = ex.Message;
|
|
|
+ Console.Write(rep.ToString());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 执行转号过站
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="tsn"></param>
|
|
|
+ /// <param name="sn"></param>
|
|
|
+ /// <param name="resCode"></param>
|
|
|
+ /// <param name="uer"></param>
|
|
|
+ /// <param name="result"></param>
|
|
|
+ /// <param name="errCode"></param>
|
|
|
+ static void SetMobileData(string tsn, string sn, string resCode, string user, string result, string errCode)
|
|
|
+ {
|
|
|
+ Respone rep = new Respone();
|
|
|
+ rep.function = "SetMobileData";
|
|
|
+ try
|
|
|
+ {
|
|
|
+ string errMessage = null;
|
|
|
+ bool res = m_mesHelper.SetMobileData(tsn, sn, resCode, user, result, errCode, null, out errMessage);
|
|
|
+ rep.result = res;
|
|
|
+ rep.errorMessage = errMessage;
|
|
|
+ Console.Write(rep.ToString());
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ rep.result = false;
|
|
|
+ rep.errorMessage = ex.Message;
|
|
|
+ Console.Write(rep.ToString());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 执行过站
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="sn"></param>
|
|
|
+ /// <param name="resCode"></param>
|
|
|
+ /// <param name="uer"></param>
|
|
|
+ /// <param name="result"></param>
|
|
|
+ /// <param name="errCode"></param>
|
|
|
+ static void SetPcbaData(string sn, string resCode, string user, string result, string errCode)
|
|
|
+ {
|
|
|
+ Respone rep = new Respone();
|
|
|
+ rep.function = "SetPcbaData";
|
|
|
+ try
|
|
|
+ {
|
|
|
+ string errMessage = null;
|
|
|
+ bool res = m_mesHelper.SetPcbaData(sn, resCode, user, result, errCode, out errMessage);
|
|
|
+ rep.result = res;
|
|
|
+ rep.errorMessage = errMessage;
|
|
|
+ Console.Write(rep.ToString());
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ rep.result = false;
|
|
|
+ rep.errorMessage = ex.Message;
|
|
|
+ Console.Write(rep.ToString());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ static void GoMo(string moCode, string sn, string resCode)
|
|
|
+ {
|
|
|
+ Respone rep = new Respone();
|
|
|
+ rep.function = "GoMo";
|
|
|
+ try
|
|
|
+ {
|
|
|
+ string errMessage = null;
|
|
|
+ bool res = m_mesHelper.GoMo(moCode, sn, resCode, out errMessage);
|
|
|
+ rep.result = res;
|
|
|
+ rep.errorMessage = errMessage;
|
|
|
+ Console.Write(rep.ToString());
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ rep.result = false;
|
|
|
+ rep.errorMessage = ex.Message;
|
|
|
+ Console.Write(rep.ToString());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ static void GetInfoByMaterial(string pcbaSN)
|
|
|
+ {
|
|
|
+ Respone rep = new Respone();
|
|
|
+ rep.function = "GetInfoByMaterial";
|
|
|
+ try
|
|
|
+ {
|
|
|
+ string errMessage = null;
|
|
|
+ string tsn = null;
|
|
|
+ bool res = m_mesHelper.GetInfoByMaterial(pcbaSN, out tsn, out errMessage);
|
|
|
+ JObject data = new JObject();
|
|
|
+ data.Add("TSN", tsn);
|
|
|
+ rep.data = data;
|
|
|
+ rep.result = res;
|
|
|
+ rep.errorMessage = errMessage;
|
|
|
+ Console.Write(rep.ToString());
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ rep.result = false;
|
|
|
+ rep.errorMessage = ex.Message;
|
|
|
+ Console.Write(rep.ToString());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 测试信息记录
|
|
|
+ /// </summary>
|
|
|
+ /// <param name = "sn" ></ param >
|
|
|
+ /// < param name="wifi"></param>
|
|
|
+ /// <param name = "bt" ></ param >
|
|
|
+ /// < param name="code1"></param>
|
|
|
+ /// <param name = "code2" ></ param >
|
|
|
+ /// < param name="code3"></param>
|
|
|
+ //static void SetTestDetail(string sn, string wifi, string bt, string code1, string code2, string code3)
|
|
|
+ //{
|
|
|
+ // string errMessage = null;
|
|
|
+ // Dictionary<string, string> info = new Dictionary<string, string>();
|
|
|
+ // bool res = m_mesHelper.SetAddressInfo(sn, wifi, bt, code1, code2, code3, out errMessage);
|
|
|
+ // Respone rep = new Respone();
|
|
|
+ // rep.function = "SetAddressInfo";
|
|
|
+ // rep.result = res;
|
|
|
+ // rep.errorMessage = errMessage;
|
|
|
+ // Console.Write(rep.ToString());
|
|
|
+ //}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+}
|