using AutoMapper; using AutoMapper.Internal.Mappers; using Entities.Contracts; using Entities.DTO; using Newtonsoft.Json; using System.Net.Http.Json; using System.Text.Json; using System.Text.Json.Serialization; namespace TechHelper.Context { public class AutoMapperProFile : Profile { public static class EnumMappingHelpers { public static TEnum ParseEnumSafe(string sourceString, TEnum defaultValue) where TEnum : struct, Enum { if (Enum.TryParse(sourceString, true, out TEnum parsedValue)) { return parsedValue; } return defaultValue; } } public AutoMapperProFile() { CreateMap() .ForMember(dest => dest.Id, opt => opt.Ignore()) .ForMember(dest => dest.UserName, opt => opt.MapFrom(src => src.Name)) .ForMember(dest => dest.Email, opt => opt.MapFrom(src => src.Email)) .ForMember(dest => dest.PhoneNumber, opt => opt.MapFrom(src => src.PhoneNumber)) .ForMember(dest => dest.Address, opt => opt.MapFrom(src => src.HomeAddress)) .ForMember(dest => dest.PasswordHash, opt => opt.Ignore()) .ForMember(dest => dest.EmailConfirmed, opt => opt.Ignore()); CreateMap() .ForMember(d => d.Number, o => o.MapFrom(src => src.Class)) .ReverseMap(); // Assignment CreateMap().ReverseMap(); CreateMap().ReverseMap(); CreateMap().ReverseMap(); CreateMap().ReverseMap(); // Submission CreateMap().ReverseMap(); CreateMap().ReverseMap(); CreateMap() .ForMember(dest => dest.Info, opt => opt.MapFrom(src => JsonConvert.SerializeObject(src.Data))); CreateMap() .ForMember(dest => dest.Data, opt => opt.MapFrom(src => JsonConvert.DeserializeObject>(src.Info))); } } }