Skip to content
Snippets Groups Projects
Commit 8493c0e1 authored by esantangelo's avatar esantangelo
Browse files

commit

parent e6adb739
No related branches found
No related tags found
1 merge request!8Fix multi tenant
......@@ -30,20 +30,22 @@ namespace Tsi1.BusinessLayer.Services
{
var result = new ServiceResult<Course>();
var course = _mapper.Map<Course>(newCourse);
_context.Courses.Add(course);
try
{
await _context.SaveChangesAsync();
}
catch (DbUpdateException)
var existingCourse = await _context.Courses
.FirstOrDefaultAsync(x => x.Name == newCourse.Name && x.TenantId == newCourse.TenantId);
if (existingCourse != null)
{
result.HasError = true;
result.Message = string.Format(ErrorMessages.DuplicateCourseName, newCourse.Name);
return result;
}
var course = _mapper.Map<Course>(newCourse);
_context.Courses.Add(course);
await _context.SaveChangesAsync();
result.Data = course;
return result;
}
......@@ -109,25 +111,26 @@ namespace Tsi1.BusinessLayer.Services
return result;
}
var studentCourse = new StudentCourse
{
Course = course,
Student = user.Student
};
_context.StudentCourses.Add(studentCourse);
var existingStudentCourse = await _context.StudentCourses
.FirstOrDefaultAsync(x => x.StudentId == user.StudentId && x.CourseId == course.Id);
try
{
await _context.SaveChangesAsync();
}
catch (DbUpdateException)
if (existingStudentCourse != null)
{
result.HasError = true;
result.Message = string.Format(ErrorMessages.StudentCourseAlreadyExists, user.Username, course.Name);
return result;
}
var studentCourse = new StudentCourse
{
Course = course,
Student = user.Student
};
_context.StudentCourses.Add(studentCourse);
await _context.SaveChangesAsync();
return result;
}
......@@ -156,6 +159,16 @@ namespace Tsi1.BusinessLayer.Services
return result;
}
var existingProfessorCourse = await _context.ProfessorCourses
.FirstOrDefaultAsync(x => x.ProfessorId == user.ProfessorId && x.CourseId == course.Id);
if (existingProfessorCourse != null)
{
result.HasError = true;
result.Message = string.Format(ErrorMessages.ProfessorCourseAlreadyExists, user.Username, course.Name);
return result;
}
var professorCourse = new ProfessorCourse
{
Course = course,
......@@ -164,16 +177,7 @@ namespace Tsi1.BusinessLayer.Services
_context.ProfessorCourses.Add(professorCourse);
try
{
await _context.SaveChangesAsync();
}
catch (DbUpdateException)
{
result.HasError = true;
result.Message = string.Format(ErrorMessages.ProfessorCourseAlreadyExists, user.Username, course.Name);
return result;
}
await _context.SaveChangesAsync();
return result;
}
......
......@@ -30,21 +30,22 @@ namespace Tsi1.BusinessLayer.Services
{
var result = new ServiceResult<Forum>();
var forum = _mapper.Map<Forum>(newForum);
_context.Forums.Add(forum);
var existingForum = _context.Forums
.FirstOrDefaultAsync(x => x.Name == newForum.Name && x.CourseId == newForum.CourseId);
try
{
await _context.SaveChangesAsync();
}
catch (DbUpdateException)
if (existingForum != null)
{
result.HasError = true;
result.Message = string.Format(ErrorMessages.DuplicateForumName, newForum.Name);
return result;
}
var forum = _mapper.Map<Forum>(newForum);
_context.Forums.Add(forum);
await _context.SaveChangesAsync();
result.Data = forum;
return result;
......@@ -121,6 +122,16 @@ namespace Tsi1.BusinessLayer.Services
return result;
}
var existingForumUser = await _context.ForumUsers
.FirstOrDefaultAsync(x => x.ForumId == forum.Id && x.UserId == user.Id);
if (existingForumUser != null)
{
result.HasError = true;
result.Message = string.Format(ErrorMessages.DuplicateForumUser, user.Username, forum.Name);
return result;
}
var forumUser = new ForumUser
{
ForumId = forumId,
......@@ -129,16 +140,7 @@ namespace Tsi1.BusinessLayer.Services
_context.ForumUsers.Add(forumUser);
try
{
await _context.SaveChangesAsync();
}
catch (DbUpdateException)
{
result.HasError = true;
result.Message = string.Format(ErrorMessages.DuplicateForumUser, user.Username, forum.Name);
return result;
}
await _context.SaveChangesAsync();
return result;
}
......
......@@ -60,20 +60,20 @@ namespace Tsi1.BusinessLayer.Services
{
var result = new ServiceResult<TenantPreviewDto>();
var tenant = _mapper.Map<Tenant>(newTenant);
_context.Tenants.Add(tenant);
var existingTenant = await _context.Tenants.FirstOrDefaultAsync(x => x.Name == newTenant.Name);
try
{
await _context.SaveChangesAsync();
}
catch (DbUpdateException)
if (existingTenant != null)
{
result.HasError = true;
result.Message = string.Format(ErrorMessages.DuplicateTenantName, newTenant.Name);
return result;
}
var tenant = _mapper.Map<Tenant>(newTenant);
_context.Tenants.Add(tenant);
await _context.SaveChangesAsync();
result.Data = _mapper.Map<TenantPreviewDto>(tenant);
return result;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment