Пример #1
0
        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));
        }
Пример #2
0
        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));
        }
Пример #3
0
        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));
        }
Пример #4
0
        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));
        }
Пример #5
0
        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));
        }
Пример #6
0
        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));
        }
Пример #7
0
        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));
        }
Пример #8
0
        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));
        }
Пример #9
0
        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));
        }
Пример #10
0
        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));
        }
Пример #11
0
        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));
        }