private async void MainViewModel_AgentsChanged(object sender, EventArgs e)
        {
            var response = await client.GetAsync($"{serverUrl}api/Agent");

            if (!response.IsSuccessStatusCode)
            {
                MessageBox.Show(response.StatusCode.ToString());
                return;
            }

            string responseBody = await response.Content.ReadAsStringAsync();


            foreach (var item in JsonConvert.DeserializeObject <AgentsList>(responseBody).Agents)
            {
                Agents.Add(new Agent()
                {
                    Id           = item.Id,
                    Endpoint     = item.Endpoint,
                    OsType       = item.OsType,
                    AgentVersion = item.AgentVersion,
                    IsEnabled    = item.IsEnabled
                });
            }
            if (Agents.Any())
            {
                SelectedAgent = Agents.First();
            }
        }
Example #2
0
        private void ExecuteImprimer()
        {
            if (Agents.Any(ag => ag.IsSelected) && _SelectedSemaine != null)
            {
                _dataService.Jour = SelectedSemaine.Debut;

                //ApercuBordereauDeclaratifViewModel bordereauDeclaratifVM = SimpleIoc.Default.GetInstance<ApercuBordereauDeclaratifViewModel>();

                ApercuBordereauDeclaratifViewModel bordereauDeclaratifVM = new ApercuBordereauDeclaratifViewModel(_dataService, _dialogService);

                List <string> listeMatricules = new List <string>();

                foreach (var item in Agents.Where(ag => ag.IsSelected))
                {
                    listeMatricules.Add(item.Matricule);
                }

                bordereauDeclaratifVM.entete       = _Entete;
                bordereauDeclaratifVM.Agents       = listeMatricules;
                bordereauDeclaratifVM.previsionnel = OuiNon;
                bordereauDeclaratifVM.Mois         = DatesDebutFin.Debut;

                _dialogService.ShowDialog <ApercuBordereauDeclaratif>(this, bordereauDeclaratifVM);
            }
            else
            {
                EnableImprimer = false;
            }
        }
Example #3
0
        private async void GetAgentData()
        {
            var agentData = await AgentAPI.GetAgentData();

            if (agentData != null)
            {
                foreach (var agent in agentData)
                {
                    if (!Agents.Any(a => a.AgentId.Equals(agent.Metadata.AgentID, StringComparison.OrdinalIgnoreCase)))
                    {
                        Agents.Add(new Agent
                        {
                            AgentId      = agent.Metadata.AgentID,
                            Hostname     = agent.Metadata.Hostname,
                            IpAddress    = agent.Metadata.IPAddress,
                            Identity     = agent.Metadata.Identity,
                            ProcessName  = agent.Metadata.ProcessName,
                            ProcessId    = agent.Metadata.ProcessID,
                            Arch         = agent.Metadata.Arch.ToString(),
                            CLR          = agent.Metadata.CLR,
                            Integrity    = agent.Metadata.Integrity.ToString(),
                            AgentModules = agent.LoadModules,
                            LastSeen     = Helpers.CalculateTimeDiff(agent.LastSeen)
                        });
                    }
                    else
                    {
                        Agents.FirstOrDefault(a => a.AgentId.Equals(agent.Metadata.AgentID, StringComparison.OrdinalIgnoreCase))
                        .Hostname = agent.Metadata.Hostname;

                        Agents.FirstOrDefault(a => a.AgentId.Equals(agent.Metadata.AgentID, StringComparison.OrdinalIgnoreCase))
                        .IpAddress = agent.Metadata.IPAddress;

                        Agents.FirstOrDefault(a => a.AgentId.Equals(agent.Metadata.AgentID, StringComparison.OrdinalIgnoreCase))
                        .Identity = agent.Metadata.Identity;

                        Agents.FirstOrDefault(a => a.AgentId.Equals(agent.Metadata.AgentID, StringComparison.OrdinalIgnoreCase))
                        .ProcessName = agent.Metadata.ProcessName;

                        Agents.FirstOrDefault(a => a.AgentId.Equals(agent.Metadata.AgentID, StringComparison.OrdinalIgnoreCase))
                        .ProcessId = agent.Metadata.ProcessID;

                        Agents.FirstOrDefault(a => a.AgentId.Equals(agent.Metadata.AgentID, StringComparison.OrdinalIgnoreCase))
                        .Arch = agent.Metadata.Arch.ToString();

                        Agents.FirstOrDefault(a => a.AgentId.Equals(agent.Metadata.AgentID, StringComparison.OrdinalIgnoreCase))
                        .CLR = agent.Metadata.CLR;

                        Agents.FirstOrDefault(a => a.AgentId.Equals(agent.Metadata.AgentID, StringComparison.OrdinalIgnoreCase))
                        .Integrity = agent.Metadata.Integrity.ToString();

                        Agents.FirstOrDefault(a => a.AgentId.Equals(agent.Metadata.AgentID, StringComparison.OrdinalIgnoreCase))
                        .AgentModules = agent.LoadModules;

                        Agents.FirstOrDefault(a => a.AgentId.Equals(agent.Metadata.AgentID, StringComparison.OrdinalIgnoreCase))
                        .LastSeen = Helpers.CalculateTimeDiff(agent.LastSeen);
                    }
                }
            }
        }
Example #4
0
        protected override void InternalStart(IList <CustomerEntry> jobsTodo)
        {
            if (apiExtension == null)
            {
                var extId = _settingsRepository.GetSettings().ExtensionId;
                if (string.IsNullOrEmpty(extId) || (apiExtension = _client.GetAPIExtension(extId)) == null)
                {
                    Messenger.Default.Send(new NotificationMessage(AgentDialerViewModel.ShowApiExtensionWarning));
                    Running = false;
                    CurrentConcurrentWorkers = 0;
                    return;
                }
            }

            if (!Agents.Any())
            {
                Messenger.Default.Send(new NotificationMessage(AgentDialerViewModel.ShowNoAgentsSelectedError));
                Running = false;
                CurrentConcurrentWorkers = 0;
                return;
            }

            foreach (var customer in Customers)
            {
                if (!RetryStates.Any(s => s.ProgressState == customer.State.ProgressState) || CurrentConcurrentWorkers >= MaxConcurrentWorkers)
                {
                    continue;
                }

                while (!Agents.Any(a => a.State == AgentState.Free))
                {
                    _eventLock.WaitOne();
                }

                var call = apiExtension.CreateCall(customer.PhoneNumber);

                if (call == null)
                {
                    continue;
                }

                customer.CallId         = call.CallId;
                customer.State          = new CustomerState(ProgressState.Calling, null);
                call.CallStateChanged  += ApiCallStateChanged;
                call.CallErrorOccurred += (sender, args) => CallEnded(null, Customers.First(c => c.CallId == customer.CallId), args.Item == CallError.NotFound ? ProgressState.NotFound : ProgressState.Error);
                _startedCalls.TryAdd(call);
                call.Start();

                Interlocked.Increment(ref CurrentConcurrentWorkers);

                while (CurrentConcurrentWorkers >= MaxConcurrentWorkers)
                {
                    _eventLock.WaitOne();
                }
            }

            Running = false;
            OnWorksCompleted(CompletedWorks);
        }
Example #5
0
        public Tuple <Agent, bool> GetAgent(List <Guid> contactResponsibles)
        {
            var result = Agents.FirstOrDefault(r => r.Status == AgentStatus.Online && contactResponsibles.Contains(r.Id)) ??
                         Agents.FirstOrDefault(r => r.Status == AgentStatus.Online);
            var isAnyNotOffline = Agents.Any();

            if (result != null)
            {
                result.Status = AgentStatus.Paused;
            }

            return(new Tuple <Agent, bool>(result, isAnyNotOffline));
        }
 private bool CanAssignment()
 {
     return(Agents.Any() && Operations.Any());
 }
Example #7
0
        internal IEnumerable <ValidationResult> Validate()
        {
            var agentValidationResults = new List <ValidationResult>(6);

            if (Agents?.Any() == true)
            {
                if (Agents.Contains(AgentType.BankPayingAgent) ||
                    Agents.Contains(AgentType.BankPayingSubagent) ||
                    Agents.Contains(AgentType.PayingAgent) ||
                    Agents.Contains(AgentType.PayingSubagent))
                {
                    if (PayingAgent == null)
                    {
                        agentValidationResults.Add(new ValidationResult(string.Format(
                                                                            ErrorStrings.ResourceManager.GetString("RequiredError"),
                                                                            this.GetType().GetProperty(nameof(PayingAgent)).GetDisplayName())));
                    }
                }
                else
                {
                    if (PayingAgent != null)
                    {
                        agentValidationResults.Add(new ValidationResult(string.Format(
                                                                            ErrorStrings.ResourceManager.GetString("MustBeNullError"),
                                                                            this.GetType().GetProperty(nameof(PayingAgent)).GetDisplayName())));
                    }
                }

                if (Agents.Contains(AgentType.BankPayingAgent) ||
                    Agents.Contains(AgentType.BankPayingSubagent))
                {
                    if (MoneyTransferOperator == null)
                    {
                        agentValidationResults.Add(new ValidationResult(string.Format(
                                                                            ErrorStrings.ResourceManager.GetString("RequiredError"),
                                                                            this.GetType().GetProperty(nameof(MoneyTransferOperator)).GetDisplayName())));
                    }
                }
                else
                {
                    if (MoneyTransferOperator != null)
                    {
                        agentValidationResults.Add(new ValidationResult(string.Format(
                                                                            ErrorStrings.ResourceManager.GetString("MustBeNullError"),
                                                                            this.GetType().GetProperty(nameof(MoneyTransferOperator)).GetDisplayName())));
                    }
                }

                if (Agents.Contains(AgentType.PayingAgent) ||
                    Agents.Contains(AgentType.PayingSubagent))
                {
                    if (ReceivePaymentsOperator == null)
                    {
                        agentValidationResults.Add(new ValidationResult(string.Format(
                                                                            ErrorStrings.ResourceManager.GetString("RequiredError"),
                                                                            this.GetType().GetProperty(nameof(ReceivePaymentsOperator)).GetDisplayName())));
                    }
                }
                else
                {
                    if (ReceivePaymentsOperator != null)
                    {
                        agentValidationResults.Add(new ValidationResult(string.Format(
                                                                            ErrorStrings.ResourceManager.GetString("MustBeNullError"),
                                                                            this.GetType().GetProperty(nameof(ReceivePaymentsOperator)).GetDisplayName())));
                    }
                }
            }

            return(agentValidationResults);
        }