Commit 35778ae

mo k <mo@mokhan.ca>
2012-04-24 03:44:42
convert Sum extension to use IUnitOfMeasure.
1 parent d1a589f
src/domain/DrillSchedule.cs
@@ -16,12 +16,12 @@ namespace domain
 
     public IQuantity EstimatedGrossProductionFor<Commodity>(Month month) where Commodity : ICommodity, new()
     {
-      return wells.Select(well => well.GrossProductionFor<Commodity>(month)).Sum();
+      return wells.Select(well => well.GrossProductionFor<Commodity>(month)).Sum<BOED>();
     }
 
     public IQuantity EstimatedNetProductionFor<Commodity>(Month month) where Commodity : ICommodity, new()
     {
-      return wells.Select(well => well.NetProductionFor<Commodity>(month)).Sum();
+      return wells.Select(well => well.NetProductionFor<Commodity>(month)).Sum<BOED>();
     }
 
     public void Accept(IVisitor<IWell> visitor )
src/domain/GasPlant.cs
@@ -49,7 +49,7 @@ namespace domain
 
     IQuantity TotalProductionFor(Month month)
     {
-      return wells.Select(well => well.GrossProductionFor<Gas>(month)).Sum();
+      return wells.Select(well => well.GrossProductionFor<Gas>(month)).Sum<BOED>();
     }
   }
 }
src/domain/Summation.cs
@@ -4,9 +4,9 @@ namespace domain
 
   public static class Summation
   {
-    static public IQuantity Sum(this IEnumerable<IQuantity> items)
+    static public IQuantity Sum<T>(this IEnumerable<IQuantity> items) where T: IUnitOfMeasure,new()
     {
-      var result = 0m.BOED();
+      var result = 0m.ToQuantity<T>();
       foreach (var item in items) {
         result = result.Plus(item);
       }