public async Task <IActionResult> RegisterStudent(StudentDto studentDto, [FromHeader] CancellationToken cancellationToken) { var existsStudentCode = await _studentService.GetByStudentNumberAsync(cancellationToken, studentDto.UserName); if (existsStudentCode != null) { return(BadRequest("شماره دانشجویی تکراری است")); } var existsStudentId = await _userManager.FindByIdAsync(studentDto.Id); if (existsStudentId != null) { return(BadRequest("این دانشجو از قبل موجود است")); } var existsStudentUserName = await _userManager.FindByNameAsync(studentDto.UserName); if (existsStudentUserName != null) { return(BadRequest("این شماره دانشجویی قبلا ثبت شده است")); } var user = new User { UserName = studentDto.UserName, FullName = studentDto.FullName }; var result = await _userManager.CreateAsync(user, "111111"); if (result != IdentityResult.Success) { return(BadRequest("مشکلی در ثبت نام به وجود آمده است")); } var student = studentDto.ToEntity(); studentDto.UserId = user.Id; studentDto.EntryYear = int.Parse(studentDto.UserName.Substring(0, 2)); var studentResult = await _studentService.AddAsync(cancellationToken, studentDto); if (studentResult == AddAsyncStatus.Exists) { return(BadRequest("این دانشجو از قبل موجود بوده است")); } if (studentResult == AddAsyncStatus.Bad) { return(BadRequest("مشکلی در ثبت نام به وجود آمده است")); } var roleResult = await _userManager.AddToRoleAsync(user, "Student"); if (roleResult != IdentityResult.Success) { return(BadRequest("مشکلی در ثبت نام به وجود آمده است")); } return(Ok($"ثبت نام {user.FullName} با موفیت انجام شد")); }
public async Task <AddAsyncStatus> AddAsync(CancellationToken cancellationToken, StudentDto studentDto) { try { var model = await _repository.TableNoTracking.Where(c => c.Id == studentDto.Id || c.User.UserName == studentDto.UserName).SingleOrDefaultAsync(cancellationToken); if (model != null) { return(AddAsyncStatus.Exists); } var student = studentDto.ToEntity(); await _repository.AddAsync(student, cancellationToken); return(AddAsyncStatus.Ok); } catch (Exception) { return(AddAsyncStatus.Bad); } }
public StudentDto AddStudent(StudentDto dto) { return(_studentRepository.Insert(dto.ToEntity()).ToDto()); }
public async Task <IActionResult> Create(StudentDto studentDto, [FromHeader] CancellationToken cancellationToken) { try { var existsStudentCode = await _studentService.GetByStudentNumberAsync(cancellationToken, studentDto.UserName); if (existsStudentCode != null) { TempData["Error"] = "شماره دانشجویی تکراری است"; return(View(studentDto)); } var existsStudentId = await _userManager.FindByIdAsync(studentDto.Id); if (existsStudentId != null) { TempData["Error"] = "این دانشجو از قبل موجود است"; return(View(studentDto)); } var existsStudentUserName = await _uRepository.TableNoTracking.Where(c => c.UserName == studentDto.UserName).SingleOrDefaultAsync(cancellationToken); if (existsStudentUserName != null) { TempData["Error"] = "این شماره دانشجویی قبلا ثبت شده است"; return(View(studentDto)); } var stStatus = studentDto.UserName.Substring(6, 2); var user = new User { UserName = studentDto.UserName, FullName = studentDto.FullName }; var result = await _userManager.CreateAsync(user, studentDto.UserName); if (result != IdentityResult.Success) { TempData["Error"] = "مشکلی در ثبت نام به وجود آمده است"; return(View(studentDto)); } var student = studentDto.ToEntity(); studentDto.UserId = user.Id; studentDto.EntryYear = int.Parse(studentDto.UserName.Substring(0, 2)); if (stStatus == "11") { studentDto.StudentStatus = Common.Enums.StudentStatus.Daily; } else { studentDto.StudentStatus = Common.Enums.StudentStatus.Nightly; } var studentResult = await _studentService.AddAsync(cancellationToken, studentDto); if (studentResult == AddAsyncStatus.Exists) { TempData["Error"] = "این دانشجو از قبل موجود بوده است"; return(View(studentDto)); } if (studentResult == AddAsyncStatus.Bad) { TempData["Error"] = "مشکلی در ثبت نام به وجود آمده است"; return(View(studentDto)); } var roleResult = await _userManager.AddToRoleAsync(user, "Student"); if (roleResult != IdentityResult.Success) { TempData["Error"] = "مشکلی در ثبت نام به وجود آمده است"; return(View(studentDto)); } TempData["Success"] = $"ثبت نام {user.FullName} با موفیت انجام شد"; return(LocalRedirect("/Admin/Student/Index")); } catch { TempData["Error"] = "لطفا در وارد کردن اطلاعات دقت نمایید"; return(View(studentDto)); } }