Esempio n. 1
0
        public async Task <IActionResult> Register(StudentForRegisterDto studentForRegisterDto)
        {
            if (studentForRegisterDto == null)
            {
                return(BadRequest());
            }

            if (await _repo.IsUserExists(studentForRegisterDto.MobileNo))
            {
                return(BadRequest("User already Exist"));
            }

            if (!await _repo.IsExistClass(studentForRegisterDto.ClassId))
            {
                return(BadRequest("Class Doesn't Exist"));
            }

            var userToCreate = _mapper.Map <Students>(studentForRegisterDto);

            var stClass = await _repo.GetClassById(studentForRegisterDto.ClassId);

            userToCreate.ClassName = stClass.Name;
            userToCreate.RoleId    = 1; //Role 1 means student

            var createdUser = await _repo.Register(userToCreate, studentForRegisterDto.Password);

            /* var userToReturn = _mapper.Map<UserForDetailedDto>(userToCreate);
             *
             * return CreatedAtRoute("GetUser", new{Controller = "Users", id =userToCreate.Id}, userToReturn); */

            return(Ok());
        }
Esempio n. 2
0
        public async Task <IActionResult> RegisterStudent(StudentForRegisterDto studentForRegisterDto)
        {
            studentForRegisterDto.Username = studentForRegisterDto.Username;
            if (await _repository.UserExists(studentForRegisterDto.Username))
            {
                return(BadRequest("Użytkownik o takiej nazwie już istnieje !"));
            }
            var schoolClass = _context.Classes.FirstOrDefault(x => x.Name == studentForRegisterDto.SchoolClass);

            if (schoolClass == null)
            {
                return(BadRequest("Nie ma takiej klasy"));
            }
            var studentToCreate = new Student
            {
                Username      = studentForRegisterDto.Username,
                FirstName     = studentForRegisterDto.FirstName,
                LastName      = studentForRegisterDto.LastName,
                BirthDate     = studentForRegisterDto.BirthDate,
                Address       = studentForRegisterDto.Address,
                Phone         = studentForRegisterDto.Phone,
                SchoolClassID = schoolClass.ClassID,
                UserRole      = "Student"
            };

            var createdUser = await _repository.Register(studentToCreate, studentForRegisterDto.Password);

            return(StatusCode(201));
        }
Esempio n. 3
0
        public async Task <IActionResult> StartExam(string Id, StudentForRegisterDto studentForRegisterDto)
        {
            var studentToTest = await _context.StudentToTests
                                .Include(t => t.Test)
                                .FirstOrDefaultAsync(s => s.Email == studentForRegisterDto.Email &&
                                                     s.Id == Id);

            //Дали съществува тест за решаване
            if (studentToTest.Test == null)
            {
                return(NotFound());
            }

            //Проверка дали има достъп до теста
            if (studentToTest == null)
            {
                return(BadRequest("You do not have permissions to make this test"));
            }

            //Дали вече го е решавал
            var checkStudent = await(from stud in _context.Students
                                     join exam in _context.Exams on stud.Id equals exam.StudentId
                                     join question in _context.TestQuestions on exam.TestQuestionId equals question.Id
                                     join tet in _context.Tests on question.TestId equals tet.Id
                                     join stt in _context.StudentToTests on tet.Id equals stt.TestId
                                     where stt.Id == Id
                                     select true).FirstOrDefaultAsync();

            if (checkStudent)
            {
                return(BadRequest("You have already done this test"));
            }

            //Вземане на данните за студентът от ipify.org
            var studentIp = _repo.GetUserIP();

            //Client PC IP
            string hostName = Dns.GetHostName(); // Retrive the Name of HOST
            //Get the IP
            string LocalIP = Dns.GetHostByName(hostName).AddressList[1].ToString();

            //Мапване на имената и данните от ipify.org
            var studentForAdd = _mapper.Map <Student>(studentIp);

            studentForAdd.LocalIP       = LocalIP;
            studentForAdd.StudentToTest = studentToTest;

            //Запис
            await _context.Students.AddAsync(studentForAdd);

            if (await _context.SaveChangesAsync() > 0)
            {
                Response.AddExam(studentForAdd.Id, studentToTest.TestId, Id);

                return(Ok(studentToTest.Test.Time));
            }

            return(NotFound());
        }
        public async Task <IActionResult> AddStudent(StudentForRegisterDto studentForRegister)
        {
            var student = _mapper.Map <Student>(studentForRegister);

            _repo.Add(student);

            if (await _repo.SaveAll())
            {
                return(Ok(student));
            }

            throw new Exception("Coś się nie udało podczas dodawania nowego studenta.");
        }
Esempio n. 5
0
        public async Task <IActionResult> Register(StudentForRegisterDto studentForRegisterDto)
        {
            studentForRegisterDto.matNo = studentForRegisterDto.matNo.ToLower();
            if (await _repo.StudentExist(studentForRegisterDto.matNo))
            {
                return(BadRequest("This Matriculation number already exist, it can't be re-assigned"));
            }
            var studentToCreate = _mapper.Map <Student>(studentForRegisterDto);
            var createStudent   = await _repo.Register(studentToCreate, studentForRegisterDto.password);

            var studentToReturn = _mapper.Map <StudentForDetailedDto>(createStudent);

            return(CreatedAtRoute("GetStudent", new { controller = "Students", id = createStudent.Id }, studentToReturn));
        }
        public async Task <IActionResult> Register(StudentForRegisterDto studentForRegisterDto)
        {
            studentForRegisterDto.Username = studentForRegisterDto.Username.ToLower();
            if (await _repo.UserExists(studentForRegisterDto.Username))
            {
                return(BadRequest("Username already exists"));
            }

            var studentToCreate = new Student
            {
                Username = studentForRegisterDto.Username
            };

            var createdTeacher = await _repo.Register(studentToCreate, studentForRegisterDto.Password);

            return(StatusCode(201));
        }
Esempio n. 7
0
        public async Task <IActionResult> Register(StudentForRegisterDto studentForRegisterDto, string password)
        {
            studentForRegisterDto.StudentId = studentForRegisterDto.StudentId.ToLower();

            if (await _repo.UserExists(studentForRegisterDto.StudentId))
            {
                return(BadRequest("Student Already Exist"));
            }

            var studentToCreate = new Student
            {
                StudentId = studentForRegisterDto.StudentId
            };

            var createdStudent = await _repo.Register(studentToCreate, studentForRegisterDto.Password);

            return(StatusCode(201));
        }
Esempio n. 8
0
        public async Task <IActionResult> StudentRegister(StudentForRegisterDto userForRegisterDto)
        {
            // validate request

            userForRegisterDto.Username = userForRegisterDto.Username.ToLower();

            if (await _studentRepo.UserExists(userForRegisterDto.Username))
            {
                return(BadRequest("Username already exists"));
            }

            Random random            = new Random();
            var    randomPhotoNumber = random.Next(1, 100);

            var userToCreate = new Student
            {
                Username       = userForRegisterDto.Username,
                Name           = userForRegisterDto.Name,
                Surname        = userForRegisterDto.Surname,
                PhotoURL       = "https://randomuser.me/api/portraits/men/" + randomPhotoNumber + ".jpg",
                Created        = DateTime.Now,
                EnrollmentDate = DateTime.Now
            };

            var createdUser = await _studentRepo.Register(userToCreate, userForRegisterDto.Password);

            // role
            var r = _context.Roles.FirstOrDefault(x => x.Name == "Student");

            if (r != null)
            {
                var sr = new StudentRole {
                    Student = createdUser, Role = r
                };
                _context.StudentRoles.AddAsync(sr).Wait();
                _context.SaveChangesAsync().Wait();
            }
            //

            return(StatusCode(201));
        }