示例#1
0
        /// <summary> 车厂数据处理
        /// </summary>
        /// <param name="protocol"></param>
        public static void Deal(FactoryProtocol protocol)
        {
            bool      result = false;
            DataTable dt     = JsonHelper.JsonToDataTable(BaseCodeHelper.DeCode(protocol.Json));

            if (dt != null && dt.Rows.Count > 0)
            {
                ServiceStationDataModel ssdm = new ServiceStationDataModel(dt.Rows[0]);
                //先保存至数据库
                SaveData(ssdm);

                //处理车厂数据
                result = DealFactoryData(ssdm);
            }
            //返回成功/失败信息
            ResultProtocol rp = new ResultProtocol();

            rp.StationId        = protocol.StationId;
            rp.SerialNumber     = protocol.SerialNumber;
            rp.SubMessageId     = protocol.SubMessageId;
            rp.TimeSpan         = protocol.TimeSpan;
            rp.SerialNumberLock = true;
            if (result)
            {
                rp.Result = DataSources.EnumResultType.Success.ToString("d");
            }
            else
            {
                rp.Result = DataSources.EnumResultType.Fail.ToString("d");
            }
            ServiceAgent.AddSendQueue(rp);
        }
示例#2
0
        /// <summary> 登录测试
        /// </summary>
        /// <param name="stationId"></param>
        /// <param name="userId"></param>
        /// <param name="pwd"></param>
        /// <param name="code"></param>
        /// <returns></returns>
        public static string LoginTest(string stationId, string userId, string pwd, string code)
        {
            LoginProtocol protocol = GetLoginProtocol();

            protocol.StationId      = stationId;
            protocol.UserId         = userId;
            protocol.Password       = pwd;
            protocol.PermissionCode = code;

            MessageProtocol mp = ServiceAgent.SendAndReceiveMessage(protocol);

            if (mp != null && mp.GetRealProtocol() is ResultProtocol)
            {
                ResultProtocol result = mp.GetRealProtocol() as ResultProtocol;
                if (result.Result == DataSources.EnumResultType.Success.ToString("d"))
                {
                    return(string.Empty);
                }
                else
                {
                    string msg = "登录消息(数据端口):" + DataSources.GetDescription(typeof(DataSources.EnumResultType), result.Result);
                    //写入日志
                    Log.writeCloudLog(msg);
                    return(DataSources.GetDescription(typeof(DataSources.EnumResultType), result.Result));
                }
            }
            return("返回协议格式不正确");
        }
示例#3
0
        /// <summary> 处理收到的控制信息
        /// </summary>
        /// <param name="state"></param>
        private static void SaveData(object state)
        {
            if (state is ControlProtocol)
            {
                ControlProtocol protocol = state as ControlProtocol;
                bool            result   = false;
                //保存至数据库,并返回成功/失败信息
                Dictionary <string, string> dicFileds = new Dictionary <string, string>();
                if (protocol.SubMessageId == SubMessageId3)
                {
                    result = DBHelper.Submit_AddOrEdit("更新有效期信息", "HXC_000", "tb_signing_info", "sign_id", GlobalStaticObj_Server.Instance.StationID, new Dictionary <string, string> {
                        { "protocol_expires_time", protocol.Date }
                    });
                }
                else
                {
                    if (protocol.ControlType.Equals(DataSources.EnumControlType.UnAvailble.ToString("d")))
                    {
                        dicFileds.Add("status", DataSources.EnumStatus.Stop.ToString("d"));
                    }
                    else if (protocol.ControlType.Equals(DataSources.EnumControlType.Availble.ToString("d")))
                    {
                        dicFileds.Add("status", DataSources.EnumStatus.Start.ToString("d"));
                    }

                    if (dicFileds.Count > 0)
                    {
                        //协议里包含帐套信息
                        result = DBHelper.Submit_AddOrEdit("修改用户信息", GlobalStaticObj_Server.Instance.CurrAccDbName, "sys_user", "user_id", "", dicFileds);
                    }
                }
                ResultProtocol rp = new ResultProtocol();
                rp.StationId        = protocol.StationId;
                rp.SerialNumber     = protocol.SerialNumber;
                rp.MessageId        = protocol.MessageId;
                rp.SubMessageId     = protocol.SubMessageId;
                rp.TimeSpan         = protocol.TimeSpan;
                rp.SerialNumberLock = true;
                if (result)
                {
                    rp.Result = DataSources.EnumResultType.Success.ToString("d");
                }
                else
                {
                    rp.Result = DataSources.EnumResultType.Fail.ToString("d");
                }
                ServiceAgent.AddSendQueue(rp);
            }
        }
示例#4
0
        /// <summary>
        /// 附件登录
        /// </summary>
        /// <returns></returns>
        public static bool FileLogin()
        {
            LoginProtocol   protocol = GetLoginProtocol();
            MessageProtocol mp       = FileAgent.SendAndReceiveMessage(protocol);

            if (mp != null && mp.GetRealProtocol() is ResultProtocol)
            {
                ResultProtocol result = mp.GetRealProtocol() as ResultProtocol;
                if (result.Result == DataSources.EnumResultType.Success.ToString("d"))
                {
                    Log.writeCloudLog("云平台文件通讯-登录成功!");
                    return(true);
                }
                else
                {
                    string msg = "登录消息(附件端口):" + DataSources.GetDescription(typeof(DataSources.EnumResultType), result.Result);
                    //写入日志
                    Log.writeLog(msg);
                }
            }
            return(false);
        }
示例#5
0
 /// <summary> 接收保存数据
 /// </summary>
 /// <param name="state"></param>
 /// <returns></returns>
 private static void SaveData(object state)
 {
     if (state is AnnounceProtocol)
     {
         AnnounceProtocol protocol = state as AnnounceProtocol;
         DataTable        dt       = JsonHelper.JsonToDataTable(protocol.Json, TableName, true);
         if (dt == null || dt.Rows.Count == 0)
         {
             return;
         }
         bool   result = false;
         string id     = "announcement_id";
         Dictionary <string, string> dicFileds = new Dictionary <string, string>();
         foreach (DataColumn dc in dt.Columns)
         {
             if (dc.ColumnName != id)
             {
                 dicFileds.Add(dc.ColumnName, dt.Rows[0][dc.ColumnName].ToString());
             }
         }
         if (protocol.Operation.Equals(DataSources.EnumOperationType.Add.ToString("d")))
         {
             if (dt.Columns.Contains(id))
             {
                 dicFileds.Add(id, dt.Rows[0][id].ToString());
             }
             foreach (string db in AutoTask.GetDatabaseList())
             {
                 //添加数据
                 result = DBHelper.Submit_AddOrEdit("添加云平台公告信息", db, dt.TableName, "", "", dicFileds);
             }
         }
         else if (protocol.Operation.Equals(DataSources.EnumOperationType.Update.ToString("d")))
         {
             if (dt.Columns.Contains(id))
             {
                 foreach (string db in AutoTask.GetDatabaseList())
                 {
                     //修改数据
                     result = DBHelper.Submit_AddOrEdit("修改云平台公告信息", db, dt.TableName, id, dt.Rows[0][id].ToString(), dicFileds);
                 }
             }
         }
         ResultProtocol rp = new ResultProtocol();
         rp.StationId        = protocol.StationId;
         rp.SerialNumber     = protocol.SerialNumber;
         rp.MessageId        = protocol.MessageId;
         rp.SubMessageId     = protocol.SubMessageId;
         rp.TimeSpan         = protocol.TimeSpan;
         rp.SerialNumberLock = true;
         if (result)
         {
             rp.Result = DataSources.EnumResultType.Success.ToString("d");
         }
         else
         {
             rp.Result = DataSources.EnumResultType.Fail.ToString("d");
         }
         ServiceAgent.AddSendQueue(rp);
     }
 }