public IDisplayUnits Get(string tag, UnitOfMeasure targetUnit, UnitPlurality plurality) {
     if (String.IsNullOrEmpty(tag))
         if (!_defaults.Any(kv => kv.Key.IsAssignableFrom(targetUnit.GetType())))
             throw new InvalidOperationException("No tag was provided and no default is available for type {0}".Use(targetUnit));
         else
             return _defaults.First(kv => kv.Key.IsAssignableFrom(targetUnit.GetType())).Value;
     else
         return GetByTag(tag);
 }
 public virtual string ToString(IDisplayUnits displayFormat, UnitPlurality plurality) {
     return displayFormat.GetUnitDisplayFor(new UnitAtPlularity(this, plurality));
 }
 public string Convert(string word, UnitPlurality desiredPlurality) {
     return word;
 }
 public CorrectPluralityFormatProvider(Quantity quantity, IDeterminePlurality pluralityChecker) {
     _plurality = pluralityChecker.GetPlurality(quantity.Amount);
 }
 public string Convert(string word, UnitPlurality desiredPlurality) {
     if (desiredPlurality == UnitPlurality.Plural)
         return Convert(word);
     return word;
 }
 public UnitAtPlularity(UnitOfMeasure unit, UnitPlurality plurality) {
     Unit = unit;
     Plurality = plurality;
 }