main
1namespace domain
2{
3 using System.Collections.Generic;
4 using System.Linq;
5
6 public class Oppurtunity
7 {
8 Percent workingInterest;
9 DeclineCurve declineCurve;
10
11 public Oppurtunity()
12 {
13 workingInterest = 100m.Percent();
14 }
15
16 public void WorkingInterest(Percent percent)
17 {
18 workingInterest = percent;
19 }
20
21 public void DeclinesUsing(DeclineCurve declineCurve)
22 {
23 this.declineCurve = declineCurve;
24 }
25
26 public IWell BringOnlineOn(Month initialProductionMonth)
27 {
28 return new Well(initialProductionMonth, workingInterest, declineCurve.StartingOn(initialProductionMonth));
29 }
30
31 public IEnumerable<IWell> BringOnlineOn(Month initialProductionMonth, int numberOfWells)
32 {
33 for (var i = 0; i < numberOfWells; i++)
34 yield return BringOnlineOn(initialProductionMonth);
35 }
36 }
37}