Example #1
0
 public void InsertSyncLog(SyncLogEntity entity)
 {
     if (entity.SyncId.IsBlank())
     {
         entity.SyncId = Guid.NewGuid().ToString("N");
     }
     _syncRepository.Insert(entity);
 }
Example #2
0
        public virtual void SynchronizationCard(string cardId)
        {
            if (Constant.Sysc)
            {
                try
                {
                    var entity = _cardRepository.GetById(cardId);


                    var person = GetPersonByCardId(cardId);
                    if (entity == null || person == null)
                    {
                        return;
                    }

                    var requestXml = GetCardXml(entity, person);
                    Log.Debug(this.GetType().ToString(), requestXml);

                    if (requestXml.IsBlank())
                    {
                        return;
                    }


                    var areaS       = new Lkb.CrkServiceImplService();
                    var responseXml = areaS.insertCrk(requestXml);
                    Log.Debug(this.GetType().ToString(), responseXml);
                    var resultRes = responseXml.Deserial <ResultResponse>();

                    var syncLog = new SyncLogEntity();
                    syncLog.SyncType    = SyncLogEnum.InsertCrk.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"))
                        {
                            entity.SyncVersion += 1;
                            entity.SyncStatus   = true;
                            _cardRepository.Update(entity);

                            syncLog.SyncResult = 1;
                        }
                    }

                    _syncLogService.InsertSyncLog(syncLog);
                }
                catch (Exception ex)
                {
                    Log.Error(null, ex.Message);
                }
            }
        }
Example #3
0
        private void Synchronization(PersonEntity entity)
        {
            if (Constant.Sysc)
            {
                try
                {
                    var requestXml = GetXml(entity);

                    if (requestXml == null)
                    {
                        return;
                    }

                    Log.Debug(this.GetType().ToString(), requestXml);

                    var areaS       = new Lkb.PersonServiceImplService();
                    var responseXml = areaS.insertPerson(requestXml);

                    Log.Debug(this.GetType().ToString(), responseXml);

                    var syncLog = new SyncLogEntity();
                    syncLog.SyncType    = SyncLogEnum.InsertPerson.ToString();
                    syncLog.ResquestXml = requestXml;
                    syncLog.ResponseXml = responseXml;
                    syncLog.SyncTime    = DateTime.Now;
                    syncLog.SyncResult  = 0;
                    syncLog.CommunityId = entity.CommunityUUID;

                    var resultRes = responseXml.Deserial <ResultResponse>();
                    if (resultRes != null && resultRes.Header != null)
                    {
                        var header = resultRes.Header;
                        if (header.RspCode.Equals("0"))
                        {
                            var entity2 = _personRepository.GetById(entity.PersonUUID);
                            entity2.SyncVersion += 1;
                            entity2.SyncStatus   = true;
                            _personRepository.Update(entity2);

                            syncLog.SyncResult = 1;
                        }
                    }

                    _syncService.InsertSyncLog(syncLog);
                }
                catch (Exception ex)
                {
                    Log.Error(null, ex.Message);
                }
            }
        }
Example #4
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);
                }
            }
        }
Example #5
0
        private void Synchronization(DeviceAlarmEntity entity)
        {
            if (Constant.Sysc)
            {
                try
                {
                    //同步报警信息的时候需要根据设备ID找到对应的门,这里实际上是门作为设备来处理的
                    var door       = _doorService.GetById(entity.DeviceUUID);
                    var requestXml = GetXml(entity, door);
                    Log.Debug(this.GetType().ToString(), requestXml);

                    var areaS       = new Lkb.DeviceAlarmServiceImplService();
                    var responseXml = areaS.insertDeviceAlarm(requestXml);

                    Log.Debug(this.GetType().ToString(), responseXml);
                    var resultRes = responseXml.Deserial <ResultResponse>();

                    var syncLog = new SyncLogEntity();
                    syncLog.SyncType    = SyncLogEnum.InsertDeviceAlarm.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 = _alarmRepository.GetById(entity.AlarmUUID);
                            entity2.SyncVersion += 1;
                            entity2.SyncStatus   = true;
                            _alarmRepository.Update(entity2);
                            syncLog.SyncResult = 1;
                        }
                    }
                    _syncService.InsertSyncLog(syncLog);
                }
                catch (Exception ex)
                {
                    Log.Error(null, ex.Message);
                }
            }
        }
Example #6
0
        public WCF.API.SyncRespose SyncLog(WCF.API.SyncRequest sRequest)
        {
            //返回参数
            SyncRespose response = new SyncRespose();

            response.ResultCode = 0;
            SyncLogDAO dao = new SyncLogDAO(new BasicUserInfo());

            try
            {
                string url = ConfigurationManager.AppSettings["ALDMemberService"];
                if (string.IsNullOrEmpty(url))
                {
                    throw new Exception("未配置ALD接口URL:ALDMemberService");
                }

                string json = "action=CollectionItem&ReqContent={\"Parameters\":{\"ItemID\":\""
                              + sRequest.SourceItemID + "\",\"MemberID\":\"" +
                              sRequest.MemberID + "\",\"CustomerID\":\"" +
                              sRequest.ClientID + "\",\"CollectionType\":\"" +
                              sRequest.SourceType + "\"},\"AreaID\":0,\"UserID\":\"\",\"Token\":\"\",\"Locale\":1}";

                var     rtnJson = SendHttpRequest(url, json);
                JObject jObject = (JObject)JsonConvert.DeserializeObject(rtnJson);//序列化

                //同步日志对象
                SyncLogEntity entity = new SyncLogEntity
                {
                    LogID        = Guid.NewGuid(),
                    SourceItemID = sRequest.SourceItemID,
                    ClientID     = sRequest.ClientID,
                    MemberID     = sRequest.MemberID
                };
                if (int.Parse(jObject["ResultCode"].ToString()) == 200)
                {
                    response.ResultCode = 200;
                    entity.IsNotSync    = 0; //同步成功
                }
                else
                {
                    response.ResultCode = 100;
                    entity.IsNotSync    = 1;//同步失败
                }
                //sourceType:1:收藏;2:取消收藏
                if (sRequest.SourceType == 1)
                {
                    entity.SourceType = 1;
                }
                else
                {
                    entity.SourceType = 2;
                }

                //调用创建同步日志
                dao.Create(entity);
            }
            catch (Exception ex)
            {
                response.ResultCode = 100;
                response.Message    = ex.Message;
                Loggers.Exception(new ExceptionLogInfo(ex));
            }

            return(response);
        }