Ejemplo n.º 1
0
 object?Format(object?value, object?parameter, CultureInfo?culture)
 {
     if (value is not string str)
     {
         str = value?.ToString() ?? string.Empty;
     }
     if (parameter is not string para)
     {
         para = parameter?.ToString() ?? string.Empty;
     }
     if (!string.IsNullOrEmpty(para))
     {
         if (string.Equals(para, Size, StringComparison.OrdinalIgnoreCase) &&
             double.TryParse(str, out double b))
         {
             (var length, string unit) = IOPath.GetSize(b);
             if (length == 0)
             {
                 return("0 B");
             }
             return($"{length:###,###.##} {unit}");
         }
         else if (decimal.TryParse(str, out decimal d))
         {
             if (parameter is ECurrencyCode c1)
             {
                 return(d.ToString("C", c1.GetCultureInfo()));
             }
             else if (parameter is CurrencyCode c2)
             {
                 return(d.ToString("C", c2.GetCultureInfo()));
             }
             else if (string.Equals(para, Money, StringComparison.OrdinalIgnoreCase))
             {
                 return(d.ToString("C", culture));
             }
         }
         else
         {
             return(str.Format(para));
         }
     }
     return(str);
 }