public async Task <IActionResult> UpdateCourse(int courseId, UpdateCourseDto dto) { var course = await _context.Courses.FindAsync(courseId); course.UpdateDetails(dto.Title, dto.Description); var validPeriod = ValidPeriod.Create(dto.BeginYear, dto.EndYear); if (validPeriod.IsFailure) { return(BadRequest(validPeriod.Error)); } course.ChangeValidPeriod(validPeriod.Value); course.ChangeCreditDetails(dto.CreditRecoveryAvailable, dto.CreditAdvancementAvailable, dto.CreditUnits); var lowGrade = _context.Grades.Find(dto.LowGradeId); var highGrade = _context.Grades.Find(dto.HighGradeId); var result = course.ChangeGradeRange(lowGrade, highGrade); if (result.IsFailure) { return(BadRequest(result.Error)); } var courseType = _context.CourseTypes.Find(dto.CourseTypeId); var courseLevel = _context.CourseLevels.Find(dto.CourseLevelId); course.ChangeCourseType(courseType, courseLevel); _context.SaveChanges(); return(Ok()); }
public async Task <IActionResult> CreateCourse(CreateCourseDto dto) { var validPeriod = ValidPeriod.Create(dto.BeginYear, dto.EndYear); if (validPeriod.IsFailure) { return(BadRequest(validPeriod.Error)); } var lowGrade = _context.Grades.Find(dto.LowGradeId); var highGrade = _context.Grades.Find(dto.HighGradeId); if (lowGrade == null || highGrade == null) { return(BadRequest("Invalid Grade range supplied")); } try { var course = new Course(dto.Title, dto.Description, validPeriod.Value, lowGrade, highGrade); _context.Courses.Attach(course); await _context.SaveChangesAsync(); } catch (Exception e) { return(BadRequest(e.Message)); } return(Ok()); }
public async Task <IActionResult> CreateProgram(CreateProgramDto dto) { var validPeriod = ValidPeriod.Create(dto.BeginYear, dto.EndYear); if (validPeriod.IsFailure) { return(BadRequest(validPeriod.Error)); } var cluster = await _context.Programs.SingleOrDefaultAsync(x => x.ProgramCode == dto.ProgramCode); if (cluster != null) { return(BadRequest("ProgramCode already exists")); } var newProgram = new Domain.Models.Program(dto.Name, dto.Description, dto.ProgramCode, validPeriod.Value, dto.TraditionalForMales, dto.TraditionalForFemales); _context.Programs.Attach(newProgram); await _context.SaveChangesAsync(); return(Ok()); }
public async Task <IActionResult> UpdateCredential(int id, UpdateCredentialDto dto) { var validPeriod = ValidPeriod.Create(dto.BeginYear, dto.EndYear); if (validPeriod.IsFailure) { return(BadRequest(validPeriod.Error)); } var credential = _context.Credentials.Find(id); credential.UpdateDetails(dto.Name, dto.Description, dto.IsReimbursable); credential.ChangeValidPeriod(validPeriod.Value); await _context.SaveChangesAsync(); return(Ok()); }
public async Task <IActionResult> UpdateCluster(int id, UpdateClusterDto dto) { var validPeriod = ValidPeriod.Create(dto.BeginYear, dto.EndYear); if (validPeriod.IsFailure) { return(BadRequest(validPeriod.Error)); } var cluster = _context.Clusters.Find(id); cluster.UpdateDetails(dto.Name, dto.Description); cluster.ChangeValidPeriod(validPeriod.Value); await _context.SaveChangesAsync(); return(Ok()); }
public async Task <IActionResult> UpdateProgram(int id, UpdateProgramDto dto) { var validPeriod = ValidPeriod.Create(dto.BeginYear, dto.EndYear); if (validPeriod.IsFailure) { return(BadRequest(validPeriod.Error)); } var program = _context.Programs.Find(id); program.UpdateDetails(dto.Name, dto.Description, dto.TraditionalForMales, dto.TraditionalForFemales); program.ChangeValidPeriod(validPeriod.Value); await _context.SaveChangesAsync(); return(Ok()); }
public async Task <IActionResult> AssignProgram(int courseId, AssignProgramDto dto) { var course = await _context.Courses .Include(x => x.ProgramAssignments) .SingleOrDefaultAsync(x => x.Id == courseId); var program = _context.Programs.Find(dto.ProgramId); var validPeriod = ValidPeriod.Create(dto.BeginYear, dto.EndYear); if (validPeriod.IsFailure) { return(BadRequest(validPeriod.Error)); } course.AssignProgram(program, validPeriod.Value); _context.SaveChanges(); return(Ok()); }
public async Task <IActionResult> CreateCredential(CreateCredentialDto dto) { var validPeriod = ValidPeriod.Create(dto.BeginYear, dto.EndYear); if (validPeriod.IsFailure) { return(BadRequest(validPeriod.Error)); } var cluster = await _context.Credentials.SingleOrDefaultAsync(x => x.CredentialCode == dto.CredentialCode); if (cluster != null) { return(BadRequest("CredentialCode already exists")); } var newCluster = new Credential(dto.Name, dto.Description, dto.CredentialCode, validPeriod.Value, dto.IsReimbursable); _context.Credentials.Attach(newCluster); await _context.SaveChangesAsync(); return(Ok()); }