public void NoEeeInProducerEeeDetailsForOneCategory_TonnageShouldAlwaysBeEmpty(QuarterSelection quarter,
            WeeeCategory weeeCategory, ObligationType obligationType)
        {
            var producerDetails = new ProducerEeeDetails();

            var result = producerDetails.DisplayTonnage(quarter, weeeCategory, obligationType);

            Assert.Empty(result);
        }
Example #2
0
        private IEnumerable <Eee> FilterEeeByQuarter(IEnumerable <ProducerEeeByQuarter> source, QuarterSelection quarterSelection)
        {
            switch (quarterSelection)
            {
            case QuarterSelection.All:

                if (source.Any())
                {
                    return(source
                           .Select(eee => eee.Eee)
                           .Aggregate((prev, curr) => prev.Concat(curr))
                           .GroupBy(eee => new { eee.ObligationType, eee.WeeeCategory })
                           .Select(g => new Eee(g.Sum(eee => eee.Tonnage),
                                                (WeeeCategory)(int)g.Key.WeeeCategory,
                                                (ObligationType)(int)g.Key.ObligationType)));
                }

                return(new List <Eee>());

            default:
                source = source
                         .Where(s => (int)s.Quarter.Q == (int)quarterSelection);

                if (source.Any())
                {
                    return(source.Select(eee => eee.Eee)
                           .Aggregate((prev, curr) => prev.Concat(curr))
                           .Select(eee => new Eee(eee.Tonnage,
                                                  (WeeeCategory)(int)eee.WeeeCategory,
                                                  (ObligationType)(int)eee.ObligationType)));
                }

                return(new List <Eee>());
            }
        }
Example #3
0
        public static string DisplayTonnage(this ProducerEeeDetails producerEeeDetails, QuarterSelection quarter, WeeeCategory category,
                                            ObligationType obligationType)
        {
            switch (quarter)
            {
            case QuarterSelection.All:
                var totalEee = producerEeeDetails.TotalEee.SingleOrDefault(e => e.Category == category &&
                                                                           e.ObligationType == obligationType);
                return(totalEee != null
                        ? totalEee.Tonnage.ToString()
                        : string.Empty);

            case QuarterSelection.Q1:
                var quarter1Eee = producerEeeDetails.Q1EEE.SingleOrDefault(e => e.Category == category &&
                                                                           e.ObligationType == obligationType);
                return(quarter1Eee != null
                        ? quarter1Eee.Tonnage.ToString()
                        : string.Empty);

            case QuarterSelection.Q2:
                var quarter2Eee = producerEeeDetails.Q2EEE.SingleOrDefault(e => e.Category == category &&
                                                                           e.ObligationType == obligationType);
                return(quarter2Eee != null
                        ? quarter2Eee.Tonnage.ToString()
                        : string.Empty);

            case QuarterSelection.Q3:
                var quarter3Eee = producerEeeDetails.Q3EEE.SingleOrDefault(e => e.Category == category &&
                                                                           e.ObligationType == obligationType);
                return(quarter3Eee != null
                        ? quarter3Eee.Tonnage.ToString()
                        : string.Empty);

            case QuarterSelection.Q4:
                var quarter4Eee = producerEeeDetails.Q4EEE.SingleOrDefault(e => e.Category == category &&
                                                                           e.ObligationType == obligationType);
                return(quarter4Eee != null
                        ? quarter4Eee.Tonnage.ToString()
                        : string.Empty);

            default:
                return(string.Empty);
            }
        }
        public void NoEeeInProducerEeeDetailsForOneCategory_TonnageShouldAlwaysBeEmpty(QuarterSelection quarter,
                                                                                       WeeeCategory weeeCategory, ObligationType obligationType)
        {
            var producerDetails = new ProducerEeeDetails();

            var result = producerDetails.DisplayTonnage(quarter, weeeCategory, obligationType);

            Assert.Empty(result);
        }