private static AgentCategoryDictionary DeriveAgentsPerMinute(int globalMaxAgentNumber,
                                                                 float globalNewAgentsPerMinute,
                                                                 MaxNumberOfAgents maxAgentsPerCategory)
    {
        var newValues = new AgentCategoryDictionary();

        foreach (var kvp in maxAgentsPerCategory)
        {
            var newValue = 1f * maxAgentsPerCategory[kvp.Key] / globalMaxAgentNumber * globalNewAgentsPerMinute;
            newValues[kvp.Key] = newValue;
        }

        return(newValues);
    }
 private void DeriveDataFromEntryZones()
 {
     _agentCategories              = new List <AgentCategory>();
     _newAgentsPerSecond           = new AgentCategoryDictionary();
     _maxNumberOfAgentsPerCategory = new MaxNumberOfAgents();
     foreach (var entryZone in _entryZones)
     {
         var category = entryZone.GetAgentCategory();
         if (!_newAgentsPerSecond.ContainsKey(category))
         {
             _agentCategories.Add(category);
             _newAgentsPerSecond.Add(category, 0f);
             _maxNumberOfAgentsPerCategory.Add(category, 100);
         }
     }
 }