public void AddSyncData(string id, SyncData syncData)
 {
     if (ContainsScreen(id))
     {
         var data = _syncInfoTable[id].SyncDatas.Find(s => s.SyncType == syncData.SyncType);
         if (data == null)
         {
             _syncInfoTable[id].SyncDatas.Add(syncData);
         }
         else
         {
             _logService.Debug(string.Format("<-{0}->:ThreadID={1}", "AddSyncData", System.Threading.Thread.GetDomainID().ToString()));
             UpdateSyncData(id, syncData);
         }
     }
     else
     {
         var syncInformation = new SyncInformation();
         syncInformation.Sn = id;
         syncInformation.SyncDatas = new List<SyncData>() { syncData };
         _syncInfoTable.Add(id, syncInformation);
     }
 }
        private void StartSyncProcess(string id, List<SyncSummaryResponse> list)
        {
            //lock (_syncObj)
            //{
            //    _isSynchronizing = true;
            //}
            _sem.Wait();
            var syncInfoRequest = new SyncInformation();
            syncInfoRequest.Sn = id;
            syncInfoRequest.SyncDatas = new List<SyncData>();
            var syncInfo = _syncInformationManager.GetSyncInformation(id);

            foreach (var item in list)
            {
                var syncData = syncInfo.SyncDatas.FirstOrDefault(d => d.SyncType == item.Type);
                if (syncData == null)
                    continue;

                if (item.IsSync == SyncFlag.CareNotSynchronized)
                {
                    syncInfoRequest.SyncDatas.Add(new SyncData()
                    {
                        SyncType = item.Type,
                        SyncParam = item.IsSync,
                        Datestamp = syncData.Datestamp,
                        SyncContent = syncData.SyncContent
                    });
                }
                else// if(item.IsSync == SyncFlag.TerminalNotSynchronized)
                {
                    syncInfoRequest.SyncDatas.Add(new SyncData()
                    {
                        SyncType = item.Type,
                        SyncParam = item.IsSync,
                        Datestamp = syncData.Datestamp,
                        SyncContent = string.Empty
                    });
                }
                //else
                //{
                //    continue;
                //}
            }

            RestFulClient.Instance.Post("api/SyncInfo/index", syncInfoRequest, response =>
            {
                SyncInfoResponse(response);
            });
        }