예제 #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!"));
            }
        }
예제 #2
0
        public IActionResult GetStudents()
        {
            var db = new s17057Context();

            var res = db.StudentApbd.Select(stud => new
            {
                IndexNumber  = stud.IndexNumber,
                FirstName    = stud.FirstName,
                LastName     = stud.LastName,
                BirthDate    = stud.BirthDate,
                IdEnrollment = stud.IdEnrollment
            }).ToList();

            return(Ok(res));
        }
예제 #3
0
        public IActionResult DeleteStudent([FromQuery] String index)
        {
            var db   = new s17057Context();
            var stud = db.StudentApbd.Where(stud => stud.IndexNumber.Equals(index)).First();

            if (stud == null)
            {
                return(BadRequest("Niepoprawny numer indexu!"));
            }
            else
            {
                //delete,
                db.Remove(stud);
                db.SaveChanges();
                return(Ok("Dane usunięte pomyślnie!"));
            }
        }
예제 #4
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"));
        }
예제 #5
0
        public PromoteStudentsResponse PromoteStudents(PromoteStudentsRequest request)
        {
            var          db            = new s17057Context();
            SqlParameter studiesParam  = new SqlParameter("@Studies", request.Studies);
            SqlParameter semesterParam = new SqlParameter("@Semester", request.Semester);
            var          resp          = db.Enrollment.FromSqlRaw("EXEC PromoteStudents @Studies, @Semester", studiesParam, semesterParam).AsEnumerable().First();

            if (resp != null)
            {
                return(new PromoteStudentsResponse
                {
                    IdEnrollment = resp.IdEnrollment,
                    IdStudy = resp.IdStudy.Value,
                    Semester = resp.Semester.Value,
                    StartDate = resp.StartDate.Value
                });
            }
            else
            {
                return(null);
            }
        }
예제 #6
0
        public EnrollStudentResponse EnrollStudent(EnrollStudentRequest request)
        {
            var response = new EnrollStudentResponse();
            var db       = new s17057Context();

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