diff --git a/common/ASC.Common/Mapping/MappingProfile.cs b/common/ASC.Common/Mapping/MappingProfile.cs index 8a8fcd797c..a116c9f86d 100644 --- a/common/ASC.Common/Mapping/MappingProfile.cs +++ b/common/ASC.Common/Mapping/MappingProfile.cs @@ -23,11 +23,17 @@ * */ +using ASC.Common.Mapping.PrimitiveTypeConverters; + namespace ASC.Common.Mapping; public class MappingProfile : Profile { - public MappingProfile() => Array.ForEach(AppDomain.CurrentDomain.GetAssemblies(), a => ApplyMappingsFromAssembly(a)); + public MappingProfile() + { + Array.ForEach(AppDomain.CurrentDomain.GetAssemblies(), a => ApplyMappingsFromAssembly(a)); + ApplyPrimitiveMappers(); + } private void ApplyMappingsFromAssembly(Assembly assembly) { @@ -50,4 +56,10 @@ public class MappingProfile : Profile methodInfo?.Invoke(instance, new object[] { this }); } } + + private void ApplyPrimitiveMappers() + { + CreateMap().ReverseMap() + .ConvertUsing(); + } } diff --git a/common/ASC.Common/Mapping/PrimitiveTypeConverters/TimeConverter.cs b/common/ASC.Common/Mapping/PrimitiveTypeConverters/TimeConverter.cs new file mode 100644 index 0000000000..da60255805 --- /dev/null +++ b/common/ASC.Common/Mapping/PrimitiveTypeConverters/TimeConverter.cs @@ -0,0 +1,14 @@ +namespace ASC.Common.Mapping.PrimitiveTypeConverters; + +public class TimeConverter : ITypeConverter, ITypeConverter +{ + public DateTime Convert(long source, DateTime destination, ResolutionContext context) + { + return new DateTime(source); + } + + public long Convert(DateTime source, long destination, ResolutionContext context) + { + return source.Ticks; + } +} \ No newline at end of file