public void NoEeeInProducerEeeDetailsForOneCategory_TonnageShouldAlwaysBeEmpty(QuarterSelection quarter, WeeeCategory weeeCategory, ObligationType obligationType) { var producerDetails = new ProducerEeeDetails(); var result = producerDetails.DisplayTonnage(quarter, weeeCategory, obligationType); Assert.Empty(result); }
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>()); } }
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); } }