Exemplo n.º 1
0
        private void Synchronization(DeviceStatusEntity entity)
        {
            if (Constant.Sysc)
            {
                try
                {
                    //同步设备信息是实际上同步的是门,所以要根据设备ID 查找关联的门
                    var door = _doorService.GetDoorByDevice(entity.DeviceUUID);
                    if (door == null)
                    {
                        return;
                    }

                    var requestXml = GetXml(entity, door);
                    Log.Debug(this.GetType().ToString(), requestXml);

                    var areaS       = new Lkb.DeviceStatusServiceImplService();
                    var responseXml = areaS.insertDeviceStatus(requestXml);
                    Log.Debug(this.GetType().ToString(), responseXml);
                    var resultRes = responseXml.Deserial <ResultResponse>();
                    var syncLog   = new SyncLogEntity();
                    syncLog.SyncType    = SyncLogEnum.InsertDeviceStatus.ToString();
                    syncLog.ResquestXml = requestXml;
                    syncLog.ResponseXml = responseXml;
                    syncLog.SyncTime    = DateTime.Now;
                    syncLog.SyncResult  = 0;
                    syncLog.CommunityId = "";//entity.CommunityUUID;

                    if (resultRes != null && resultRes.Header != null)
                    {
                        var header = resultRes.Header;
                        if (header.RspCode.Equals("0"))
                        {
                            var entity2 = _statusRepository.GetById(entity.DeviceUUID);
                            entity2.SyncVersion += 1;
                            entity2.SyncStatus   = true;
                            _statusRepository.Update(entity2);
                            syncLog.SyncResult = 1;
                        }
                    }
                    _syncService.InsertSyncLog(syncLog);
                }
                catch (Exception ex)
                {
                    Log.Error(null, ex.Message);
                }
            }
        }
Exemplo n.º 2
0
        private string GetXml(DeviceStatusEntity entity, DoorDto door)
        {
            var flag = entity.SyncVersion == 0 ? "C" : "U"; //增|删|改,C|D|U

            if (entity.Deleted)
            {
                flag = "D";
            }

            var xmlBuilder = new StringBuilder("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");

            xmlBuilder.Append("<Tpp2Fpp>");
            xmlBuilder.Append("<ReqHeader>");
            xmlBuilder.AppendFormat("<ReqSeqNo>{0}</ReqSeqNo>", Utils.MakeRndName());
            xmlBuilder.AppendFormat("<ReqSPID>{0}</ReqSPID>", DESHelper.Encrypt3Des(Constant.LkbAccount, Constant.DescKeyBytes));
            xmlBuilder.AppendFormat("<ReqCode>{0}</ReqCode>", DESHelper.Encrypt3Des(Constant.LkbPassword, Constant.DescKeyBytes));
            xmlBuilder.Append("</ReqHeader>");
            xmlBuilder.Append("<ReqBody>");
            xmlBuilder.Append("<deviceStatus>");
            xmlBuilder.AppendFormat("<dev_uuid>{0}</dev_uuid>", entity.DeviceUUID);
            xmlBuilder.AppendFormat("<status>{0}</status>", entity.DeviceStatus);
            xmlBuilder.AppendFormat("<hwversion>{0}</hwversion>", entity.HardwardVersion);
            xmlBuilder.AppendFormat("<sfversion>{0}</sfversion>", entity.SoftwareVersion);
            xmlBuilder.AppendFormat("<imsi>{0}</imsi>", entity.IMSI);
            xmlBuilder.AppendFormat("<msisdn>{0}</msisdn>", entity.MISSDN);
            xmlBuilder.AppendFormat("<battery>{0}</battery>", entity.Battery);
            xmlBuilder.AppendFormat("<temperature>{0}</temperature>", entity.Temperature);
            xmlBuilder.AppendFormat("<signal>{0}</signal>", entity.Signal);
            xmlBuilder.AppendFormat("<udate>{0}</udate>", entity.UpdateTime.ToString("yyyyMMddHHmmss"));
            xmlBuilder.AppendFormat("<cardPopedomCapacity>{0}</cardPopedomCapacity>", entity.CardCapacity);
            xmlBuilder.AppendFormat("<cardPopedomCount>{0}</cardPopedomCount>", entity.CardWhiteListCount);
            xmlBuilder.AppendFormat("<fingerCapacity>{0}</fingerCapacity>", entity.FingerCapacity);
            xmlBuilder.AppendFormat("<fingerCount>{0}</fingerCount>", entity.FingerCount);
            xmlBuilder.AppendFormat("<opened>{0}</opened>", entity.IsOPened);
            xmlBuilder.AppendFormat("<cdate>{0}</cdate>", entity.CreateTime.ToString("yyyyMMddHHmmss"));
            xmlBuilder.AppendFormat("<cuser>{0}</cuser>", Constant.LkbAccount);
            xmlBuilder.AppendFormat("<workmode>{0}</workmode>", entity.WorkMode);
            xmlBuilder.AppendFormat("<powermode>{0}</powermode>", entity.PowerMode);
            xmlBuilder.AppendFormat("<flag>{0}</flag>", flag);
            xmlBuilder.Append("</deviceStatus>");
            xmlBuilder.Append("</ReqBody> ");
            xmlBuilder.Append("</Tpp2Fpp> ");
            return(xmlBuilder.ToString());
        }
Exemplo n.º 3
0
 public static DeviceStatusEntity ToEntity(this DeviceStatusDto model, DeviceStatusEntity destination)
 {
     return(model.MapTo(destination));
 }
Exemplo n.º 4
0
 public static DeviceStatusDto ToModel(this DeviceStatusEntity entity)
 {
     return(entity.MapTo <DeviceStatusEntity, DeviceStatusDto>());
 }