예제 #1
0
        public async Task <IActionResult> PostRegisterTeacher(TeacherRegisterDto teacher,
                                                              ICollection <Guid> courses)
        {
            teacher.CourseIds = courses;
            if (!ModelState.IsValid)
            {
                return(RedirectToAction(
                           "GetRegisterTeacher",
                           routeValues: new { error = "Model State is not valid. " }
                           ));
            }

            var result = await _repo.RegisterTeacher(teacher);

            if (result.IsSuccess)
            {
                return(RedirectToAction(
                           "GetRegisterTeacher",
                           routeValues: new { info = result.Message }
                           ));
            }

            return(RedirectToAction(
                       "GetRegisterTeacher",
                       routeValues: new { error = result.Message }
                       ));
        }
예제 #2
0
        public async Task Add(TeacherRegisterDto teacherRegisterDto)
        {
            Teacher teacher = _mapper.Map <Teacher>(teacherRegisterDto);

            teacher.SecurityStamp = Guid.NewGuid().ToString();

            await _userManager.CreateAsync(teacher, teacherRegisterDto.Password);

            await _userManager.AddToRoleAsync(teacher, "Teacher");
        }
예제 #3
0
        public IActionResult Post(TeacherRegisterDto model)
        {
            var teacher = _mapper.Map <Teacher>(model);

            _repo.Add(teacher);
            if (_repo.SaveChanges())
            {
                return(Created($"/api/teacher/{model.Id}", _mapper.Map <TeacherDto>(teacher)));
            }

            return(BadRequest("Something is wrong"));
        }
예제 #4
0
        public IActionResult Post(TeacherRegisterDto teacherModel)
        {
            var teacher = _mapper.Map <Teacher>(teacherModel);

            _repository.Create(teacher);
            if (_repository.SaveChanges())
            {
                return(Created($"/api/teacher/{teacherModel.TeacherID}", _mapper.Map <TeacherDto>(teacher)));
            }

            return(BadRequest("Professor não cadastrado."));
        }
예제 #5
0
        public IActionResult Register([FromBody] TeacherRegisterDto data)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            if (_userRepository.EmailExists(data.Email))
            {
                ModelState.AddModelError("", "Email exists");
                return(BadRequest("Данный email уже зарегистрирован"));
            }
            User user = _userService.RegisterUser(data, UserType.Teacher);

            return(Ok(_mapper.Map <User, ProfileDto>(user)));
        }
예제 #6
0
        public async Task <IActionResult> Register(TeacherRegisterDto teacherRegisterDto)
        {
            Teacher teacher = _mapper.Map <Teacher>(teacherRegisterDto);

            teacher.SecurityStamp = Guid.NewGuid().ToString();
            teacher.UserName      = teacherRegisterDto.Email;

            var addUserResult = await _userManager.CreateAsync(teacher, teacherRegisterDto.Password);

            var addRoleResult = await _userManager.AddToRoleAsync(teacher, "Teacher");

            if (addUserResult.Succeeded && addRoleResult.Succeeded)
            {
                return(StatusCode(201));
            }

            return(BadRequest());
        }
예제 #7
0
        public IActionResult Put(int id, TeacherRegisterDto model)
        {
            var teacher = _repo.GetTeacherById(id, false);

            if (teacher == null)
            {
                BadRequest("Nothing found");
            }

            _mapper.Map(model, teacher);

            _repo.Update(teacher);
            if (_repo.SaveChanges())
            {
                return(Created($"/api/teacher/{model.Id}", _mapper.Map <TeacherDto>(teacher)));
            }

            return(BadRequest("Something is wrong"));
        }
예제 #8
0
        public IActionResult Put(int id, TeacherRegisterDto teacherModel)
        {
            var teacher = _repository.GetTeacherById(id);

            if (teacher == null)
            {
                return(BadRequest("Professor não encontrado."));
            }

            _mapper.Map(teacherModel, teacher);

            _repository.Update(teacher);
            if (_repository.SaveChanges())
            {
                return(Created($"/api/teacher/{teacherModel.TeacherID}", _mapper.Map <TeacherDto>(teacher)));
            }

            return(BadRequest("Aluno não atualizado."));
        }
예제 #9
0
        public async Task <RepoResponse <TeacherReturnDto> > RegisterTeacher(TeacherRegisterDto registerCreds)
        {
            var oldTeacher = await _context.Teachers
                             .AsNoTracking()
                             .FirstOrDefaultAsync(t => t.Email.ToLower() == registerCreds.Email.ToLower() ||
                                                  t.CardNumber.ToLower() == registerCreds.CardNumber.ToLower());

            if (oldTeacher != null)
            {
                return(new RepoResponse <TeacherReturnDto>()
                {
                    IsSuccess = false,
                    Message = _config["ErrorCodes:record_exists"]
                });
            }

            var newTeacherId = Guid.NewGuid();
            var newTeacher   = new Teacher()
            {
                Id             = newTeacherId,
                Name           = registerCreds.Name,
                CardNumber     = registerCreds.CardNumber,
                CVPath         = registerCreds.CVPath,
                Details        = registerCreds.Details,
                Email          = registerCreds.Email,
                Gender         = registerCreds.Gender,
                Password       = Helper.ComputeHash(registerCreds.Password),
                Role           = Role.Teacher,
                RegisterStatus = RegistrationStatus.Pending
            };

            var teacherCourses = new List <TeacherCourse>();

            foreach (var courseGuid in registerCreds.CourseIds)
            {
                teacherCourses.Add(
                    new TeacherCourse()
                {
                    CourseId  = courseGuid,
                    TeacherId = newTeacherId
                }
                    );
            }

            await _context.Teachers.AddAsync(newTeacher);

            await _context.TeacherCourses.AddRangeAsync(teacherCourses);

            var dbResult = await _context.SaveChangesAsync();

            if (dbResult > 0)
            {
                var addedTeacher = await _context.Teachers
                                   .AsNoTracking()
                                   .Select(t => new TeacherReturnDto()
                {
                    Id             = t.Id,
                    CardNumber     = t.CardNumber,
                    CVPath         = t.CVPath,
                    Details        = t.Details,
                    Email          = t.Email,
                    Gender         = t.Gender,
                    Name           = t.Name,
                    RegisterStatus = t.RegisterStatus
                })
                                   .FirstOrDefaultAsync(t => t.Id == newTeacher.Id);

                if (addedTeacher != null)
                {
                    return(new RepoResponse <TeacherReturnDto>()
                    {
                        Content = addedTeacher,
                        IsSuccess = true,
                        Message = _config["SuccessCodes:created"]
                    });
                }
            }

            return(new RepoResponse <TeacherReturnDto>()
            {
                IsSuccess = false,
                Message = _config["ErrorCodes:db_error"]
            });
        }
예제 #10
0
        public ActionResult RegisterNewTeacher(TeacherRegisterDto model)
        {
            var nationalCode = model.NationalCode;
            var person       = _db.Set <Person>().Include(p => p.User.Student).FirstOrDefault(p => p.NationalCode == nationalCode);


            if (person == null)
            {
                var newsteacher = new Teacher
                {
                    User = new User
                    {
                        Person = new Person
                        {
                            FirstName       = model.FirstName,
                            LastName        = model.LastName,
                            NationalCode    = model.NationalCode,
                            MobileNo        = model.CellPhoneNumber,
                            BirthDate       = model.BirthDateJalali.ToGeorgianDateTime(),
                            BirthDateJalali = model.BirthDateJalali,
                            SexId           = model.SexId,
                            FatherFirstName = model.FatherFirstName,
                        },
                        UserName = model.NationalCode,
                        Password = model.Password,
                        Status   = true
                    },
                    MaritalStatusId              = model.MaritalStatusId,
                    ReligionId                   = model.ReligionId,
                    EducationDegreeId            = model.EducationDegreeId,
                    RecruitmentTypeId            = model.RecruitmentTypeId,
                    MilitaryStatusId             = model.MilitaryStatusId,
                    EducationDegreeFieldName     = model.EducationDegreeFieldName,
                    EducationDegreeGrade         = model.EducationDegreeGrade,
                    EducationDegreeGetDateJalali = model.EducationDegreeGetDateJalali,
                    EducationDegreeGetDate       = model.EducationDegreeGetDateJalali.ToGeorgianDateTime(),
                    FatherName                   = model.FatherFirstName,

                    FreeAndOldSelectionDateJalali = model.FreeAndOldSelectionDateJalali,
                    FreeAndOldSelectionNumber     = model.FreeAndOldSelectionNumber,
                    HaveWorkExperience            = model.HaveWorkExperienceId > 0,
                    TeachExperienceInYear         = model.TeachExperienceInYear,
                    WorkExperienceInYear          = model.WorkExperienceInYear,
                    MidCareerTraining             = model.MidCareerTraining > 0,
                    InsuranceNumber = model.InsuranceNumber,
                    EducationDegreeUniversityName = model.EducationDegreeUniversityName,
                    ChildCount = model.ChildCount,
                };
                _db.Entry(newsteacher).State = EntityState.Added;
                _db.SaveChanges();
            }
            //else
            //{
            //    if (person.User.Student == null)
            //    {
            //        person.User.Student = new Student
            //        {
            //            ParentFirstName = model.ParentFirstName,
            //            ParentLastName = model.ParentLastName,
            //            CityOfBirthId = model.CityOfBirthId.Value,
            //            CellPhoneNumber = model.CellPhoneNumber,
            //            PhoneNumber = model.PhoneNumber,
            //            CityOfHomeId = model.CityOfLocationId.Value
            //        };
            //        _db.Entry(person).State = EntityState.Modified;
            //        _db.SaveChanges();
            //    }
            //    else
            //    {
            //        ModelState.AddModelError("", "دانش آموزی با این کد ملی از قبل وجود دارد. در صورتی که کد ملی را صحیح وارد نموده اید به بخش بازیابی رمز عبور مراجعه نمایید");
            //        return View(new StudentRegisterDto
            //        {

            //            Provinces = _db.Set<Province>().ToList().Select(p => new SelectListItem
            //            {
            //                Value = p.Id.ToString(),
            //                Text = p.Name
            //            }),
            //            Sexes = _db.Set<Sex>().ToList().Select(s => new SelectListItem
            //            {
            //                Text = s.Name,
            //                Value = s.Id.ToString()
            //            }),

            //        });
            //    }
            //}
            return(RedirectToAction("/Account/TeacherSignIn"));
        }