public async Task <JsonResult> DeleteDetailClass([FromBody] ClassDetailDto dto) { WebApiSimpleResponse <ClassDetail> res; try { if (dto == null) { throw new Exception("Entity not found"); } var detailClassEntity = _classDetailRepository.GetAll().FirstOrDefault(x => x.Id == dto.ClassDetailId); if (detailClassEntity == null) { throw new Exception("Invalid detail class is selected"); } var studentsInClass = _classDetailStudentRepository.GetAll() .Where(x => x.ClassDetailId == dto.ClassDetailId); if (studentsInClass.Count() > 0) { throw new Exception("The given class has some students"); } await _classDetailRepository.Delete(new ClassDetail { Id = dto.ClassDetailId }); res = new WebApiSimpleResponse <ClassDetail> { Result = detailClassEntity, Message = ResponseMessage.OperationSucceeded.GetDescription() }; } catch (Exception ex) { Logger.ErrorException(ex.Message, ex); res = new WebApiSimpleResponse <ClassDetail> { ErrorFlag = true, Message = ResponseMessage.OperationFailed.GetDescription() }; } return(new JsonResult(res)); }
public async Task <JsonResult> SaveDetailClass([FromBody] ClassDetailDto dto) { WebApiSimpleResponse <ClassDetail> res; try { if (dto == null) { throw new Exception("Entity not found"); } var masterClassEntity = _classMasterRepository.GetAll().FirstOrDefault(x => x.Id == dto.ClassMasterId); if (masterClassEntity == null) { throw new Exception("Master class not found"); } var detailClassEntity = await _classDetailRepository.Insert(new ClassDetail { ClassMasterId = dto.ClassMasterId, CreationDate = DateTime.Now, ModificationDate = DateTime.Now }); res = new WebApiSimpleResponse <ClassDetail> { Result = detailClassEntity, Message = ResponseMessage.OperationSucceeded.GetDescription() }; } catch (Exception ex) { Logger.ErrorException(ex.Message, ex); res = new WebApiSimpleResponse <ClassDetail> { ErrorFlag = true, Message = ResponseMessage.OperationFailed.GetDescription() }; } return(new JsonResult(res)); }
public async Task <JsonResult> DeleteMasterClass([FromBody] ClassMasterDto dto) { WebApiSimpleResponse <ClassMasterDto> res; try { if (dto == null) { var ex = new Exception("Entity not found"); throw ex; } var entity = new ClassMaster { Id = dto.Id }; var doesHaveDetailClass = _classDetailRepository.GetAll().Where(x => x.ClassMasterId == dto.Id); if (doesHaveDetailClass.Count() > 0) { throw new Exception("The selected master class contains detail class(es)!"); } await _classMasterRepository.Delete(entity); res = new WebApiSimpleResponse <ClassMasterDto> { Message = ResponseMessage.OperationSucceeded.GetDescription() }; } catch (Exception ex) { Logger.ErrorException(ex.Message, ex); res = new WebApiSimpleResponse <ClassMasterDto> { ErrorFlag = true, Message = ResponseMessage.OperationFailed.GetDescription() }; } return(new JsonResult(res)); }
public JsonResult GetStudentById(int id) { WebApiSimpleResponse <StudentDto> res; try { var studentEntity = _studentRepository.GetAll().FirstOrDefault(x => x.Id == id); if (studentEntity == null) { throw new Exception("Student not found"); } var dto = new StudentDto { Id = studentEntity.Id, FirstName = studentEntity.FirstName, LastName = studentEntity.LastName, Age = studentEntity.Age, Gpa = studentEntity.Gpa }; res = new WebApiSimpleResponse <StudentDto> { Result = dto, Message = ResponseMessage.OperationSucceeded.GetDescription() }; } catch (Exception ex) { Logger.ErrorException(ex.Message, ex); res = new WebApiSimpleResponse <StudentDto> { ErrorFlag = true, Message = ResponseMessage.OperationFailed.GetDescription() }; } return(new JsonResult(res)); }
public async Task <JsonResult> DeleteStudent([FromBody] StudentDto dto) { WebApiSimpleResponse <Student> res; try { if (dto == null) { throw new Exception("Entity not found"); } var isEnrolledInAnyClass = _classDetailStudentRepository.GetAll().Where(x => x.StudentId == dto.Id); if (isEnrolledInAnyClass.Count() > 0) { throw new Exception("The student is already enrolled in (a) class(es)!"); } await _studentRepository.Delete(new Student { Id = dto.Id }); res = new WebApiSimpleResponse <Student> { Message = ResponseMessage.OperationSucceeded.GetDescription() }; } catch (Exception ex) { Logger.ErrorException(ex.Message, ex); res = new WebApiSimpleResponse <Student> { ErrorFlag = true, Message = ResponseMessage.OperationFailed.GetDescription() }; } return(new JsonResult(res)); }
public JsonResult GetMasterClass(int id) { WebApiSimpleResponse <ClassMasterDto> res; try { var classMasterEntity = _classMasterRepository.GetAll().FirstOrDefault(x => x.Id == id); if (classMasterEntity == null) { var ex = new Exception("Class not found"); throw ex; } var resDto = new ClassMasterDto { Id = classMasterEntity.Id, Classname = classMasterEntity.ClassName, Location = classMasterEntity.Location, TeacherName = classMasterEntity.TeacherName, }; res = new WebApiSimpleResponse <ClassMasterDto> { Result = resDto, Message = ResponseMessage.OperationSucceeded.GetDescription() }; } catch (Exception ex) { Logger.ErrorException(ex.Message, ex); res = new WebApiSimpleResponse <ClassMasterDto> { ErrorFlag = true, Message = ResponseMessage.OperationFailed.GetDescription() }; } return(new JsonResult(res)); }
public async Task <JsonResult> UpdateMasterClass([FromBody] ClassMasterDto dto) { WebApiSimpleResponse <ClassMasterDto> res; try { if (dto == null) { var ex = new Exception("Entity not found"); throw ex; } var entity = new ClassMaster { Id = dto.Id, ClassName = dto.Classname, Location = dto.Location, TeacherName = dto.TeacherName }; await _classMasterRepository.Update(entity); res = new WebApiSimpleResponse <ClassMasterDto> { Message = ResponseMessage.OperationSucceeded.GetDescription() }; } catch (Exception ex) { Logger.ErrorException(ex.Message, ex); res = new WebApiSimpleResponse <ClassMasterDto> { ErrorFlag = true, Message = ResponseMessage.OperationFailed.GetDescription() }; } return(new JsonResult(res)); }
public async Task <JsonResult> UpdateStudent([FromBody] StudentDto dto) { WebApiSimpleResponse <Student> res; try { if (dto == null) { throw new Exception("Entity not found"); } await _studentRepository.Update(new Student { Id = dto.Id, Age = dto.Age, FirstName = dto.FirstName, LastName = dto.LastName, Gpa = dto.Gpa, }); res = new WebApiSimpleResponse <Student> { Message = ResponseMessage.OperationSucceeded.GetDescription() }; } catch (Exception ex) { Logger.ErrorException(ex.Message, ex); res = new WebApiSimpleResponse <Student> { ErrorFlag = true, Message = ResponseMessage.OperationFailed.GetDescription() }; } return(new JsonResult(res)); }
public async Task <JsonResult> RemoveStudentsFromDetailClass([FromBody] ClassDetailDto dto) { WebApiSimpleResponse <ClassMasterDto> res; try { if (dto == null) { throw new Exception("Entity not found"); } var detailClassEntity = _classDetailRepository.GetAll().FirstOrDefault(x => x.Id == dto.ClassDetailId); if (detailClassEntity == null) { throw new Exception("Detail class not found"); } if (dto.StudentDtos == null || dto.StudentDtos.Count <= 0) { throw new Exception("No student is selcted!"); } var toBeRemovedEntities = new List <ClassDetailStudent>(); foreach (var studentDto in dto.StudentDtos) { var studentEntity = _studentRepository.GetAll().FirstOrDefault(x => x.Id == studentDto.Id); if (studentEntity == null) { throw new Exception("Student not found"); } var detailClassStudentEntity = _classDetailStudentRepository.GetAll() .FirstOrDefault(x => x.ClassDetailId == detailClassEntity.Id && x.StudentId == studentDto.Id); if (detailClassStudentEntity == null) { throw new Exception("The given student is not registered in the given class"); } toBeRemovedEntities.Add(detailClassStudentEntity); } foreach (var classDetailStudent in toBeRemovedEntities) { await _classDetailStudentRepository.Delete(classDetailStudent); } res = new WebApiSimpleResponse <ClassMasterDto> { Message = ResponseMessage.OperationSucceeded.GetDescription() }; } catch (Exception ex) { Logger.ErrorException(ex.Message, ex); res = new WebApiSimpleResponse <ClassMasterDto> { ErrorFlag = true, Message = ResponseMessage.OperationFailed.GetDescription() }; } return(new JsonResult(res)); }
public async Task <JsonResult> AddStudentsToDetailClass([FromBody] ClassDetailDto dto) { WebApiSimpleResponse <ClassDetailStudent> res; try { if (dto == null) { throw new Exception("Entity not found"); } if (dto.StudentDtos == null || dto.StudentDtos.Count <= 0) { throw new Exception("No student is selcted!"); } var detailClassEntity = _classDetailRepository.GetAll().FirstOrDefault(x => x.Id == dto.ClassDetailId); if (detailClassEntity == null) { throw new Exception("Detail class not found"); } var detailClassStudents = _classDetailStudentRepository.GetAll().Where(x => x.ClassDetailId == dto.ClassDetailId); var toBeSavedEntities = new List <ClassDetailStudent>(); var newStudents = new List <Student>(); foreach (var studentDto in dto.StudentDtos) { var studentEntity = _studentRepository.GetAll().FirstOrDefault(x => x.Id == studentDto.Id); if (studentEntity == null) { throw new Exception("Student not found"); } var detailClassStudentEntity = detailClassStudents.FirstOrDefault(x => x.StudentId == studentDto.Id); if (detailClassStudentEntity != null) { throw new Exception("The given student is already registered in the given class"); } var doesStudentWithSameSurnameExist = detailClassStudents.Count(x => x.Student.LastName == studentEntity.LastName); if (doesStudentWithSameSurnameExist > 0) { throw new Exception("Students with duplicate surnames in the same class!"); } var toBeSavedDuplicateSurname = newStudents.FirstOrDefault(x => x.LastName == studentEntity.LastName); if (toBeSavedDuplicateSurname != null) { throw new Exception("Students with duplicate surnames in the same class!"); } toBeSavedEntities.Add(new ClassDetailStudent { StudentId = studentDto.Id, ClassDetailId = detailClassEntity.Id, CreationDate = DateTime.Now, ModificationDate = DateTime.Now }); newStudents.Add(studentEntity); } foreach (var classDetailStudent in toBeSavedEntities) { await _classDetailStudentRepository.Insert(classDetailStudent); } res = new WebApiSimpleResponse <ClassDetailStudent> { Message = ResponseMessage.OperationSucceeded.GetDescription() }; } catch (Exception ex) { Logger.ErrorException(ex.Message, ex); res = new WebApiSimpleResponse <ClassDetailStudent> { ErrorFlag = true, Message = ResponseMessage.OperationFailed.GetDescription() }; } return(new JsonResult(res)); }
public JsonResult GetDetailClass(int masterClassId) { WebApiSimpleResponse <ClassDetailDto> res; try { var classMasterEntity = _classMasterRepository.GetAll().FirstOrDefault(x => x.Id == masterClassId); if (classMasterEntity == null) { var ex = new Exception("Class not found"); throw ex; } var classDetailEntity = _classDetailRepository.GetAll().FirstOrDefault(x => x.ClassMasterId == masterClassId); if (classDetailEntity == null) { var ex = new Exception("Class not found"); throw ex; } var classDetailStudentEntity = _classDetailStudentRepository.GetAll() .Where(x => x.ClassDetailId == classDetailEntity.Id).Select(x => x.Student).ToList(); var lst = new ClassDetailDto { ClassDetailId = classDetailEntity.Id, ClassName = classMasterEntity.ClassName, ClassMasterId = classMasterEntity.Id, StudentDtos = new List <StudentDto>() }; if (classDetailStudentEntity.Count > 0) { foreach (var classDetailStudent in classDetailStudentEntity) { lst.StudentDtos.Add(new StudentDto { Id = classDetailStudent.Id, LastName = classDetailStudent.LastName, FirstName = classDetailStudent.FirstName, Gpa = classDetailStudent.Gpa, Age = classDetailStudent.Age }); } } res = new WebApiSimpleResponse <ClassDetailDto> { Result = lst, Message = ResponseMessage.OperationSucceeded.GetDescription() }; } catch (Exception ex) { Logger.ErrorException(ex.Message, ex); res = new WebApiSimpleResponse <ClassDetailDto> { ErrorFlag = true, Message = ResponseMessage.OperationFailed.GetDescription() }; } return(new JsonResult(res)); }