Exemplo n.º 1
0
        public IActionResult UpdateStudent([FromQuery] String Index, [FromBody] StudentApbd req)
        {
            var t1 = Index;
            var t2 = req;
            var db = new s17057Context();

            try
            {
                var stud = db.StudentApbd.Where(stud => stud.IndexNumber.Equals(Index)).First();
                //update
                stud.SetProperty("FirstName", req.FirstName);
                stud.SetProperty("IndexNumber", req.IndexNumber);
                stud.SetProperty("LastName", req.LastName);
                stud.SetProperty("BirthDate", req.BirthDate);
                stud.SetProperty("IdEnrollment", req.IdEnrollment);
                if (req.Pswd != null)
                {
                    var salt = stud.Salt;
                    stud.SetProperty("Pswd", PasswordHelper.GenerateSaltedHash(req.Pswd, salt));
                }
                db.SaveChanges();
                return(Ok("Dane zaktualizowane pomyślnie!"));
            }
            catch (InvalidOperationException ex)
            {
                return(BadRequest("Niepoprawny numer indexu!"));
            }
        }
Exemplo n.º 2
0
 public static void SetProperty(this StudentApbd stud, String propName, Object val)
 {
     if (val != null)
     {
         Type         type = stud.GetType();
         PropertyInfo prop = type.GetProperty(propName);
         prop.SetValue(stud, val, null);
     }
 }
Exemplo n.º 3
0
        public IActionResult InsertStudent(StudentApbd req)
        {
            var db   = new s17057Context();
            var stud = new StudentApbd();

            stud.SetProperty("FirstName", req.FirstName);
            stud.SetProperty("IndexNumber", req.IndexNumber);
            stud.SetProperty("LastName", req.LastName);
            stud.SetProperty("BirthDate", req.BirthDate);
            stud.SetProperty("IdEnrollment", req.IdEnrollment);

            var salt = PasswordHelper.CreateSalt();

            stud.SetProperty("Salt", salt);
            stud.SetProperty("Pswd", PasswordHelper.GenerateSaltedHash(req.Pswd, salt));
            db.StudentApbd.Add(req);
            db.SaveChanges();
            return(Ok("Insert zakończony pomyślnie"));
        }
Exemplo n.º 4
0
        public EnrollStudentResponse EnrollStudent(EnrollStudentRequest request)
        {
            var response = new EnrollStudentResponse();
            var db       = new s16870Context();

            db.Database.BeginTransaction();
            int study;

            try
            {
                study = db.Studies.Where(s => s.Name.Equals(request.Studies)).Select(s => s.IdStudy).First();
            }
            catch (InvalidOperationException ex)
            {
                db.Database.RollbackTransaction();
                throw new ArgumentException("Studia " + request.Studies + " nie isnieją");
            }
            response.IdStudies   = study;
            response.Semester    = 1;
            response.IndexNumber = request.IndexNumber;
            try
            {
                var enrollment = db.Enrollment.Where(e => e.Semester == 1 && e.IdStudy == study).Select(e => new {
                    id        = e.IdEnrollment,
                    startDate = e.StartDate
                }).First();
                response.IdEnrollment = enrollment.id;
                response.StartDate    = enrollment.startDate.Value;
            }
            catch (InvalidOperationException ex)
            {
                response.IdEnrollment = db.Enrollment.Max(e => e.IdEnrollment) + 1;
                response.StartDate    = DateTime.Now;
                var newEnrollment = new Enrollment()
                {
                    IdEnrollment = response.IdEnrollment,
                    Semester     = 1,
                    IdStudy      = study,
                    StartDate    = response.StartDate
                };
                db.Enrollment.Add(newEnrollment);
            }
            finally
            {
                var stud = new StudentApbd();
                stud.SetProperty("FirstName", request.FirstName);
                stud.SetProperty("IndexNumber", request.IndexNumber);
                stud.SetProperty("LastName", request.LastName);
                stud.SetProperty("BirthDate", request.BirthDate);
                stud.SetProperty("IdEnrollment", response.IdEnrollment);

                var salt = PasswordHelper.CreateSalt();
                stud.SetProperty("Salt", salt);
                stud.SetProperty("Pswd", PasswordHelper.GenerateSaltedHash(request.Password, salt));
                try
                {
                    db.StudentApbd.Add(stud);
                    db.SaveChanges();
                    db.Database.CommitTransaction();
                }
                catch (Exception exc)
                {
                    Console.WriteLine(exc.Message);
                    db.Database.RollbackTransaction();
                    throw new ArgumentException("Duplikat numeru indeksu");
                }
            }
            return(response);
        }