Пример #1
0
        public OverAllStatsResult(OverAllStats stats)
        {
            Users  = stats.Users.Select(item => new DailyStatsResult(item)).ToList();
            Opens  = stats.Opens.Select(item => new DailyStatsResult(item)).ToList();
            Clicks = stats.Clicks.Select(item => new DailyStatsResult(item)).ToList();

            UserCount  = Users.LastOrDefault()?.Count ?? 0 - stats.UserCountBeforeStart;
            OpenCount  = Opens.Sum(item => item.Count);
            ClickCount = Clicks.Sum(item => item.Count);

            var firstUserCount = Users.FirstOrDefault()?.Count ?? 0;

            if (firstUserCount != 0)
            {
                UserGrowthPercent = GetPercent(firstUserCount, Users.LastOrDefault()?.Count ?? 0);
            }

            var firstOpenCount = stats.OpenCountBeforeStart + Opens.FirstOrDefault()?.Count ?? 0;

            if (firstOpenCount != 0)
            {
                OpenGrowthPercent = GetPercent(firstOpenCount, OpenCount);
            }

            var firstClickCount = stats.ClickCountBeforeStart + Clicks.FirstOrDefault()?.Count ?? 0;

            if (firstClickCount != 0)
            {
                ClickGrowthPercent = GetPercent(firstClickCount, ClickCount);
            }
        }
Пример #2
0
        public static List <OverAllStatsCsvResult> Create(OverAllStats stats)
        {
            var result = new List <OverAllStatsCsvResult>();

            result.AddRange(stats.Users.Select(item =>
                                               new OverAllStatsCsvResult(OverAllStatsTypeCsvResult.User, item)));

            result.AddRange(stats.Opens.Select(item =>
                                               new OverAllStatsCsvResult(OverAllStatsTypeCsvResult.Open, item)));

            result.AddRange(
                stats.Clicks.Select(item => new OverAllStatsCsvResult(OverAllStatsTypeCsvResult.Click, item)));

            return(result);
        }