Esempio n. 1
0
            /*
             * 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();
                }
            }
Esempio n. 2
0
 /*
  * 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();
     }
 }
Esempio n. 3
0
        /*
         * 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();
        }
Esempio n. 4
0
        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);
        }