/* * public void Update(Users userParam, string password = null) * { * var user = _context.Users.Find(userParam.Id); * * if (user == null) * throw new AppException("User not found"); * * // update username if it has changed * if (!string.IsNullOrWhiteSpace(userParam.UserName) && userParam.UserName != user.UserName) * { * // throw error if the new username is already taken * if (_context.Users.Any(x => x.UserName == userParam.UserName)) * throw new AppException("Username " + userParam.UserName + " is already taken"); * * user.UserName = userParam.UserName; * } * * // update user properties if provided * if (!string.IsNullOrWhiteSpace(userParam.FirstName)) * user.FirstName = userParam.FirstName; * * if (!string.IsNullOrWhiteSpace(userParam.LastName)) * user.LastName = userParam.LastName; * * // update password if provided * if (!string.IsNullOrWhiteSpace(password)) * { * byte[] passwordHash, passwordSalt; * CreatePasswordHash(password, out passwordHash, out passwordSalt); * * user.PasswordHash = passwordHash; * user.PasswordSalt = passwordSalt; * } * * _context.Users.Update(user); * _context.SaveChanges(); * } */ public void Delete(int id) { var user = _context.Users.Find(id); if (user != null) { _context.Users.Remove(user); _context.SaveChanges(); } }
/* * Desc: Partea de service pe a transmite datele de evaluare facute asupra unui profesor. * In: rc - un obiect de tip AdaugareReview * Out: - * Err: Daca numarul de note nu e egal cu numarul de criterii */ public void AdaugareReview(ReviewComplet rc) { if (rc.Criterii.Count != rc.Note.Count) { throw new AppException("Numarul de note difera fata de cel de criterii"); } for (var i = 0; i < rc.Criterii.Count; i++) { var review = new Review { IdProfesor = rc.IdProfesor, IdMaterie = rc.IdMaterie, IdCriteriu = rc.Criterii.ElementAt(i), IdStudent = rc.IdStudent, AnDeStudiu = rc.AnDeStudiu, AnCaledaristic = rc.AnCalendaristic, Nota = rc.Note.ElementAt(i) }; _context.Review.Add(review); _context.SaveChanges(); } }
/* * Desc: * Input:Orarmaterie * Output: nimic * ERR:-daca id-ul salii nu exista * -daca intervalul examenului se intersecteaza cu un alt examen * */ public void ProgExamen(Orarmaterie examen) { foreach (var ora in _context.Orarmaterie.ToList()) { if (eqOrarmater(examen, ora) == true) { throw new Exception("Examenul este deja programat"); } } var idSala = examen.IdSala; var orarSala = GetOrarSali(idSala).ToList(); var sali = GetSali(); var ok = false; var numesala = _context.Sala.Find(idSala).Nume; int idSpec = _context.Formatie.SingleOrDefault(formatie => formatie.IdFormatie == examen.IdFormatie) .IdSpecializare; foreach (var sala in sali) { if (sala.IdSala == idSala) { ok = true; } } if (ok == false) { throw new Exception("Nu exista sala cu asemenea id"); } var data = examen.Data; var dataDetaliata = data?.ToString("yyyy-MM-dd"); /* * x=examen.OraInceput * y=examen.OraSfarsit * a=ora.Inc * b=oraSf */ if (String.CompareOrdinal(numesala, "Online") != 0) { foreach (var orar in orarSala) { var oraInc = TimeSpan.Parse(orar.OraInceput); var oraSf = TimeSpan.Parse(orar.OraSfarsit); if (TimeSpan.Compare(examen.OraInceput, oraInc) >= 0 && TimeSpan.Compare(examen.OraInceput, oraSf) < 0) //daca x apartine [a,b) si sala nu este 1(cea online) { throw new Exception("Examenul nu poate sa inceapa in timp ce se desfasoara alt examen"); } if (TimeSpan.Compare(examen.OraSfarsit, oraInc) >= 0 && TimeSpan.Compare(examen.OraSfarsit, oraSf) <= 0) //daca y apartine [a,b] { throw new Exception("Examenul trebuie sa se termine inaintea altui examen rezervat"); } if (TimeSpan.Compare(examen.OraInceput, oraInc) < 0 && TimeSpan.Compare(examen.OraSfarsit, oraSf) > 0) //daca [a,b] inclus in [x,y] { throw new Exception("Exista un examen in acest inetrval orar"); } } } examen.IdSpecializare = idSpec; _context.Orarmaterie.Add(examen); _context.SaveChanges(); }
public Student CreateStudent(Student student, string password, string semigrupa, string specializare) { if (string.IsNullOrWhiteSpace(password)) { throw new AppException("Password is required"); } if (_context.Users.Any(x => x.Username == student.Username)) { throw new AppException("Username \"" + student.Username + "\" is already taken"); } if (_context.Users.Any(x => x.Cnp == student.Cnp)) { throw new AppException("Deja exista un user cu acest CNP"); } if (_context.Student.Any(x => x.NrMatricol == student.NrMatricol)) { throw new AppException("Deja exista un student cu acest numar matricol"); } if (_context.Student.Any(x => x.Cup == student.Cup)) { throw new AppException("Deja exista un student cu acest CUP"); } if (_context.Specializare.Where(x => x.Nume == specializare).Count() == 0) { throw new AppException("Erori specializare"); } if (_context.Formatie.Where(x => x.SemiGrupa == semigrupa).Count() == 0) { throw new AppException("Erori semigrupa"); } byte[] passwordHash, passwordSalt; CreatePasswordHash(password, out passwordHash, out passwordSalt); student.PHash = passwordHash; student.PSalt = passwordSalt; var r = _context.Formatie.Where(x => x.SemiGrupa == semigrupa).ToList().First().IdFormatie; var p = _context.Specializare.Where(x => x.Nume == specializare).ToList().First().IdSpecializare; student.IdFormatie = r; student.IdSpecializare = p; _context.Student.Add(student); _context.SaveChanges(); return(student); }