-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMappingProfile.cs
126 lines (123 loc) · 7.28 KB
/
MappingProfile.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using AutoMapper;
using SchedulingSystem.Controllers.Resources;
using SchedulingSystem.Core.Models;
namespace SchedulingSystem.Mapping
{
public class MappingProfile : Profile
{
public MappingProfile()
{
// API Resource to Domain
CreateMap<DepartmentResource, Department>();
CreateMap<CurriculumResource, Curriculum>();
CreateMap<SaveCourseResource, Course>();
CreateMap<BuildingResource, Building>();
CreateMap<SaveRoomResource, Room>();
CreateMap<SaveSectionResource, Section>();
CreateMap<SaveSectionResource, Section>();
CreateMap<InstructorResource, Instructor>();
CreateMap<SaveRoomResource, Room>()
.ForMember(r => r.Types, opt => opt.MapFrom(sr => sr.Types.Select(t => new RoomTypeAssignment { TypeId = t.TypeId, LabTypeId = t.LabTypeId })));
CreateMap<SaveRoomSectionAssignmentResource, CourseOfferingRoomAssignment>();
CreateMap<SaveAcademicYearResource, AcademicYear>();
CreateMap<SaveAcademicSemesterResource, AcademicSemester>();
CreateMap<SaveAssignmentResource, InstructorAssignment>();
CreateMap<SaveScheduleConfigurationResource, ScheduleConfiguration>();
CreateMap<SaveInstructorResource, Instructor>();
CreateMap<InstructorQueryResource, InstructorQuery>();
CreateMap<SaveBuildingResource, Building>();
CreateMap<SaveDepartmentResource, Department>();
CreateMap<CurriculumQueryResource, CurriculumQuery>();
CreateMap<CourseQueryResource, CourseQuery>();
CreateMap<SectionQueryResource, SectionQuery>();
CreateMap<RoomQueryResource, RoomQuery>();
CreateMap<CourseOfferingQueryResource, CourseOfferingQuery>();
CreateMap<ScheduleConfigurationQueryResource, ScheduleConfigurationQuery>();
CreateMap<ScheduleResource, Schedule>()
.ForMember(s => s.TimeTable, opt => opt.MapFrom(sr => sr.TimeTable));
CreateMap<AcademicSemesterResource, AcademicSemester>();
CreateMap<SectionResource, Section>()
.ForMember(x => x.Program, opt => opt.Ignore())
.ForMember(x => x.AdmissionLevel, opt => opt.Ignore());
CreateMap<SaveDayScheduleResource, DaySchedule>();
CreateMap<WeekDayResource, WeekDay>();
CreateMap<SaveDaySessionResource, DaySession>();
CreateMap<SaveScheduleEntryResource, ScheduleEntry>();
CreateMap<CourseResource, Course>();
CreateMap<AppUserResource, AppUser>();
CreateMap<RoomResource, Room>();
CreateMap<KeyValuePairResource, Type>();
CreateMap<SaveScheduleResource, Schedule>();
// Domain to API Resource
CreateMap<Department, DepartmentResource>();
CreateMap<Curriculum, CurriculumResource>();
CreateMap<Course, SaveCourseResource>();
CreateMap<Building, BuildingResource>();
CreateMap<Room, SaveRoomResource>()
.ForMember(x => x.Types, opt => opt.MapFrom(r => r.Types.Select(t => new RoomTypeAssignmentResource { TypeId = t.TypeId, LabTypeId = t.LabTypeId })));
CreateMap<Section, SaveSectionResource>();
CreateMap<Section, SectionResource>()
.ForMember(x => x.Schedules, opt => opt.MapFrom(s => s.Schedules))
.ForMember(x => x.Program, opt =>
opt.MapFrom(s => s.Program.Name ))
.ForMember(x => x.AdmissionLevel, opt =>
opt.MapFrom(s => s.AdmissionLevel.Name ));
CreateMap<Instructor, InstructorResource>();
CreateMap<Type, KeyValuePairResource>();
CreateMap<Room, RoomResource>();
CreateMap<RoomTypeAssignment, KeyValuePairResource>()
.ForMember(kvp => kvp.Id, opt => opt.MapFrom(rrt => rrt.Type.Id))
.ForMember(kvp => kvp.Name, opt => opt.MapFrom(rrt => rrt.Type.Name));
CreateMap<CourseOfferingRoomAssignment, CourseOfferingRoomAssignmentResource>();
CreateMap<AcademicYear, AcademicYearResource>();
CreateMap<AcademicSemester, AcademicSemesterResource>()
.ForMember(asr => asr.AcademicYear, opt => opt.MapFrom(s =>
new SaveAcademicYearResource
{
Id = s.AcademicYear.Id,
GcYear = s.AcademicYear.GcYear,
EtYear = s.AcademicYear.EtYear,
StartDate = s.AcademicYear.StartDate,
EndDate = s.AcademicYear.EndDate
}));
CreateMap<CourseOffering, CourseOfferingResource>()
.ForMember(co => co.SectionName, opt => opt.MapFrom(c => c.Section.Name));
CreateMap<InstructorAssignment, InstructorAssignmentResource>();
CreateMap<ScheduleConfiguration, ScheduleConfigurationResource>();
CreateMap<AdmissionLevel, KeyValuePairResource>();
CreateMap<ProgramType, KeyValuePairResource>();
CreateMap<Course, CourseResource>();
CreateMap<Schedule, ScheduleResource>();
CreateMap<DaySchedule, DayScheduleResource>();
CreateMap<WeekDay, WeekDayResource>();
CreateMap<DaySession, DaySessionResource>();
CreateMap<ScheduleEntry, ScheduleEntryResource>();
CreateMap<Schedule, SectionScheduleResource>();
CreateMap<WeekDay, WeekDayResource>();
CreateMap<AppUser, AppUserResource>()
.ForMember(aur => aur.FirstName, opt => opt.MapFrom(au => au.Contact.FirstName))
.ForMember(aur => aur.FatherName, opt => opt.MapFrom(au => au.Contact.FatherName))
.ForMember(aur => aur.GrandFatherName, opt => opt.MapFrom(au => au.Contact.GrandFatherName))
.ForMember(aur => aur.DepartmentId, opt => opt.MapFrom(au => au.Contact.DepartmentId))
.ForMember(aur => aur.Department, opt => opt.MapFrom(au => au.Contact.Department));
CreateMap<QueryResult<Instructor>, QueryResultResource<InstructorResource>>();
CreateMap<QueryResult<Curriculum>, QueryResultResource<CurriculumResource>>();
CreateMap<QueryResult<Course>, QueryResultResource<CourseResource>>();
CreateMap<QueryResult<Section>, QueryResultResource<SectionResource>>();
CreateMap<QueryResult<Room>, QueryResultResource<RoomResource>>();
CreateMap<QueryResult<CourseOffering>, QueryResultResource<CourseOfferingResource>>();
CreateMap<College, CollegeResource>();
CreateMap<Building, SaveBuildingResource>();
CreateMap<AppUser, DeptHeadResource>()
.ForMember(aur => aur.FirstName, opt => opt.MapFrom(au => au.Contact.FirstName))
.ForMember(aur => aur.FatherName, opt => opt.MapFrom(au => au.Contact.FatherName))
.ForMember(aur => aur.GrandFatherName, opt => opt.MapFrom(au => au.Contact.GrandFatherName));
CreateMap<LabType, KeyValuePairResource>();
CreateMap<Section, ListCourseOfferingSectionResource>();
}
}
}