Skip to content

Commit 9ea3d73

Browse files
Automapper initialization, form relations remapped
Co-authored-by: Berk Çakar <berk.cakar@ug.bilkent.edu.tr>
1 parent 4d71f20 commit 9ea3d73

24 files changed

+1323
-109
lines changed

Backend/Backend.csproj

+14-3
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,29 @@
66
<ImplicitUsings>enable</ImplicitUsings>
77
</PropertyGroup>
88

9+
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
10+
<WarningLevel>4</WarningLevel>
11+
</PropertyGroup>
912
<ItemGroup>
1013
<PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="12.0.0" />
1114
<PackageReference Include="BCrypt.Net-Next" Version="4.0.3" />
1215
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="6.0.10" />
1316
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="6.0.10" />
14-
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="6.0.10">
15-
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
16-
<PrivateAssets>all</PrivateAssets>
17+
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="6.0.10">
18+
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
19+
<PrivateAssets>all</PrivateAssets>
1720
</PackageReference>
1821
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="6.0.10" />
1922
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.2.3" />
2023
<PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="6.25.0" />
24+
<PackageReference Include="AutoMapper" Version="12.0.0" />
2125
</ItemGroup>
2226

27+
<ItemGroup>
28+
<None Remove="AutoMapper" />
29+
<None Remove="Data\Profiles\" />
30+
</ItemGroup>
31+
<ItemGroup>
32+
<Folder Include="Data\Profiles\" />
33+
</ItemGroup>
2334
</Project>

Backend/Data/DataContext.cs

+27-15
Original file line numberDiff line numberDiff line change
@@ -23,39 +23,51 @@ protected override void OnModelCreating(ModelBuilder builder)
2323
builder.Entity<DomainUser>().Navigation(u => u.IdentityUser).AutoInclude();
2424
builder.Entity<AppUser>().Navigation(u => u.DomainUser).AutoInclude();
2525

26+
builder.Entity<CTEForm>().Navigation(c => c.TransferredCourseGroups).AutoInclude();
27+
builder.Entity<CTEForm>().Navigation(c => c.SubjectStudent).AutoInclude();
28+
builder.Entity<TransferredCourseGroup>().Navigation(c => c.TransferredCourses).AutoInclude();
29+
builder.Entity<PreApprovalForm>().Navigation(c => c.RequestedCourseGroups).AutoInclude();
30+
builder.Entity<PreApprovalForm>().Navigation(c => c.SubjectStudent).AutoInclude();
31+
builder.Entity<RequestedCourseGroup>().Navigation(c => c.RequestedCourses).AutoInclude();
32+
33+
builder.Entity<ExemptionRequestForm>().Navigation(c => c.SubjectStudent).AutoInclude();
34+
2635
builder.Entity<Student>().Navigation(s => s.Majors).AutoInclude();
2736
builder.Entity<Student>().Navigation(s => s.Minors).AutoInclude();
2837
builder.Entity<Student>().Navigation(s => s.CTEForms).AutoInclude();
2938
builder.Entity<Student>().Navigation(s => s.PreApprovalForms).AutoInclude();
39+
builder.Entity<Student>().Navigation(s => s.ExemptionRequestForms).AutoInclude();
3040
builder.Entity<ExchangeCoordinator>().Navigation(s => s.Department).AutoInclude();
3141

3242
builder.Entity<ExchangeCoordinator>().OwnsOne<DepartmentInfo>(c => c.Department);
3343

3444
builder.Entity<Student>().OwnsMany<DepartmentInfo>(c => c.Majors);
3545
builder.Entity<Student>().OwnsMany<DepartmentInfo>(c => c.Minors);
36-
builder.Entity<Student>().OwnsMany<CTEForm>(c => c.CTEForms);
37-
builder.Entity<Student>().OwnsMany<PreApprovalForm>(c => c.PreApprovalForms);
3846

3947
builder.Entity<Student>().OwnsOne<SemesterInfo>(c => c.PreferredSemester);
4048

4149
// FORMS
42-
builder.Entity<CTEForm>().Navigation(c => c.TransferredCourseGroups).AutoInclude();
43-
builder.Entity<TransferredCourseGroup>().Navigation(c => c.TransferredCourses).AutoInclude();
44-
builder.Entity<PreApprovalForm>().Navigation(c => c.RequestedCourseGroups).AutoInclude();
45-
builder.Entity<RequestedCourseGroup>().Navigation(c => c.RequestedCourses).AutoInclude();
50+
builder.Entity<CTEForm>().HasOne<Student>(c => c.SubjectStudent);
51+
builder.Entity<PreApprovalForm>().HasOne<Student>(c => c.SubjectStudent);
52+
builder.Entity<ExemptionRequestForm>().HasOne<Student>(c => c.SubjectStudent);
53+
54+
builder.Entity<CTEForm>().HasMany<TransferredCourseGroup>(c => c.TransferredCourseGroups);
55+
builder.Entity<CTEForm>().HasOne<Approval>(c => c.DeanApproval);
56+
builder.Entity<CTEForm>().HasOne<Approval>(c => c.ChairApproval);
57+
builder.Entity<CTEForm>().HasOne<Approval>(c => c.ExchangeCoordinatorApproval);
4658

47-
builder.Entity<CTEForm>().OwnsOne<Approval>(c => c.DeanApproval);
48-
builder.Entity<CTEForm>().OwnsOne<Approval>(c => c.ChairApproval);
49-
builder.Entity<CTEForm>().OwnsOne<Approval>(c => c.ExchangeCoordinatorApproval);
50-
builder.Entity<CTEForm>().OwnsMany<TransferredCourseGroup>(c => c.TransferredCourseGroups);
59+
builder.Entity<PreApprovalForm>().HasOne<Approval>(c => c.ExchangeCoordinatorApproval);
60+
builder.Entity<PreApprovalForm>().HasMany<RequestedCourseGroup>(c => c.RequestedCourseGroups);
5161

52-
builder.Entity<TransferredCourseGroup>().OwnsMany<TransferredCourse>(c => c.TransferredCourses);
53-
builder.Entity<TransferredCourseGroup>().OwnsOne<ExemptedCourse>(c => c.ExemptedCourse);
62+
builder.Entity<Student>().HasMany<CTEForm>(c => c.CTEForms);
63+
builder.Entity<Student>().HasMany<ExemptionRequestForm>(c => c.ExemptionRequestForms);
64+
builder.Entity<Student>().HasMany<PreApprovalForm>(c => c.PreApprovalForms);
5465

55-
builder.Entity<PreApprovalForm>().OwnsMany<RequestedCourseGroup>(c => c.RequestedCourseGroups);
66+
builder.Entity<TransferredCourseGroup>().HasOne<ExemptedCourse>(c => c.ExemptedCourse);
67+
builder.Entity<TransferredCourseGroup>().HasMany<TransferredCourse>(c => c.TransferredCourses);
5668

57-
builder.Entity<RequestedCourseGroup>().OwnsMany<RequestedCourse>(c => c.RequestedCourses);
58-
builder.Entity<RequestedCourseGroup>().OwnsOne<RequestedExemptedCourse>(c => c.RequestedExemptedCourse);
69+
builder.Entity<RequestedCourseGroup>().HasOne<RequestedExemptedCourse>(c => c.RequestedExemptedCourse);
70+
builder.Entity<RequestedCourseGroup>().HasMany<RequestedCourse>(c => c.RequestedCourses);
5971

6072
// builder.Entity<Student>().Property(m => m.Majors).HasConversion(
6173
// v => string.Join(',', v),

0 commit comments

Comments
 (0)