internal void Update()
        {
            foreach (var campaign in Data)
            {
                foreach (var project in campaign.Data)
                {
                    project.Update();
                }

                campaign.Update();
            }

            Detail = new DataInventoryDetail
            {
                Attempt0  = Data.Sum(x => x.Detail.Attempt0),
                Attempt1  = Data.Sum(x => x.Detail.Attempt1),
                Attempt2  = Data.Sum(x => x.Detail.Attempt2),
                Attempt3  = Data.Sum(x => x.Detail.Attempt3),
                Attempt4  = Data.Sum(x => x.Detail.Attempt4),
                Attempt5  = Data.Sum(x => x.Detail.Attempt5),
                Attempt6  = Data.Sum(x => x.Detail.Attempt6),
                MoreThan6 = Data.Sum(x => x.Detail.MoreThan6),
                Final     = Data.Sum(x => x.Detail.Final),
                Hold      = Data.Sum(x => x.Detail.Hold),
                Total     = Data.Sum(x => x.Detail.Total),
            };

            Callbacks += Data.Sum(x => x.Callbacks);

            if (Detail.Total > 0)
            {
                Penetration = Math.Round(((decimal)Detail.Final / Detail.Total) * 100, 2);
            }
        }
        internal void Update()
        {
            Detail = new DataInventoryDetail
            {
                Attempt0  = Data.Sum(x => x.Detail.Attempt0),
                Attempt1  = Data.Sum(x => x.Detail.Attempt1),
                Attempt2  = Data.Sum(x => x.Detail.Attempt2),
                Attempt3  = Data.Sum(x => x.Detail.Attempt3),
                Attempt4  = Data.Sum(x => x.Detail.Attempt4),
                Attempt5  = Data.Sum(x => x.Detail.Attempt5),
                Attempt6  = Data.Sum(x => x.Detail.Attempt6),
                MoreThan6 = Data.Sum(x => x.Detail.MoreThan6),
                Final     = Data.Sum(x => x.Detail.Final),
                Hold      = Data.Sum(x => x.Detail.Hold),
                Total     = Data.Sum(x => x.Detail.Total),
            };

            Callbacks += Data.Sum(x => x.Callbacks);

            if (Detail.Total > 0)
            {
                Penetration = Math.Round(((decimal)Detail.Final / Detail.Total) * 100, 2);
            }

            foreach (var agent in Data)
            {
                agent.Penetration = agent.Detail.Total > 0 ?
                                    Math.Round(((decimal)agent.Detail.Final / agent.Detail.Total) * 100, 2) :
                                    0;
            }
        }