main
1using gorilla.utility;
2
3namespace solidware.financials.service.domain.accounting
4{
5 public class Currency : SimpleUnitOfMeasure
6 {
7 static public readonly Currency USD = new Currency("USD");
8 static public readonly Currency CAD = new Currency("CAD");
9
10 Currency(string pneumonic)
11 {
12 this.pneumonic = pneumonic;
13 }
14
15 public override string pretty_print(decimal amount)
16 {
17 return "{0:C} {1}".format(amount, this);
18 }
19
20 public bool Equals(Currency other)
21 {
22 if (ReferenceEquals(null, other)) return false;
23 if (ReferenceEquals(this, other)) return true;
24 return Equals(other.pneumonic, pneumonic);
25 }
26
27 public override bool Equals(object obj)
28 {
29 if (ReferenceEquals(null, obj)) return false;
30 if (ReferenceEquals(this, obj)) return true;
31 if (obj.GetType() != typeof (Currency)) return false;
32 return Equals((Currency) obj);
33 }
34
35 public override int GetHashCode()
36 {
37 return (pneumonic != null ? pneumonic.GetHashCode() : 0);
38 }
39
40 static public bool operator ==(Currency left, Currency right)
41 {
42 return Equals(left, right);
43 }
44
45 static public bool operator !=(Currency left, Currency right)
46 {
47 return !Equals(left, right);
48 }
49
50 public override string ToString()
51 {
52 return pneumonic;
53 }
54
55 string pneumonic;
56 }
57}