public ServiceQueueStatistic(ServiceQueue serviceQueue, IDictionary <DateTime, int> dateIndexer)
        {
            _dateIndexer = dateIndexer;
            AbadonRate   = serviceQueue.AbandonRate / 100.0;

            (_dateIndexer.Count * 96).Self(c =>
            {
                Capacity             = c;
                _ahts                = new double[c];
                _cvs                 = new double[c];
                _weightedSL          = new double[c];
                AssignedStaffing     = new double[c];
                AssignedServiceLevel = new double[c];
                AssignedMaxStaffing  = new double[c];
                //StaffingRequirement = new double[c];
            });

            (_dateIndexer.Count * 24).Self(c =>
            {
                _goals = new double[c];
            });
            _dailyCVs = new double[dateIndexer.Count];
            DailyAssignedServiceLevel = new double[dateIndexer.Count];
            DailyForecastStaffing     = new double[dateIndexer.Count];
            DailyAssignedStaffing     = new double[dateIndexer.Count];


            _hashCode                = serviceQueue.GetHashCode();
            _serviceQueue            = serviceQueue;
            _dailyCalculationActions = new Dictionary <int, Action>();
        }