Skip to content


Daniel Gonzalez Garcia edited this page Aug 19, 2018 · 18 revisions

2018/08/19 e5482bec892f33c2b262b6c7ba0238b82cce985f

  • Implement amendment 168:
  • Change name of PHP
  • Deprecate VEF adn introduce VES
  • Implement amendment 169 (a bit too early):
  • Introduce UYW

2017/12/31 c3adbc07311830cbd3d1deb4afb2e0907e14167d

  • Breaking change: .Allocate() methods have moved from NMoneys namespace to the NMoneys.Allocations namespace as part of a general effort to improve the architecture of the library
  • Apply Amendment 164:
    • Make STD obsolete
    • Create STN obsolete
    • Change PHP name
  • Apply Amendment 165:
    • Make MRO obsolete
    • Create MRU obsolete
  • Expose extension method CurrencyIsoCode.Equals(public static bool Equals(CurrencyIsoCode) to efficiently compare two currency codes
  • Reconcile a lot of currencies with newly supported information in System.Globalization: ALL, ANG, AOA, AWG, BIF, BMD, BSD, CUC, CVE, DJF, FJD, FKP, GHS, GIP, GMD, GNF, GYD, KMF, KPW, LRD, MGA, MRO, MUR, MWK, MZN, NAD, PGK, SDB, SCR, SDG, SHP, SLL, SSP, STD, SRD, SZL, TOP, TZS, UGX, VUV, WST, XPF
  • Re-implement NMoneys.Tools to make detecting future changes of the information of a currency easier and more effective

2017/07/19 f40dbc4354a5e1ded08aeec1b887f278e7a8ab9d

  • Retrofit amendment 158:
    • Make USS obsolete

2017/07/18 9c56e298d9edf6cd3e8cb7703a5f1299a55947f0

  • Finish application of Amendment 161:
    • Make BYR obsolete

Serialization Json_Net 4.0, Raven_DB 4.0, Mongo_DB_Legacy 2.0, Mongo_DB 2.0

2017/06/20 f522fbe4a62ce38b02825a48e81ebe9c30e8fab4

  • Upgrade serialization packages to take a dependency on the serialization framework
  • Target-dependent dependencies:
    • for core projects, minimum library version that supports netcore
    • for classic netframework projects, minimum working library version
  • Remove Nullable*Converter from Json_Net and Raven_DB. From now on, a {Canonical|Default}Converter should be able to handle nullable serialization/deserialization
  • Use new Decimal128 type for the serialization of Amount in Mongo_DB instead of the risky conversion from floating point

2017/06/14 dc87a744c5896fa48c0cad6caf255338e96fe1a0

  • Add operations to make change:

    • .CountWaysToMakeChange()
    • .MakeChange()
    • .MakeOptimalChange()
  • Amendment 163:

    • change name for AZN, KMF, GNF and LAK
    • change currency short form for UYI and Exchange

2017/04/21 2e4984696a40cc501b57c33d2aa2ccc96b09674f

  • Include netstandard1.3 libraries for NMoneys and NMoneys.Exchange
  • Breaking change: methods that previously threw InvalidEnumArgumentException now throw ArgumentException to align both runtimes
  • Migrate tests and tooling to NUnit 3.6.1
  • Update NuGet and PSake

Netstandard library supports all features that were available in the "classic" .NET framework version minus:

  • Custom serialization
  • ICloneable is not implemented and Exchange

2016/07/20 bd6988d536732426e884a74b81a486a29ff75f44

  • Decorate public pure methods with [Pure]
  • Migrate tests and tooling to NUnit 3
  • Update NuGet

2016/07/18 868bd2284a75783f7d2d09a29c46a9dcde5ca703

  • Solve issue with wrong type when binary serializing Money instances

2016/07/11 73619199cf35cf1e47f7b2612caaef9cd85294ff

  • Apply ISO4217 amendment 161: Add BYN
  • Reconcile currencies AZN, ETB , BAM, BTN, BZD, JMD, TTD, ZAR, XDR, ARS, BOB, CLP, COP, CRC, CUP, HNL, NIO, PAB, PEN, PYG with globalization information
  • Reconcile currencies UYU, VEF, PHP, CDF, XAF, HTG, HRK, IDR, GEL, KZT, LAK, MKD, MNT, BND, MYR, MMK, NOK, AFN, BRL, MDL, RUB, RWF, LKR, ALL, SEK, KES, ERN, BWP, UZS, XDR with globalization information

2016/06/22 014503f54462d24340ff0f94895ff1971775c806

  • Add Currency.Code.Parse(str, default)

2016/03/15 426afd82e6e172e49c5792b981366a594e339738

  • Apply ISO4217 amendment 162: change name of MWK, PEN and VEF

Serialization MongoDb (csharpdriver)

2015/08/27 a00a80dfc5187603889e6bc6c6ba691baaa3df14

  • Include custom MongoDB serialization/de-serialization via custom serializers: CanonicalMoneySerializer and DefaultMoneySerializer
  • include missing .dll to build the package locally when no Microsoft Help SDK is installed
  • Update version of NuGet

2015/07/15 87b25393b97f3784d4b123c7e3bdeb117f7ccf5f

  • Apply ISO4217 amendment 160: change name of HRK and RON
  • refactor build process to be share common with CI/CD server
  • Update version of NuGet
  • Update version of psake
  • Update version of NUnit

2015/04/21 8118e4b2f3c959c530a4ad12400fc32cebc9db16

2015/01/08 efb48aa545830396d682f13a7dd9e81598b73ed9

  • Apply ISO4217 amendment 159: deprecate LTL and change CVE
  • support for currencies without symbols
  • fix issue #28 by overloading Money.Parse()

2014/08/06 @revision 296

  • Breaking change of NuGet package NMoneys.Serialization.Json_NET as it is now a source code package with no binary dependency on Json.NET
  • Add source code package to support custom serialization for ServiceStack.Text
  • Add source code package to support custom serialization for RavenDB

2014/06/19 @revision 283

  • Update symbol and native name for BYR
  • Update symbol for BGN
  • Update native name for CZK
  • Update version of NuGet
  • Update version of psake
  • Improve build scripts
  • Add facility to strongly name NMoneys.dll in order to upload to bin repository

2014/04/15 @revision 273

  • Exposed fast equality comparer for CurrencyIsoCode via Currency.Code

2014/03/14 @revision 268

  • Apply ISO4217 amendment 155: increase significative decimals for CLF
  • Update currencies based on newest OS/framework information: AFN, BOB, CDF, CLF, HTG, IRR, KES, MDL, MMK, PHP, SOS UZS, XAF
  • fixed NUnit report to support UTF-8
  • Upgraded version of NuGet

2014/01/21 @revision 262

  • Integral multiplication .Times() and .Multiply() added to Money

2014/01/06 @revision 259

  • Changed native name: CLF
  • Apply ISO4217 amendment 156: deprecate LVL
  • Upgraded version of NuGet

2013/04/06 @revision 250

  • Added .Ceiling() to Money
  • Removed faulty ZMV and replaced for correct ZMW, let's hope not a lot of people persisted information with the non-existing currency
  • Changed representation: ALL, BWP, COP, DOP, ERN, ETB, GTQ, IRR, KGS, LTL, MNT, NIO, RUB, RWF, SEK, TJS, UYU, XCD
  • Changed currency symbol: AMD, GEL, INR, KZT, NGN, PYG, TJS, TRY, VEF, XCD
  • Changed native name: BGN, CZK, ERN, IRR, KZT, TJS

2013/03/17 @revision 247

  • Released of NMoney.Exchange, including issue 21
  • Upgraded version of NuGet

2013/01/01 @revision 241

  • Applied rest of changes from ISO4217 amendment 154: ZMK is deprecated, and ZMV has been added
  • Changed number of decimals for UGX as per ISO website
  • Changed misspelled denominations of XBC and XBD
  • Added .chm documentation to NMoneys, NMoneys.Exchange and NMoneys.Serialization.Json_NET
  • Upgraded dependency of NMoneys.Serialization.Json_NET to latest Json.NET
  • Upgraded version of NuGet
  • Build migrated to psake instead of MSBuild

2012/08/02 @revision 215

  • NMoneys version bump due to client profile targeting and some breaking changes
  • NMoneys.Exchange version bump due to client profile targeting
  • breaking change: deprecated CurrencyConverter, CurrencyCodeConverter and MoneyConverter that used the old undeprecated, but well on its way out, System.Web.Script.Serialization.JavasScriptConverter
  • custom JSON serialiation can be performed using the DataContractJsonSerializer and customized with DataContractSurrogate
  • removed System.Web dependency
  • added project NMoneys.Serialization.Json_NET which follows a parallel distribution method (different binaries and packages) to support custom JSON serialization using the popular "Json.NET" library

2012/06/25 @revision 176

  • version bump due to some breaking changes
  • breaking change: Allocators namespace is now Allocations
  • breaking change: Money.Allocate(int) returns an Allocation instance, instead of Money[]
  • breaking change: IRemainderAllocator.Allocate() signature change. Custom implementations of the interface need to be rewritten :-(
  • breaking change: extension method on money instances .Currency() renamed to .GetCurrency()
  • Added Money.Allocate(RatioCollection) to allow pro-rated allocations. Again, many thanks to Berryl Hesh for his contribution.
  • Surfaced EvenAllocator to perform strictly fair allocations
  • Added ProRatedAllocator to perform strictly pro-rated allocations
  • Added Money.Zero() static factory methods that initialize arrays
  • Added Money.Some() static factory methods that initialize arrays
  • Added Money.HasSameCurrencyAs() and Money.AssertSameCurrency instance method that operate on collections of moneys

2012/02/13 @revision 146

  • Added Money.Allocate(). Thanks to Berryl Hesh for the contribution
  • Added Currency.MinAmount, CurrencyIsoCode.AsCurrency() extension, Money.Currency() and IEnumerable<decimal>.ToMoney() extensions
  • updated currency definitions as per latest ISO amendment 153: GHS renamed to Ghana Cedi, MZN renamed to Mozambique Metical, RON renamed to New Romanian Leu and TMT renamed to Turkmenistan New Manat
  • All currencies have their English name as defined per the ISO. The following currencies have been renamed and their native names updated: ALL, ANG, BAM, BDT, BOV, BRL, BYR, CLF, COU, GBP, GHS, GTQ, HNL, HUF, IDR, ILS, ISK, JPY, KGS, KRW, MKD, MOP, MXV, MZN, NAD, NGN, NIO, NPR, OMR, PAB, PEN, PLN, PYG, RON, RWF, SVC, THB, TJS, TMT, TOP, TTD, UAH, UYI, UZS, VEF, VND, XBA, XDR, ZAR
  • All currencies have their SignificantDecimalDigits as defined per the ISO. The following currencies have been changed: BIF, BND, BYR, CLF, CLP, DJF, GNF, IDR, IQD, KMF, MYR, PYG, RWF, UYI, UZS, VND, VUV, XAF, XOF, XPF
  • Updated NuGet to v1.6.21205.9031

2011/09/01 @revision 129

  • South Sudanese Pound (SSP) has been added
  • changed name of ARW to Aruban Florin
  • updated assembly description to match the one in the NuGet package
  • Updated NuGet to v1.5.20830.9001

2011/06/30 @revision 123

  • Breaking change: all currency code parsing/conversion methods are accessed through Currency.Code
  • Updated NuGet to v1.4.20615.182
  • Added project NMoneys.Exchange which follows a parallel distribution method (different binaries and packages)

2011/06/02 @revision 85

  • Added methods Currency.ParseCode() and Currency.TryParseCode() that allow parsing CurrencyIsoCode strings

2011/05/15 @revision 72

  • Included source code for CodeProject article
  • Solved Issue 16. Now, currencies can be obtained from case-insensitive three-letter codes
  • Added AlphabeticCode() to Currency and CurrencyIsoCode to reflect terms used by ISO
  • Updated Money.Total() tests to exemplify its usage

2011/05/03 @revision 53

  • ADB Unit of Account (XUA) has been added
  • Updated NuGet to v1.3.20425.372
  • Updated NUnit to v2.5.10.11092

2011/03/17 @revision 51

  • Performance improvement for unitialized Money instances
  • Sucre (XSU) has been added
  • checked for CLS compliancy
  • MissconfiguredCurrencyException renamed to MisconfiguredCurrencyException
  • Currency.ObsoleteCurrency is now an event
  • < and > operators implemented for Currency
  • Money arithmetic methods implemented as alternative to operators for languages that cannot consume operators
  • Extensive null parameter checking
  • Updated NuGet to v1.1

2011/02/24 @revision 43

  • Fix for unexpected behavior of unitialized Money instances. Now default instances have a defined currency ISO code (XXX)

2011/02/11 @revision 37

  • Support for deprecated currencies
  • Estonian Kroon (EEK) has been deprecated
  • Currency.Get(), Currency.Get() can receive a RegionInfo as argument
  • Added support for HTML/XML entities (such as &eur;)
  • Updated NuGet to v1.0 RTM.
  • NuGet package published.
  • Gem published.
  • Updated NUnit to
  • Changed MSBuild script to ease usage
    • Creates more correct NuGet package
    • Copies to output release directory

2010/11/20 @revision 24

  • Completed Xml documentation for public members
  • Currency.TryGet(), Currency.TryParse() and Money.TryParse() do not throw any exception anymore
  • Added USN and USS after merging all information back from the ISO website
  • Added NuGet package. It should be available from the public feed
  • Added MSBuild script to ease usage
    • Run tests and creates reports
    • Compiles binaries
    • Creates NuGet package
    • Copies to output build directory

2010/11/20 @revision 15

  • Added Currency.FindAll()
  • Added Money.Parse() and Money.TryParse()
  • Implemented IComparable and IComparabe<> on Currency
  • Added Joda-Money features:
    • Creation methods: Money.Zero(), Money.ForMajor(), Money.ForMinor(), and Money.Total()
    • Properties Money.MinorAmount, Money.MajorAmount, Money.HasDecimals
  • Removed "long" obsolete currency: Guinea-Bissau Franc GWP (624).

2010/10/25 @revision 11

  • Baseline version
You can’t perform that action at this time.