MapiTypeConverterMap property

LazyMember<Map<MapiPropertyType, MapiTypeConverterMapEntry>> MapiTypeConverterMap
getter/setter pair
Assume DateTime values are in UTC. Map from MAPI property type to converter entry.

Implementation

//        /* private */ static const UtcDataTimeStyles = DateTimeStyles.AdjustToUniversal | DateTimeStyles.AssumeUniversal;

/// <summary>
/// Map from MAPI property type to converter entry.
/// </summary>
/* private */
static LazyMember<Map<MapiPropertyType, misc.MapiTypeConverterMapEntry>>
    MapiTypeConverterMap = new LazyMember(() {
  final map = new Map<MapiPropertyType, misc.MapiTypeConverterMapEntry>();

//                map[MapiPropertyType.ApplicationTime] = new misc.MapiTypeConverterMapEntry(typeof(double));
//
//                map[MapiPropertyType.ApplicationTimeArray] = new misc.MapiTypeConverterMapEntry(typeof(double)) { IsArray = true };

  var byteConverter = new misc.MapiTypeConverterMapEntry(Uint8List);
  byteConverter.Parse = (o) => base64.decode(o!);
  byteConverter.ConvertToString = (s) => base64.encode(s as List<int>);
  map[MapiPropertyType.Binary] = byteConverter;

  var intConverter = new misc.MapiTypeConverterMapEntry(int);
  intConverter.Parse = (o) => int.parse(o!);
  intConverter.ConvertToString = (s) => s.toString();
  map[MapiPropertyType.Integer] = intConverter;
  map[MapiPropertyType.Long] = intConverter;

//
//                var byteArrayConverter = new misc.MapiTypeConverterMapEntry(typeof(Uint8List))
//                    {
//                        Parse = (s) => StringUtils.IsNullOrEmpty(s) ? null : Convert.FromBase64String(s),
//                        ConvertToString = (o) => Convert.ToBase64String((Uint8List)o),
//                        IsArray = true
//                    };
//
//                map.add(
//                    MapiPropertyType.BinaryArray,
//                    byteArrayConverter);
//
  var boolConverter = new misc.MapiTypeConverterMapEntry(bool);
  boolConverter.Parse = (s) => s!.toLowerCase() == "true";
  boolConverter.ConvertToString = (o) => o.toString().toLowerCase();
  map[MapiPropertyType.Boolean] = boolConverter;

  var stringConverter = new misc.MapiTypeConverterMapEntry(String);
  stringConverter.Parse = (s) => s;
  stringConverter.ConvertToString = (o) => o.toString();
  map[MapiPropertyType.String] = stringConverter;
//
//                var clsidConverter = new misc.MapiTypeConverterMapEntry(typeof(Guid))
//                    {
//                        Parse = (s) => new Guid(s),
//                        ConvertToString = (o) => ((Guid)o).ToString(),
//                    };
//
//                map.add(
//                    MapiPropertyType.CLSID,
//                    clsidConverter);
//
//                var clsidArrayConverter = new misc.MapiTypeConverterMapEntry(typeof(Guid))
//                    {
//                        Parse = (s) => new Guid(s),
//                        ConvertToString = (o) => ((Guid)o).ToString(),
//                        IsArray = true
//                    };
//
//                map.add(
//                    MapiPropertyType.CLSIDArray,
//                    clsidArrayConverter);
//
//                map.add(
//                    MapiPropertyType.Currency,
//                    new misc.MapiTypeConverterMapEntry(typeof(Int64)));
//
//                map.add(
//                    MapiPropertyType.CurrencyArray,
//                    new misc.MapiTypeConverterMapEntry(typeof(Int64)) { IsArray = true });
//
//                map.add(
//                    MapiPropertyType.Double,
//                    new misc.MapiTypeConverterMapEntry(typeof(double)));
//
//                map.add(
//                    MapiPropertyType.DoubleArray,
//                    new misc.MapiTypeConverterMapEntry(typeof(double)) { IsArray = true });
//
//                map.add(
//                    MapiPropertyType.Error,
//                    new misc.MapiTypeConverterMapEntry(typeof(Int32)));
//
//                map[MapiPropertyType.Float] = new misc.MapiTypeConverterMapEntry(typeof(float));
//
//                map.add(
//                    MapiPropertyType.FloatArray,
//                    new misc.MapiTypeConverterMapEntry(typeof(float)) { IsArray = true });
//
//                map.add(
//                    MapiPropertyType.Integer,
//                    new misc.MapiTypeConverterMapEntry(typeof(Int32))
//                    {
//                        Parse = (s) => MapiTypeConverter.ParseMapiIntegerValue(s)
//                    });
//
//                map.add(
//                    MapiPropertyType.IntegerArray,
//                    new misc.MapiTypeConverterMapEntry(typeof(Int32)) { IsArray = true });
//
//                map.add(
//                    MapiPropertyType.Long,
//                    new misc.MapiTypeConverterMapEntry(typeof(Int64)));
//
//                map.add(
//                    MapiPropertyType.LongArray,
//                    new misc.MapiTypeConverterMapEntry(typeof(Int64)) { IsArray = true });
//
//                var objectConverter = new misc.MapiTypeConverterMapEntry(typeof(string))
//                    {
//                        Parse = (s) => s
//                    };
//
//                map.add(
//                    MapiPropertyType.Object,
//                    objectConverter);
//
//                var objectArrayConverter = new misc.MapiTypeConverterMapEntry(typeof(string))
//                    {
//                        Parse = (s) => s,
//                        IsArray = true
//                    };
//
//                map.add(
//                    MapiPropertyType.ObjectArray,
//                    objectArrayConverter);
//
//                map.add(
//                    MapiPropertyType.Short,
//                    new misc.MapiTypeConverterMapEntry(typeof(Int16)));
//
//                map.add(
//                    MapiPropertyType.ShortArray,
//                    new misc.MapiTypeConverterMapEntry(typeof(Int16)) { IsArray = true });
//
//                var stringConverter = new misc.MapiTypeConverterMapEntry(typeof(string))
//                    {
//                        Parse = (s) => s
//                    };
//
//                map.add(
//                    MapiPropertyType.String,
//                    stringConverter);
//
//                var stringArrayConverter = new misc.MapiTypeConverterMapEntry(typeof(string))
//                    {
//                        Parse = (s) => s,
//                        IsArray = true
//                    };
//
//                map.add(
//                    MapiPropertyType.StringArray,
//                    stringArrayConverter);
//
//                var sysTimeConverter = new misc.MapiTypeConverterMapEntry(typeof(DateTime))
//                    {
//                        Parse = (s) => DateTime.Parse(s, CultureInfo.InvariantCulture, UtcDataTimeStyles),
//                        ConvertToString = (o) => EwsUtilities.DateTimeToXSDateTime((DateTime)o) // Can't use DataTime.ToString()
//                    };
//
//                map.add(
//                    MapiPropertyType.SystemTime,
//                    sysTimeConverter);
//
//                var sysTimeArrayConverter = new misc.MapiTypeConverterMapEntry(typeof(DateTime))
//                    {
//                        IsArray = true,
//                        Parse = (s) => DateTime.Parse(s, CultureInfo.InvariantCulture, UtcDataTimeStyles),
//                        ConvertToString = (o) => EwsUtilities.DateTimeToXSDateTime((DateTime)o) // Can't use DataTime.ToString()
//                    };
//
//                map.add(
//                    MapiPropertyType.SystemTimeArray,
//                    sysTimeArrayConverter);

  return map;
});