Example #1
0
        private static List <ShowOnesQuota> CreateLevelQuotasFromWeeklyUnassignedOnes(List <Ones> onesCollection,
                                                                                      List <ShowOnesQuotaUniqueFilter> uniqueFilters,
                                                                                      int scenarioId)
        {
            var showOnesQuotas = new List <ShowOnesQuota>();

            var groupsOnes = onesCollection
                             .Where(o => o.DayOfPeriod == null)
                             .GroupBy(o => new { o.Artist.LevelId, o.Period, o.DisciplineId, o.SiteEntityId });

            foreach (var groupOnes in groupsOnes)
            {
                var sum              = 0D;
                var siteId           = groupOnes.First().SiteEntityId;
                var disciplineId     = groupOnes.First().DisciplineId;
                var seniorityLevelId = groupOnes.First().Artist.LevelId;

                var date = groupOnes.Key.Period;

                foreach (var ones in groupOnes)
                {
                    sum += GetSumOnesValueAndOt(ones);
                }

                if (sum > 0)
                {
                    var uniqueFilter = uniqueFilters.FirstOrDefault(f => f.DisciplineId == disciplineId &&
                                                                    f.SiteId == siteId &&
                                                                    f.ShowOnesQuotaScenarioId == scenarioId);

                    if (uniqueFilter != null)
                    {
                        var value = Math.Round(sum, 1, MidpointRounding.AwayFromZero);

                        var showOnesQuota = new ShowOnesQuota
                        {
                            ShowOnesQuotaUniqueFilterId = uniqueFilter.Id,
                            SeniorityLevelId            = seniorityLevelId ?? CommonConstants.UndefinedArtistLevelId,
                            MetricTypeId = CommonConstants.OnesMetricTypeId,
                            Value        = Convert.ToDecimal(value),
                            Date         = date
                        };

                        showOnesQuotas.Add(showOnesQuota);
                    }
                }
            }

            return(showOnesQuotas);
        }
Example #2
0
        private static List <ShowOnesQuota> CreateSiteQuotas(List <ShowOnesQuota> quotas)
        {
            var showOnesQuotas = new List <ShowOnesQuota>();

            var groupsQuotas = quotas
                               .GroupBy(q => new
            {
                q.Date,
                q.ShowOnesQuotaUniqueFilterId
            });

            foreach (var groupQuotas in groupsQuotas)
            {
                var uniqueFilterId   = groupQuotas.First().ShowOnesQuotaUniqueFilterId;
                var seniorityLevelId = CommonConstants.UndefinedArtistLevelId;
                var date             = groupQuotas.Key.Date;
                var sum   = groupQuotas.Sum(q => q.Value);
                var value = Math.Round(sum, 1, MidpointRounding.AwayFromZero);

                if (sum != 0)
                {
                    var showOnesQuota = new ShowOnesQuota
                    {
                        ShowOnesQuotaUniqueFilterId = uniqueFilterId,
                        SeniorityLevelId            = seniorityLevelId,
                        MetricTypeId = CommonConstants.OnesMetricTypeId,
                        Value        = value,
                        Date         = date
                    };

                    showOnesQuotas.Add(showOnesQuota);
                }
            }

            return(showOnesQuotas);
        }