Example #1
0
        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} با موفیت انجام شد"));
        }
Example #2
0
        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);
            }
        }
Example #3
0
 public StudentDto AddStudent(StudentDto dto)
 {
     return(_studentRepository.Insert(dto.ToEntity()).ToDto());
 }
Example #4
0
        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));
            }
        }