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); } }
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); } }
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); }
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); } }