예제 #1
0
        public async Task <ThesisDTO> CreateThesisIfNeeded(string professorId)
        {
            try
            {
                ThesisDTO exists = await _context.Theses
                                   .Where(t => t.Professor.Id == professorId && t.Title == null)
                                   .Include(t => t.Professor)
                                   .FirstOrDefaultAsync();

                if (exists != null)
                {
                    return(exists);
                }
                FacultyProfessor prof = new FacultyProfessor {
                    Id = professorId
                };
                _context.Attach(prof);
                Thesis newThesis = new Thesis {
                    Professor = prof, DateCreated = DateTime.Now
                };
                _context.Theses.Add(newThesis);
                await _context.SaveChangesAsync();

                return(newThesis);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
                return(null);
            }
        }
예제 #2
0
        public async Task <bool> AddProfessorToSubject(string professorId, int subjectId)
        {
            try
            {
                ProfessorSubject professorSubject = new ProfessorSubject {
                    ProfessorId = professorId, SubjectId = subjectId
                };
                _context.Attach(new FacultyProfessor {
                    Id = professorId
                });
                _context.Attach(new Subject {
                    Id = subjectId
                });
                _context.ProfessorSubjects.Add(professorSubject);
                await _context.SaveChangesAsync();

                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
예제 #3
0
        public async Task <IdentityResult> RegisterStudent(RegistrationDTO userInfo)
        {
            FunctionReturnDTO uploadResult = null;

            if (userInfo.ProfileImage != null)
            {
                uploadResult = await UploadImage(userInfo.Email, userInfo.ProfileImage);

                if (!uploadResult.Success)
                {
                    return(IdentityResult.Failed(new IdentityError[] { new IdentityError {
                                                                           Code = "Upload error", Description = uploadResult.Result
                                                                       } }));
                }
            }

            FacultyStudent facultyUser = new FacultyStudent
            {
                FullName        = userInfo.FullName,
                Email           = userInfo.Email,
                UserName        = userInfo.Email,
                Index           = userInfo.Index,
                ProfileImageUrl = uploadResult == null ? null : uploadResult.Result,
                Module          = new Module {
                    Id = userInfo.ModuleId
                }
            };

            _context.Attach(facultyUser.Module);
            IdentityResult result = await _userManager.CreateAsync(facultyUser, userInfo.Password);

            if (!result.Succeeded)
            {
                return(result);
            }


            await _userManager.AddClaimAsync(facultyUser, new Claim("ModuleId", userInfo.ModuleId.ToString()));

            await _userManager.AddToRoleAsync(facultyUser, "Student");

            return(result);
        }
예제 #4
0
        public async Task <bool> MakeRequest(RequestDTO requestDTO)
        {
            try
            {
                int check = _context.Requests.Where(r => r.StudentId == requestDTO.Student.Id && r.Status == (int)RequestStatus.Pending).Count();
                if (check > 0)
                {
                    return(false);
                }

                Request request = requestDTO.ToRequest();
                request.DateCreated = DateTime.Now;
                _context.Attach(request.Student);
                _context.Requests.Add(request);
                await _context.SaveChangesAsync();

                return(true);
            }
            catch (Exception ex)
            {
                _logger.LogInformation("Failed adding request: " + ex.Message);
                return(false);
            }
        }