Initial commit

This commit is contained in:
2026-05-05 10:39:43 +02:00
commit b590ecdc35
87 changed files with 3934 additions and 0 deletions
+33
View File
@@ -0,0 +1,33 @@
using AutoMapper;
using MetaCourse.Api.DTOs.Courses;
using MetaCourse.Api.Entities;
namespace MetaCourse.Api.Mappings;
public class CourseProfile : Profile
{
public CourseProfile()
{
CreateMap<Course, GetCourseDto>()
.ForMember(dest => dest.Status, opt => opt.MapFrom(src => src.Status.ToString()))
.ForMember(dest => dest.CreatorName, opt => opt.MapFrom(src => src.Creator.Name))
.ForMember(dest => dest.TopicCount, opt => opt.MapFrom(src => src.Topics.Count));
CreateMap<Course, GetCourseDetailsDto>()
.ForMember(dest => dest.Status, opt => opt.MapFrom(src => src.Status.ToString()))
.ForMember(dest => dest.CreatorName, opt => opt.MapFrom(src => src.Creator.Name));
CreateMap<CreateCourseDto, Course>()
.ForMember(dest => dest.Id, opt => opt.Ignore())
.ForMember(dest => dest.Status, opt => opt.Ignore())
.ForMember(dest => dest.CreatedAt, opt => opt.Ignore())
.ForMember(dest => dest.UpdatedAt, opt => opt.Ignore());
CreateMap<UpdateCourseDto, Course>()
.ForMember(dest => dest.Id, opt => opt.Ignore())
.ForMember(dest => dest.Status, opt => opt.Ignore())
.ForMember(dest => dest.CreatorId, opt => opt.Ignore())
.ForMember(dest => dest.CreatedAt, opt => opt.Ignore())
.ForMember(dest => dest.UpdatedAt, opt => opt.Ignore());
}
}
@@ -0,0 +1,22 @@
using AutoMapper;
using MetaCourse.Api.DTOs.Resources;
using MetaCourse.Api.Entities;
namespace MetaCourse.Api.Mappings;
public class ResourceProfile : Profile
{
public ResourceProfile()
{
CreateMap<Resource, GetResourceDto>()
.ForMember(dest => dest.Type, opt => opt.MapFrom(src => src.Type.ToString()));
CreateMap<CreateResourceDto, Resource>()
.ForMember(dest => dest.Id, opt => opt.Ignore())
.ForMember(dest => dest.CreatedAt, opt => opt.Ignore());
CreateMap<UpdateResourceDto, Resource>()
.ForMember(dest => dest.Id, opt => opt.Ignore())
.ForMember(dest => dest.CreatedAt, opt => opt.Ignore());
}
}
+25
View File
@@ -0,0 +1,25 @@
using AutoMapper;
using MetaCourse.Api.DTOs.Topics;
using MetaCourse.Api.DTOs.Resources;
using MetaCourse.Api.Entities;
namespace MetaCourse.Api.Mappings;
public class TopicProfile : Profile
{
public TopicProfile()
{
CreateMap<Topic, GetTopicDto>()
.ForMember(dest => dest.Resources, opt => opt.MapFrom(
src => src.TopicResources
.OrderBy(tr => tr.Position)
.Select(tr => tr.Resource)));
CreateMap<CreateTopicDto, Topic>()
.ForMember(dest => dest.Id, opt => opt.Ignore());
CreateMap<UpdateTopicDto, Topic>()
.ForMember(dest => dest.Id, opt => opt.Ignore())
.ForMember(dest => dest.CourseId, opt => opt.Ignore());
}
}
@@ -0,0 +1,14 @@
using AutoMapper;
using MetaCourse.Api.DTOs.UserCourses;
using MetaCourse.Api.Entities;
namespace MetaCourse.Api.Mappings;
public class UserCourseProfile : Profile
{
public UserCourseProfile()
{
CreateMap<UserCourse, GetEnrollmentDto>()
.ForMember(dest => dest.CourseTitle, opt => opt.MapFrom(src => src.Course.Title));
}
}
+17
View File
@@ -0,0 +1,17 @@
using AutoMapper;
using MetaCourse.Api.DTOs.Users;
using MetaCourse.Api.Entities;
namespace MetaCourse.Api.Mappings;
public class UserProfile : Profile
{
public UserProfile()
{
CreateMap<User, GetUserDto>();
CreateMap<RegisterUserDto, User>()
.ForMember(dest => dest.PasswordHash, opt => opt.Ignore())
.ForMember(dest => dest.Id, opt => opt.Ignore())
.ForMember(dest => dest.CreatedAt, opt => opt.Ignore());
}
}