BufferDataManager.cs 3.5 KB
using OnlineStore.Common;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace OnlineStore.DeviceLibrary
{
    public class BufferDataManager
    {
        private static InOutPosInfo aInStoreInfo=null;
        private static InOutPosInfo aOutStoreInfo = null;
        private static InOutPosInfo bInStoreInfo = null;
        private static InOutPosInfo bOutStoreInfo = null;
        /// <summary>
        /// A进料上暂存区料盘信息,null时无料
        /// </summary>
        public static InOutPosInfo AInStoreInfo
        {
            get { return aInStoreInfo; }
            set
            {
                aInStoreInfo = value;
                SaveData(Setting_Init.AInStoreInfo, value);
            }
        }  
        /// <summary>
        /// A出料下暂存区料盘信息,null时无料
        /// </summary>
        public static InOutPosInfo AOutStoreInfo
        {
            get { return aOutStoreInfo; }
            set
            {
                aOutStoreInfo = value;
                SaveData(Setting_Init.AOutStoreInfo, value);
            }
        }

        /// <summary>
        /// B进料上暂存区料盘信息,null时无料
        /// </summary>
        public static InOutPosInfo BInStoreInfo
        {
            get { return bInStoreInfo; }
            set
            {
                bInStoreInfo = value;
                SaveData(Setting_Init.BInStoreInfo, value);
            }
        }
        /// <summary>
        /// B出料下暂存区料盘信息,null时无料
        /// </summary>
        public static InOutPosInfo BOutStoreInfo
        {
            get { return bOutStoreInfo; }
            set
            {
                bOutStoreInfo = value; 
                SaveData(Setting_Init.BOutStoreInfo, value);
            }
        }


        public static  void InitData()
        {
            AInStoreInfo = LoadInoutPosInfo(Setting_Init.AInStoreInfo);
            AOutStoreInfo = LoadInoutPosInfo(Setting_Init.AOutStoreInfo);
            BInStoreInfo = LoadInoutPosInfo(Setting_Init.BInStoreInfo);
            BOutStoreInfo = LoadInoutPosInfo(Setting_Init.BOutStoreInfo);
        }
        private static InOutPosInfo LoadInoutPosInfo(string configStr)
        {
            string saveData = ConfigAppSettings.GetValue(configStr);
            if (!String.IsNullOrEmpty(saveData))
            {
                InOutPosInfo ainPos = JsonHelper.DeserializeJsonToObject<InOutPosInfo>(saveData);
                if (ainPos != null && (!ainPos.barcode.Equals("")) && (!ainPos.PosId.Equals("")))
                { 
                    return ainPos;
                }
            }
            return null;
        }
        public  static T LoadData<T>(string configStr)where T:class
        {
            string saveData = ConfigAppSettings.GetValue(configStr);
            if (!String.IsNullOrEmpty(saveData))
            {
                T data = JsonHelper.DeserializeJsonToObject<T>(saveData);
                return data;
            }
            return null;
        }

        public static void SaveData<T>(string configStr, T value) where T : class
        {
            string jsonData = "";
            if (!(value == null))
            {
                jsonData = JsonHelper.SerializeObject(value);
            }
            ConfigAppSettings.SaveValue(configStr, jsonData);
            LogUtil.info($"保存配置:[{ configStr}]=[{jsonData }]");
        }
       
    }
}