Ejemplo n.º 1
0
 public void EnqueueMessage(ListenerMessage message)
 {
     _listenerMessages.Enqueue(message);
     _listenerResetEvent.Set();
 }
Ejemplo n.º 2
0
        private void ListenerWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            ListenerMessage message = (ListenerMessage)e.UserState;

            switch (message.MessageType)
            {
            case Models.Type.Records:
            {
                RecordFile rf = RecordFiles.FirstOrDefault(f => f.FileName == message.RecFile.FileName);
                if (rf == null)
                {
                    RecordFiles.Add(message.RecFile);
                }
                else if (rf.Size != message.RecFile.Size)
                {
                    rf.Size = message.RecFile.Size;
                }
            }
            break;

            case Models.Type.CALL:
            {
                Call     call = CallFiles.FirstOrDefault(f => f.FileName == message.CallFile.FileName);
                Computer cpu  = computers.FirstOrDefault(c => c.Name == message.CallFile.UnitName);

                if (call == null)
                {
                    if (DownloadFile(cpu, message.CallFile.FileName, Models.Type.CALL))
                    {
                        CallFiles.Add(message.CallFile);
                    }
                }
                else if (call.Size != message.CallFile.Size)
                {
                    call.Size = message.CallFile.Size;
                    if (DownloadFile(cpu, message.CallFile.FileName, Models.Type.CALL))
                    {
                        CallFiles.Add(message.CallFile);
                    }
                }
                else if (DFAL)
                {
                    Service.DeleteFile(cpu, message.CallFile.FileName, Models.Type.CALL);
                }
            }

            break;

            case Models.Type.SMS:
            {
                SMS      sms = SmsFiles.FirstOrDefault(f => f.FileName == message.SmsFile.FileName);
                Computer cpu = computers.FirstOrDefault(c => c.Name == message.SmsFile.UnitName);

                if (sms == null && DownloadFile(cpu, message.SmsFile.FileName, Models.Type.SMS) && SplitSmsData(message.SmsFile) && DFAL)
                {
                    Service.DeleteFile(cpu, message.SmsFile.FileName, Models.Type.SMS);
                }
            }
            break;

            case Models.Type.Delete:
            {
                RecordFile rf = RecordFiles.FirstOrDefault(f => f.FileName == message.RecFile.FileName);
                if (rf != null)
                {
                    RecordFiles.Remove(rf);
                }
            }
            break;

            case Models.Type.Recorder:
            {
                StopRecVisibility = Visibility.Collapsed;
            }
            break;

            case Models.Type.Interceptor:
            {
                StopInterceptorVisibility = Visibility.Collapsed;
            }
            break;

            default:
                break;
            }
        }