using AutoMapper; using Entities.Contracts; using Entities.DTO; using Entities.DTO.Class; 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.DisplayName)) .ForMember(dest => dest.Email, opt => opt.MapFrom(src => src.Email)) .ForMember(dest => dest.PhoneNumber, opt => opt.MapFrom(src => src.PhoneNumber)) .ForMember(dest => dest.HomeAddress, opt => opt.MapFrom(src => src.HomeAddress)) .ForMember(dest => dest.PasswordHash, opt => opt.Ignore()) .ForMember(dest => dest.EmailConfirmed, opt => opt.Ignore()); // Subject CreateMap().ReverseMap(); CreateMap().ReverseMap(); CreateMap().ReverseMap(); // ExamType CreateMap().ReverseMap(); CreateMap().ReverseMap(); // QuestionType CreateMap().ReverseMap(); CreateMap().ReverseMap(); // Exam CreateMap().ReverseMap(); CreateMap().ReverseMap(); CreateMap().ReverseMap(); CreateMap().ReverseMap(); // Submission CreateMap().ReverseMap(); CreateMap().ReverseMap(); CreateMap().ReverseMap(); // Student Submission Detail CreateMap() .ForMember(dest => dest.AssignmentId, opt => opt.MapFrom(src => src.ExamId)) .ForMember(dest => dest.StudentId, opt => opt.MapFrom(src => src.StudentId)) .ForMember(dest => dest.SubmissionTime, opt => opt.MapFrom(src => src.SubmissionTime)) .ForMember(dest => dest.OverallGrade, opt => opt.MapFrom(src => src.OverallGrade)) .ForMember(dest => dest.OverallFeedback, opt => opt.MapFrom(src => src.OverallFeedback)) .ForMember(dest => dest.Status, opt => opt.MapFrom(src => src.Status)); CreateMap().ReverseMap(); CreateMap().ReverseMap(); // School CreateMap().ReverseMap(); CreateMap().ReverseMap(); // Grade CreateMap().ReverseMap(); CreateMap().ReverseMap(); // Class CreateMap().ReverseMap(); CreateMap().ReverseMap(); // User CreateMap().ReverseMap(); CreateMap().ReverseMap(); // KeyPoint CreateMap().ReverseMap(); CreateMap().ReverseMap(); CreateMap().ReverseMap(); CreateMap().ReverseMap(); // Lesson CreateMap().ReverseMap(); CreateMap().ReverseMap(); CreateMap().ReverseMap(); CreateMap().ReverseMap(); // Textbook CreateMap().ReverseMap(); CreateMap().ReverseMap(); CreateMap().ReverseMap(); CreateMap() .ForMember(dest => dest.LessonCount, opt => opt.MapFrom(src => src.Lessons.Count)) .ForMember(dest => dest.LessonTitles, opt => opt.MapFrom(src => src.Lessons.Select(l => l.Title).ToList())); } } }