public static List <StudentHistoryModel> GetStudentHistory(Guid id)
 {
     try
     {
         List <StudentHistoryModel>      modelList         = new List <StudentHistoryModel>();
         IEnumerable <tblStudentHistory> historyEntityList = new List <tblStudentHistory>();
         historyEntityList = from ordered in _unitOfWork.StudentHistoryRepository.Get(filter: prop => prop.StudentID == id)
                             orderby ordered.Semester descending
                             select ordered;
         foreach (var history in historyEntityList)
         {
             tblCollege collegeEntity = new tblCollege();
             collegeEntity = _unitOfWork.CollegeRepository.Get(filter: prop => prop.CollegeID == history.CollegeID).FirstOrDefault();
             tblDepartment departmentEntity = new tblDepartment();
             departmentEntity = _unitOfWork.DepartmentRepository.Get(filter: prop => prop.DepartmentID == history.DepartmentID).FirstOrDefault();
             StudentHistoryModel newHistory = new StudentHistoryModel()
             {
                 StudentID      = history.StudentID,
                 CollegeName    = collegeEntity.CollegeName,
                 DepartmentName = departmentEntity.DepartmentName,
                 Semester       = history.Semester,
                 DateOfJoining  = history.DateOfJoining
             };
             modelList.Add(newHistory);
         }
         return(modelList);
     }
     catch (Exception e)
     {
         string currentFile = new System.Diagnostics.StackTrace(true).GetFrame(0).GetFileName();
         ErrorLogger.LogException(e, currentFile);
         List <StudentHistoryModel> modelList = new List <StudentHistoryModel>();
         return(modelList);
     }
 }
        public bool InsertCollege(CollegeDetailsModel collegeDetailsModel)
        {
            try
            {
                tblCollege entity = new tblCollege();

                entity = _unitOfWork.CollegeRepository.Get(filter: prop => prop.CollegeCode.Equals(collegeDetailsModel.CollegeCode)).FirstOrDefault();

                if (entity == null)
                {
                    Guid       collegeId  = Guid.NewGuid();
                    tblCollege newCollege = new tblCollege()
                    {
                        IsDeleted   = false,
                        CollegeID   = collegeId,
                        CollegeCode = collegeDetailsModel.CollegeCode,
                        CollegeName = collegeDetailsModel.CollegeName
                    };
                    _unitOfWork.CollegeRepository.Insert(newCollege);
                    _unitOfWork.Save();
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception e)
            {
                string currentFile = new System.Diagnostics.StackTrace(true).GetFrame(0).GetFileName();
                ErrorLogger.LogException(e, currentFile);
                return(false);
            }
        }
 public CollegeDetailsModel GetCollege(Guid ID)
 {
     try
     {
         tblCollege entity = new tblCollege();
         entity = _unitOfWork.CollegeRepository.GetByID(ID);
         CollegeDetailsModel model = new CollegeDetailsModel()
         {
             CollegeID   = entity.CollegeID,
             CollegeCode = entity.CollegeCode,
             CollegeName = entity.CollegeName
         };
         if (entity.IsDeleted)
         {
             return(new CollegeDetailsModel());
         }
         else
         {
             return(model);
         }
     }
     catch (Exception e)
     {
         string currentFile = new System.Diagnostics.StackTrace(true).GetFrame(0).GetFileName();
         ErrorLogger.LogException(e, currentFile);
         CollegeDetailsModel model = new CollegeDetailsModel();
         return(model);
     }
 }
        public static StudentModel GetStudent(Guid ID)
        {
            try
            {
                //throw new IndexOutOfRangeException();
                tblStudent studentEntity = _unitOfWork.StudentRepository.GetByID(ID);

                tblStudentHistory historyEntity = _unitOfWork.StudentHistoryRepository.Get(filter: prop => prop.StudentID == studentEntity.StudentID,
                                                                                           orderBy: prop => prop.OrderByDescending(d => d.Semester)).FirstOrDefault();

                if (historyEntity == null)
                {
                    return(new StudentModel());
                }
                tblCity       cityEntity       = _unitOfWork.CityRepository.Get(filter: prop => prop.CityID == studentEntity.CityID).FirstOrDefault();
                tblState      stateEntity      = _unitOfWork.StateRepository.Get(filter: prop => prop.StateID == cityEntity.StateID).FirstOrDefault();
                tblCollege    collegeEntity    = _unitOfWork.CollegeRepository.Get(filter: prop => prop.CollegeID == historyEntity.CollegeID).FirstOrDefault();
                tblDepartment departmentEntity = _unitOfWork.DepartmentRepository.Get(filter: prop => prop.DepartmentID == historyEntity.DepartmentID).FirstOrDefault();
                StudentModel  studentModel     = new StudentModel()
                {
                    StudentCode    = studentEntity.StudentCode,
                    StudentID      = studentEntity.StudentID,
                    FirstName      = studentEntity.FirstName,
                    LastName       = studentEntity.LastName,
                    ContactNumber  = studentEntity.ContactNumber,
                    EmailAddress   = studentEntity.EmailAddress,
                    DateOfBirth    = studentEntity.DateOfBirth,
                    Address        = studentEntity.Address,
                    DateOfJoining  = historyEntity.DateOfJoining,
                    Semester       = historyEntity.Semester,
                    CollegeID      = collegeEntity.CollegeID,
                    CollegeName    = collegeEntity.CollegeName,
                    DepartmentID   = departmentEntity.DepartmentID,
                    DepartmentName = departmentEntity.DepartmentName,
                    CityID         = cityEntity.CityID,
                    CityName       = cityEntity.CityName,
                    StateName      = stateEntity.StateName
                };
                return(studentModel);
            }
            catch (Exception e)
            {
                string currentFile = new System.Diagnostics.StackTrace(true).GetFrame(0).GetFileName();
                ErrorLogger.LogException(e, currentFile);
                StudentModel student = new StudentModel();
                return(student);
            }
        }
 public bool DeleteCollege(Guid ID)
 {
     try
     {
         tblCollege entityToDelete = _unitOfWork.CollegeRepository.GetByID(ID);
         if (entityToDelete == null)
         {
             return(false);
         }
         entityToDelete.IsDeleted = true;
         _unitOfWork.CollegeRepository.Update(entityToDelete);
         _unitOfWork.Save();
         return(true);
     }
     catch (Exception e)
     {
         string currentFile = new System.Diagnostics.StackTrace(true).GetFrame(0).GetFileName();
         ErrorLogger.LogException(e, currentFile);
         return(false);
     }
 }
        public bool UpdateCollege(CollegeDetailsModel collegeDetailsModel)
        {
            try
            {
                tblCollege entityToUpdate = new tblCollege();
                entityToUpdate = _unitOfWork.CollegeRepository.GetByID(collegeDetailsModel.CollegeID);
                if (entityToUpdate == null)
                {
                    return(false);
                }

                List <tblCollege> getAllCollegeCodes = _unitOfWork.CollegeRepository.Get().ToList();
                foreach (var entry in getAllCollegeCodes)
                {
                    //CollegeCode already exists
                    if (entry.CollegeCode == entityToUpdate.CollegeCode)
                    {
                        break;
                    }
                    if (entry.CollegeCode == collegeDetailsModel.CollegeCode)
                    {
                        return(false);
                    }
                }

                entityToUpdate.CollegeCode = collegeDetailsModel.CollegeCode;
                entityToUpdate.CollegeName = collegeDetailsModel.CollegeName;

                _unitOfWork.CollegeRepository.Update(entityToUpdate);
                _unitOfWork.Save();
                return(true);
            }
            catch (Exception e)
            {
                string currentFile = new System.Diagnostics.StackTrace(true).GetFrame(0).GetFileName();
                ErrorLogger.LogException(e, currentFile);
                return(false);
            }
        }