ServerConn.cs 3.9 KB
using OnlineStore.Common;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DeviceLibrary
{
    public class ServerConn
    {
        const string host = "http://10.69.221.80";
        public static CountResult inputCounterDataByXRayMachine(string TwoDBarcode, int qty)
        {
            //string url = host + "/api/inputCounterDataByXRayMachine";
            string url = host + "/SCTAEXTERNAL001/api/inputCounterDataByXRayMachine";
            var wc = new MyWebClient(15000);
            if (string.IsNullOrEmpty(wc.Headers["Content-Type"]))
                wc.Headers.Add("Content-Type", "application/json;charset=UTF-8");
            wc.Encoding = Encoding.UTF8;

            var data = new Wiston_Request();
            data.userId = "Q14050052";
            data.language = 1;
            data.requestTime = 0;
            data.data.Add("TwoDBarcode", TwoDBarcode);
            data.data.Add("Qty", qty);
            data.data.Add("Counter", ConfigHelper.Config.Get("upload_Counter"));

            string json = JsonHelper.SerializeObject(data);
            string result = "";
            int retry = 0;
        retry:
            try
            {
                result = wc.UploadString(url, "POST", json);
                return JsonHelper.DeserializeJsonToObject<CountResult>(result);
            }
            catch (Exception e)
            {
                LogUtil.info($"inputCounterDataByXRayMachine retry:{retry}, {e.ToString()}");

                retry++;
                if (retry < 3)
                    goto retry;
                return null;
            }
            finally
            {
                LogUtil.info($"inputCounterDataByXRayMachine request:{json} response:{result}");
            }
        }

        public static ReelLocation DetermineReelStorageLocation(string TwoDBarcode)
        {
            //string url = host + "/api/RLC/DetermineReelStorageLocation";
            string url = host + "/SCTARLC001/api/RLC/DetermineReelStorageLocation";
            var wc = new MyWebClient(15000);
            if (string.IsNullOrEmpty(wc.Headers["Content-Type"]))
                wc.Headers.Add("Content-Type", "application/json;charset=UTF-8");
            wc.Encoding = Encoding.UTF8;

            var data = new Wiston_Request();
            data.userId = "Q14050052";
            data.language = 1;
            data.requestTime = 0;
            data.data.Add("str2DBarcode", TwoDBarcode);
            data.data.Add("labelPrinter", ConfigHelper.Config.Get("upload_labelPrinter"));

            
            string json = JsonHelper.SerializeObject(data);
            string result = "";
            int retry = 0;
        retry:
            try
            {
                result = wc.UploadString(url, "POST", json);
                return JsonHelper.DeserializeJsonToObject<ReelLocation>(result);
            }
            catch (Exception e)
            {
                LogUtil.info($"DetermineReelStorageLocation retry:{retry}, {e.ToString()}");

                retry++;
                if (retry < 3)
                    goto retry;
                return null;
            }
            finally
            {
                LogUtil.info($"DetermineReelStorageLocation request:{json} response:{result}");
            }
        }
    }

    class Wiston_Request
    {
        public string userId = "";
        public int language = 0;
        public int requestTime = 0;
        public Dictionary<string, object> data = new Dictionary<string, object>();
    }
    public class CountResult
    {
        public bool result;
        public string message;
        public string type;
        public long responseTime;
        public object data;
    }
    public class ReelLocation {
        public string isVacuum;
        public string isTower;
        public string isVTTower;
        public string message;
    }
}