public TeacherEntity GetTeacherById(int id)
        {
            TeacherEntity      result    = null;
            TeachersRepository teachRepo = new TeachersRepository();

            using (var uow = UnitOfWork.CreateUoW())
            {
                try
                {
                    var res = teachRepo.GetTeacherByID(id, uow);
                    result = res != null?EntitiesMapper.ToEntity(res) : null;
                }
                catch (Exception ex)
                {
                    DbLog.LogError("Error retrieving teacher " + id, ex);
                    throw ex;
                }
            }
            return(result);
        }
        public List <ResourceEntity> GetResourcesByPartialUsername(string partUsername)
        {
            List <ResourceEntity> result  = new List <ResourceEntity>();
            ResourcesRepository   resRepo = new ResourcesRepository();

            using (var uow = UnitOfWork.CreateUoW())
            {
                try
                {
                    var resList = resRepo.GetResourcesByPartialUsername(partUsername, uow);
                    result = resList.Select(x => EntitiesMapper.ToEntity(x)).ToList();
                }
                catch (Exception ex)
                {
                    DbLog.LogError("Error retrieving resources " + partUsername, ex);
                    throw ex;
                }
            }
            return(result);
        }
        public List <TeacherEntity> GetAllTeachers()
        {
            List <TeacherEntity> result    = new List <TeacherEntity>();
            TeachersRepository   teachRepo = new TeachersRepository();

            using (var uow = UnitOfWork.CreateUoW())
            {
                try
                {
                    var list = teachRepo.GetAllTeachers(uow);
                    result = list.Select(x => EntitiesMapper.ToEntity(x)).ToList();
                }
                catch (Exception ex)
                {
                    DbLog.LogError("Error retrieving all teachers", ex);
                    throw ex;
                }
            }
            return(result);
        }
        public ResourceEntity GetResourceById(int id)
        {
            ResourceEntity      result  = null;
            ResourcesRepository resRepo = new ResourcesRepository();

            using (var uow = UnitOfWork.CreateUoW())
            {
                try
                {
                    var res = resRepo.GetResourceByID(id, uow);
                    result = res != null?EntitiesMapper.ToEntity(res) : null;
                }
                catch (Exception ex)
                {
                    DbLog.LogError("Error retrieving resource " + id, ex);
                    throw ex;
                }
            }
            return(result);
        }
        public EnrollmentEntity GetEnrollmentById(int id)
        {
            EnrollmentEntity      result     = null;
            EnrollmentsRepository enrollRepo = new EnrollmentsRepository();

            using (var uow = UnitOfWork.CreateUoW())
            {
                try
                {
                    var res = enrollRepo.GetEnrollmentByID(id, uow);
                    result = res != null?EntitiesMapper.ToEntity(res) : null;
                }
                catch (Exception ex)
                {
                    DbLog.LogError("Error retrieving enrollment " + id, ex);
                    throw ex;
                }
            }
            return(result);
        }
        public List <EnrollmentEntity> GetAllenrollments()
        {
            List <EnrollmentEntity> result     = new List <EnrollmentEntity>();
            EnrollmentsRepository   enrollRepo = new EnrollmentsRepository();

            using (var uow = UnitOfWork.CreateUoW())
            {
                try
                {
                    var list = enrollRepo.GetAllEnrollments(uow);
                    result = list.Select(x => EntitiesMapper.ToEntity(x)).ToList();
                }
                catch (Exception ex)
                {
                    DbLog.LogError("Error retrieving all Enrollments", ex);
                    throw ex;
                }
            }
            return(result);
        }
        public List <ResourceEntity> GetAllResources()
        {
            List <ResourceEntity> result  = new List <ResourceEntity>();
            ResourcesRepository   resRepo = new ResourcesRepository();

            using (var uow = UnitOfWork.CreateUoW())
            {
                try
                {
                    var resList = resRepo.GetAllResources(uow);
                    result = resList.Select(x => EntitiesMapper.ToEntity(x)).ToList();
                }
                catch (Exception ex)
                {
                    DbLog.LogError("Error retrieving all resources", ex);
                    throw ex;
                }
            }
            return(result);
        }