예제 #1
0
        public async Task <ActionResult <Enrollement> > PostEnrollement(Enrollement enrollement)
        {
            _context.Enroll.Add(enrollement);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetEnrollement", new { id = enrollement.EnrollId }, enrollement));
        }
예제 #2
0
        /// <summary>
        /// Informations d'une inscription
        /// </summary>
        public InscriptionCard(Enrollement enrollement)
        {
            InscriptionGuid   = enrollement.EnrollementGuid;
            InscriptionNum    = "Numéro Inscription  " + enrollement.EnrollementNum;
            Status            = enrollement.EnrollementStatus.GetEnumDescription();
            EnrollementStatus = enrollement.EnrollementStatus;
            DateInscription   = "Inscrit le  " + enrollement.DateAdded.GetValueOrDefault().ToShortDateString();
            StudentFullName   = enrollement.Student.Person.FullName;
            PhotoIdentity     = enrollement.Student.Person.PhotoIdentity;
            ClasseDescription = enrollement.Classe.Sigle + "  -  " + enrollement.Classe.Filiere.Name;
            SchoolYearName    = enrollement.SchoolYear.Name;
            Session           = "Session " + enrollement.Classe.Session;
            Description       = enrollement.DateAdded.GetValueOrDefault().ToShortDateString();

            if (enrollement.EnrollementStatus == EnrollementStatus.Canceled ||
                enrollement.EnrollementStatus == EnrollementStatus.Failed)
            {
                StatusColor = "Red";
            }
            else if (enrollement.EnrollementStatus == EnrollementStatus.NotCompleted &&
                     enrollement.SchoolYear.DateFin < DateTime.Today)
            {
                StatusColor = "Red";
            }
            else
            {
                StatusColor = "Blue";
            }
        }
예제 #3
0
        public string getEnrollments(string index)
        {
            StringBuilder enrollements = new StringBuilder();

            var con = new SqlConnection(sqlConGlobal);
            var com = new SqlCommand();

            com.Connection  = con;
            com.CommandText =
                "SELECT * FROM Enrollment INNER JOIN Student ON Enrollment.IdEnrollment = Student.IdEnrollment WHERE Student.IndexNumber = @index";
            com.Parameters.AddWithValue("index", index);

            con.Open();
            var dr = com.ExecuteReader();

            while (dr.Read())
            {
                var en = new Enrollement();
                en.IdEnrollment = dr["IdEnrollment"].ToString();
                en.Semester     = dr["Semester"].ToString();
                en.IdStudy      = dr["IdStudy"].ToString();
                en.StartDate    = dr["StartDate"].ToString();
                enrollements.AppendLine(en.ToString());
            }


            return(enrollements.ToString());
        }
예제 #4
0
        public List <Enrollement> GetEnrollementsByStudent(Student student)
        {
            List <Enrollement> enrollements = new List <Enrollement>();

            String       sql = "SELECT enrolls.* FROM courseofferings,enrolls where courseofferings.c_id = enrolls.c_id AND courseofferings.semster = enrolls.semster AND enrolls.s_id = @s_id";
            MySqlCommand cmd = new MySqlCommand(sql, Connection);

            cmd.Parameters.AddWithValue("@s_id", student.StudentId);
            MySqlDataReader rdr = cmd.ExecuteReader();

            while (rdr.Read())
            {
                Enrollement enrollement = new Enrollement();
                enrollement.CourseId  = rdr["c_id"].ToString();
                enrollement.Semster   = rdr["semster"].ToString();
                enrollement.StudentId = (int)rdr["s_id"];
                if (!(rdr["grade"] is DBNull))
                {
                    enrollement.Grade = Convert.ToInt32(rdr["grade"]);
                }


                enrollements.Add(enrollement);
            }
            rdr.Close();


            return(enrollements);
        }
예제 #5
0
        public async Task <IActionResult> PutEnrollement(int id, Enrollement enrollement)
        {
            if (id != enrollement.EnrollId)
            {
                return(BadRequest());
            }

            _context.Entry(enrollement).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!EnrollementExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
예제 #6
0
        public IActionResult promoteStudents(StudiesInfo studies)
        {
            Enrollement enrollment = new Enrollement();

            using (SqlConnection con = new SqlConnection(sqlConGlobal))
                using (SqlCommand com = new SqlCommand())
                {
                    com.Connection = con;
                    con.Open();


                    com.Parameters.AddWithValue("Studies", studies.Studies);
                    com.Parameters.AddWithValue("Semester", studies.Semester);
                    List <string[]> resultSet3 = new List <string[]>();

                    com.CommandType = CommandType.StoredProcedure;
                    com.CommandText = "UPDATE Student SET Password = @password where Student.IndexNumber = @index";
                    SqlDataReader dr = com.ExecuteReader();
                    com.Parameters.AddWithValue("index", dr["IndexNumber"]);
                    com.Parameters.AddWithValue("password", dr["password"]);
                    if (com.Connection.State != ConnectionState.Open)
                    {
                        com.Connection.Open();
                    }

                    dr = com.ExecuteReader();

                    while (dr.Read())
                    {
                        string[] tmp = new string[dr.FieldCount];
                        for (int i = 0; i < dr.FieldCount; i++)
                        {
                            tmp[i] = dr.GetValue(i).ToString();
                        }

                        resultSet3.Add(tmp);
                    }

                    dr.Close();
                    com.CommandType = CommandType.Text;
                    com.Parameters.Clear();


                    if (resultSet3[0][0].Equals("404"))
                    {
                        return(new NotFoundResult());
                    }

                    enrollment.IdEnrollment = resultSet3[0][0];
                    enrollment.IdStudy      = resultSet3[0][2];
                    enrollment.Semester     = resultSet3[0][1];
                    enrollment.StartDate    = resultSet3[0][3];
                }

            ObjectResult objectResult = new ObjectResult(enrollment);

            objectResult.StatusCode = 201;
            return(objectResult);
        }
예제 #7
0
        public Enrollement UpdateEnrollment(Enrollement Enrollment)
        {
            var ExistngEnroll = GetEnrollment(Enrollment.EnrollId);

            ExistngEnroll.CourseCode = Enrollment.CourseCode;
            ExistngEnroll.StudentId  = Enrollment.StudentId;
            return(ExistngEnroll);
        }
        public async Task InsertAsync(EleveEnrollement eleveEnrollement)
        {
            await _context.EleveEnrollements.AddAsync(eleveEnrollement);

            Enrollement enrollement = await _context.Enrollements.Where(e => e.Id == eleveEnrollement.EnrollementId).FirstOrDefaultAsync();

            if (enrollement.Type == "Groupe")
            {
                EleveEnrollement currentEleveEnrollement = await _context.EleveEnrollements.Include(ee => ee.Enrollement).Where(ee => ee.Enrollement.Type == "Groupe" && ee.DateDeFin > eleveEnrollement.DateDeDebut && ee.EleveId == eleveEnrollement.EleveId).FirstOrDefaultAsync();

                if (currentEleveEnrollement != null)
                {
                    PayementEnrollement currentPayementEnrollement = new PayementEnrollement();
                    var paid = 0;
                    List <PayementEnrollement> currentPayementEnrollements = await _context.PayementEnrollements.Where(pe => pe.EleveEnrollementId == currentEleveEnrollement.Id && pe.DateDeFin == currentEleveEnrollement.DateDeFin).ToListAsync();

                    if (currentPayementEnrollements.Count > 0)
                    {
                        foreach (PayementEnrollement cpe in currentPayementEnrollements)
                        {
                            if (cpe.DateDeDebut >= eleveEnrollement.DateDeDebut)
                            {
                                paid = paid + cpe.Paid;
                                _context.PayementEnrollements.Remove(cpe);
                            }
                            else
                            {
                                currentPayementEnrollement = cpe;
                            }
                        }
                        PayementEnrollementViewModel payementEnrollement = new PayementEnrollementViewModel()
                        {
                            Section            = "Scolarité",
                            Paid               = 0,
                            EleveEnrollementId = eleveEnrollement.Id,
                            DateDeDebut        = eleveEnrollement.DateDeDebut,
                            DateDeFin          = currentEleveEnrollement.DateDeFin.Value,
                        };
                        currentEleveEnrollement.DateDeFin             = eleveEnrollement.DateDeDebut;
                        _context.Entry(currentEleveEnrollement).State = EntityState.Modified;
                        await _context.SaveChangesAsync();

                        currentPayementEnrollement.DateDeFin             = eleveEnrollement.DateDeDebut;
                        _context.Entry(currentPayementEnrollement).State = EntityState.Modified;
                        await _context.SaveChangesAsync();

                        var pe = _mapper.Map <PayementEnrollement>(payementEnrollement);
                        await _context.PayementEnrollements.AddAsync(pe);
                    }
                    else
                    {
                        currentEleveEnrollement.DateDeFin             = eleveEnrollement.DateDeDebut;
                        _context.Entry(currentEleveEnrollement).State = EntityState.Modified;
                        await _context.SaveChangesAsync();
                    }
                }
            }
        }
예제 #9
0
        public async Task <ActionResult <Enrollement> > GetEnrollement(int id)
        {
            Enrollement Enrollement = await _EnrollementRepository.GetByIdAsync(id);

            if (Enrollement == null)
            {
                return(NotFound());
            }

            return(Enrollement);
        }
        public IActionResult UpdateCourse(int EnrollId, Enrollement Enrollment)
        {
            var PutEnroll = _EnrollRepository.GetEnrollment(EnrollId);

            if (PutEnroll != null)
            {
                Enrollment.CourseCode = PutEnroll.CourseCode;
                _EnrollRepository.UpdateEnrollment(Enrollment);
            }
            return(Ok(PutEnroll));
        }
예제 #11
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="myEnrollement"></param>
        /// <returns></returns>
        public bool UpdateEnrollement(Enrollement myEnrollement)
        {
            //if (!PedagogyManager.AnneeScolaireExist(myInscription.AnneeScolaireGuid)) throw new NotValidDataException("ANNEE_SCOLAIRE_N_EXIST_PAS");

            using (var db = new SchoolContext())
            {
                db.Enrollements.Attach(myEnrollement);
                db.Entry(myEnrollement).State = EntityState.Modified;
                return(db.SaveChanges() > 0);
            }
        }
예제 #12
0
        public bool SetGrade(Enrollement enrollement)
        {
            string       sql = "UPDATE  enrolls set grade = @grade where c_id = @c_id AND  semster = @semster AND s_id = @s_id ;";
            MySqlCommand cmd = new MySqlCommand(sql, Connection);

            cmd.Parameters.AddWithValue("@c_id", enrollement.CourseId);
            cmd.Parameters.AddWithValue("@semster", enrollement.Semster);
            cmd.Parameters.AddWithValue("@s_id", enrollement.StudentId);
            cmd.Parameters.AddWithValue("@grade", enrollement.Grade);


            return(cmd.ExecuteNonQuery() == 1);
        }
예제 #13
0
        public bool EnrollsInCourseOffering(Enrollement enrollement)
        {
            string       sql = "INSERT INTO enrolls (c_id, semster,s_id) VALUES (@c_id,@semster,@s_id);";
            MySqlCommand cmd = new MySqlCommand(sql, Connection);

            cmd.Parameters.AddWithValue("@c_id", enrollement.CourseId);
            cmd.Parameters.AddWithValue("@semster", enrollement.Semster);
            cmd.Parameters.AddWithValue("@s_id", enrollement.StudentId);



            return(cmd.ExecuteNonQuery() == 1);
        }
예제 #14
0
        public bool LeavesCourseOffering(Enrollement enrollement)
        {
            string       sql = "DELETE FROM enrolls where c_id = @c_id AND  semster = @semster AND s_id = @s_id ;";
            MySqlCommand cmd = new MySqlCommand(sql, Connection);

            cmd.Parameters.AddWithValue("@c_id", enrollement.CourseId);
            cmd.Parameters.AddWithValue("@semster", enrollement.Semster);
            cmd.Parameters.AddWithValue("@s_id", enrollement.StudentId);



            return(cmd.ExecuteNonQuery() == 1);
        }
예제 #15
0
        public async Task <IActionResult> Create([Bind("Id,Firstname,Lastname,Address,Gender,StudentNumber,DateofBirth,ClassId")] CreateStudentViewModel model)
        {
            model.CreatedDate   = DateTime.UtcNow.Date;
            model.ModifiedDate  = DateTime.UtcNow.Date;
            model.StudentNumber = "STN" + DateTime.Now.Year.ToString() + model.StudentNumber;
            if (!stu.IfExists(model.StudentNumber, null))
            {
                if (ModelState.IsValid)
                {
                    var _student = new Student();
                    _student.Lastname      = model.Lastname.ToUpper();
                    _student.Firstname     = model.Firstname.ToUpper();
                    _student.Gender        = model.Gender;
                    _student.Address       = model.Address;
                    _student.CreatedDate   = model.CreatedDate;
                    _student.ModifiedDate  = model.ModifiedDate;
                    _student.StudentNumber = model.StudentNumber;
                    _student.DateofBirth   = model.DateofBirth;
                    _student.IsEnrolled    = true;
                    stu.Add(_student);
                    await stu.SaveChangesAsync();

                    var en = new Enrollement();
                    en.StudentID       = _student.Id;
                    en.ClassID         = model.ClassId;
                    en.EnrollementDate = DateTime.UtcNow.Date;
                    enr.Add(en);
                    await enr.SaveChangesAsync();

                    return(RedirectToAction("Index"));
                }

                return(PartialView(model));
            }

            return(PartialView(model));
        }
예제 #16
0
        private void SubmitEnrollementForm(object sender, RoutedEventArgs e)
        {
            var found = EnrollementViews.Count(view => view.Enrollement.CourseId.Equals(FormCourseOffer.CourseId) &&
                                               view.Enrollement.Semster.Equals(FormCourseOffer.Semster)) == 1;
            var enrollement = new Enrollement()
            {
                CourseId  = FormCourseOffer.CourseId,
                Semster   = FormCourseOffer.Semster,
                Grade     = FormGrade,
                StudentId = Student.StudentId
            };

            if (found)
            {
                //If found, update the grade
                db.SetGrade(enrollement);
            }
            else
            {
                //This is insertion process
                db.EnrollsInCourseOffering(enrollement);
            }
            LoadEnrollements();
        }
예제 #17
0
        public void Delete(long id)
        {
            Enrollement enrollement = new Enrollement();

            enrollement.deleteEnrollement(id);
        }
예제 #18
0
 public void Update(Enrollement Enrollement)
 {
     _context.Entry(Enrollement).State = EntityState.Modified;
 }
예제 #19
0
        public async Task DeleteAsync(int EnrollementId)
        {
            Enrollement Enrollement = await _context.Enrollements.FindAsync(EnrollementId);

            _context.Enrollements.Remove(Enrollement);
        }
예제 #20
0
 public async Task InsertAsync(Enrollement Enrollement)
 {
     await _context.Enrollements.AddAsync(Enrollement);
 }
예제 #21
0
 public Enrollement DeleteEnrollment(Enrollement Enrollment)
 {
     Enrollments.Remove(Enrollment);
     return(Enrollment);
 }
예제 #22
0
        /// <summary>
        /// Inscrire Un Etudiant A une Classe
        /// </summary>
        /// <param name="myEnrollement">Objet Inscription</param>
        /// <exception cref="InvalidOperationException"></exception>
        /// <returns>True si succes</returns>
        public bool EnrollStudent(Enrollement myEnrollement)
        {
            using (var db = new SchoolContext())
            {
                var classe = db.Classes.FirstOrDefault(c => c.ClasseGuid == myEnrollement.ClasseGuid && !c.IsDeleted);
                if (classe == null)
                {
                    throw new InvalidOperationException("CLASSE_REFERENCE_NOT_FOUND");
                }

                var anneeScolaireGuid = PedagogyManager.StaticGetSessionAnneeScolaireGuid(classe.Session);

                if (anneeScolaireGuid != null)
                {
                    myEnrollement.SchoolYearGuid = (Guid)anneeScolaireGuid;
                }
                else
                {
                    throw new InvalidOperationException("ANNEE_SCOLAIRE_SESSION_NOT_ACTIVE");
                }

                if (db.Students.Find(myEnrollement.StudentGuid) == null)
                {
                    throw new InvalidOperationException("STUDENT_REFERENCE_NOT_FOUND");
                }
                if (InscExist(myEnrollement.EnrollementNum))
                {
                    throw new InvalidOperationException("INSCRIPTION_ID_ALREADY_EXIST");
                }
                if (myEnrollement.InscriptionAmount < 0)
                {
                    throw new InvalidOperationException("INSCRIPTION_AMOUNT_CAN_NOT_BE_NEGATIF");
                }
                if (myEnrollement.InstallementAmount < 0)
                {
                    throw new InvalidOperationException("INSTALLEMENT_AMOUNT_CAN_NOT_BE_NEGATIF");
                }


                if (myEnrollement.EnrollementGuid == Guid.Empty)
                {
                    myEnrollement.EnrollementGuid = Guid.NewGuid();
                }

                myEnrollement.DateAdded        = DateTime.Now;
                myEnrollement.LastEditDate     = DateTime.Now;
                myEnrollement.LastEditUserGuid = Guid.Empty;
                myEnrollement.AddUserGuid      = Guid.Empty;

                db.Enrollements.Add(myEnrollement);

                if (db.SaveChanges() <= 0)
                {
                    return(false);
                }

                foreach (var recue in SchoolFeeHelper.GenerateInscriptionReceipts(myEnrollement))
                {
                    StudentsFinanceManager.StaticAddFeeReceipt(recue);
                }
                return(true);
            }
        }
예제 #23
0
        /// <summary>
        /// Algorithme pour générer les frais de scolarité d une inscription
        /// </summary>
        /// <param name ="myEnrollement">Inscription</param>
        /// <returns>La list des factures</returns>
        internal static HashSet <StudentBill> GenerateInscriptionReceipts(Enrollement myEnrollement)
        {
            var theAnneeScolaire = PedagogyManager.StaticGetAnneeScolaireByGuid
                                       (myEnrollement.SchoolYearGuid);
            var theClasse  = ClassesManager.StaticGetClasseById(myEnrollement.ClasseGuid);
            var debutAnnee = theAnneeScolaire.DateDebut.GetValueOrDefault();
            var finAnnee   = theAnneeScolaire.DateFin.GetValueOrDefault();

            var yearTotalMonths = DateTimeHelper.MonthDifference(debutAnnee, finAnnee);
            var periodLenght    = (int)myEnrollement.InstallmentRecurrence;
            var totalInstalls   = yearTotalMonths / periodLenght;

            if ((yearTotalMonths % periodLenght) != 0)
            {
                totalInstalls++;
            }
            var nextPayOff = debutAnnee.AddSeconds(1);

            double installAmount = 0;

            switch (myEnrollement.InstallmentRecurrence)
            {
            case InstallmentRecurrence.Monthly:
                installAmount = myEnrollement.IsScholar ? myEnrollement.InstallementAmount :
                                theClasse.MonthlyAmount;
                break;

            case InstallmentRecurrence.Quarterly:
                installAmount = myEnrollement.IsScholar ? myEnrollement.InstallementAmount :
                                theClasse.QuarterlyAmount;
                break;

            case InstallmentRecurrence.HalfYearly:
                installAmount = myEnrollement.IsScholar ? myEnrollement.InstallementAmount :
                                theClasse.HalfYearlyAmount;
                break;

            case InstallmentRecurrence.Yearly:
                installAmount = myEnrollement.IsScholar ? myEnrollement.InstallementAmount :
                                theClasse.YearlyAmount;
                break;
            }

            var billsList = new HashSet <StudentBill> {
                new StudentBill {
                    SchoolFeeGuid = Guid.NewGuid(),
                    StudentGuid   = myEnrollement.StudentGuid,
                    Designation   = "Inscription " + theAnneeScolaire.Name,
                    NetAmount     = myEnrollement.IsScholar ? myEnrollement.InscriptionAmount :
                                    theClasse.InscriptionAmount,
                    DueDate = debutAnnee
                }
            };

            if (myEnrollement.InstallmentRecurrence == InstallmentRecurrence.Once)
            {
                return new HashSet <StudentBill>
                       {
                           new StudentBill {
                               SchoolFeeGuid = Guid.NewGuid(),
                               StudentGuid   = myEnrollement.StudentGuid,
                               Designation   = "Frais Etudes",
                               DueDate       = debutAnnee,
                               NetAmount     = theClasse.YearlyAmount
                           }
                       }
            }
            ;

            for (var i = 0; i < totalInstalls; i++)
            {
                billsList.Add(new StudentBill {
                    SchoolFeeGuid = Guid.NewGuid(),
                    StudentGuid   = myEnrollement.StudentGuid,
                    Designation   = nextPayOff.ToString("MMM-yy") + " Installement "
                                    + myEnrollement.InstallmentRecurrence.GetEnumDescription(),
                    NetAmount      = installAmount,
                    DueDate        = nextPayOff,
                    IsInstallement = true
                });
                nextPayOff = new DateTime(nextPayOff.AddMonths(periodLenght).Year,
                                          nextPayOff.AddMonths(periodLenght).Month, 1);
            }
            return(billsList);
        }
    }
예제 #24
0
        public static void Initialize(SchoolDbContext context)
        {
            context.Database.EnsureCreated();

            if (context.Students.Any())
            {
                return;     //Db has been created alreay
            }

            var students = new Student[]
            {
                new Student()
                {
                    Name        = "Cecilia Chapman",
                    Address     = "711-2880 Nulla St.Mankato Mississippi 96522",
                    Email       = "*****@*****.**",
                    PhoneNumber = "(257) 563-7401"
                },
                new Student()
                {
                    Name        = "Iris Watson",
                    Address     = "P.O. Box 283 8562 Fusce Rd. Frederick Nebraska 20620",
                    Email       = "*****@*****.**",
                    PhoneNumber = "(372) 587-2335"
                },
                new Student()
                {
                    Name        = "Celeste Slater",
                    Address     = "606-3727 Ullamcorper. Street Roseville NH 11523",
                    Email       = "*****@*****.**",
                    PhoneNumber = "(786) 713-8616"
                }
            };

            context.Set <Student>().AddRange(students);
            context.SaveChanges();

            var courses = new Course[]
            {
                new Course()
                {
                    Credits     = 20,
                    Title       = "Python Programming",
                    Description = "Learn Python Programming. This course will cover basics of python, advance Python tpics and Web API Platforms like Flask and DJango"
                },
                new Course()
                {
                    Credits     = 20,
                    Title       = "Data Strutures and Algorithms",
                    Description = "This course will cover basic and advance data structure use in Computer Programming."
                },
                new Course()
                {
                    Credits     = 15,
                    Title       = "Computer Hardware",
                    Description = "This course will cover basic and advance computer hardware topics"
                }
            };

            context.Set <Course>().AddRange(courses);
            context.SaveChanges();

            var enrollments = new Enrollement[]
            {
                new Enrollement()
                {
                    CourseId  = context.Coureses.Where(a => a.Title == "Python Programming").FirstOrDefault().Id,
                    EndDate   = DateTime.Now.AddMonths(4),
                    StartDate = DateTime.Now,
                    RegDate   = DateTime.Now,
                    Grade     = "",
                    StudentId = context.Set <Student>().Where(a => a.Name == "Cecilia Chapman").FirstOrDefault().Id
                }, new Enrollement()
                {
                    CourseId  = context.Coureses.Where(a => a.Title == "Python Programming").FirstOrDefault().Id,
                    EndDate   = DateTime.Now.AddMonths(4),
                    StartDate = DateTime.Now,
                    RegDate   = DateTime.Now,
                    Grade     = "",
                    StudentId = context.Set <Student>().Where(a => a.Name == "Iris Watson").FirstOrDefault().Id
                }, new Enrollement()
                {
                    CourseId  = context.Coureses.Where(a => a.Title == "Computer Hardware").FirstOrDefault().Id,
                    EndDate   = DateTime.Now.AddMonths(4),
                    StartDate = DateTime.Now,
                    RegDate   = DateTime.Now,
                    Grade     = "",
                    StudentId = context.Set <Student>().Where(a => a.Name == "Celeste Slater").FirstOrDefault().Id
                }, new Enrollement()
                {
                    CourseId  = context.Coureses.Where(a => a.Title == "Computer Hardware").FirstOrDefault().Id,
                    EndDate   = DateTime.Now.AddMonths(4),
                    StartDate = DateTime.Now,
                    RegDate   = DateTime.Now,
                    Grade     = "",
                    StudentId = context.Set <Student>().Where(a => a.Name == "Iris Watson").FirstOrDefault().Id
                }, new Enrollement()
                {
                    CourseId  = context.Coureses.Where(a => a.Title == "Computer Hardware").FirstOrDefault().Id,
                    EndDate   = DateTime.Now.AddMonths(4),
                    StartDate = DateTime.Now,
                    RegDate   = DateTime.Now,
                    Grade     = "",
                    StudentId = context.Set <Student>().Where(a => a.Name == "Cecilia Chapman").FirstOrDefault().Id
                }
            };

            context.Set <Enrollement>().AddRange(enrollments);
            context.SaveChanges();
        }
예제 #25
0
        public IActionResult enrollStudent(Student student)
        {
            try
            {
                Enrollement enrollment = new Enrollement();

                var con = new SqlConnection(sqlConGlobal);
                var com = new SqlCommand();


                com.Connection = con;
                con.Open();
                SqlTransaction transaction = con.BeginTransaction();
                com.Transaction = transaction;

                List <string[]> resultSet = new List <string[]>();

                com.CommandType = CommandType.StoredProcedure;
                com.CommandText = "BEGIN " +
                                  "DECLARE @idStudy int = (SELECT Studies.IdStudy FROM Studies" +
                                  "WHERE Studies.Name = @studiesName); " +
                                  "DECLARE @idEnrollment int = (SELECT TOP 1 Enrollment.IdEnrollment FROM Enrollment " +
                                  "ORDER BY Enrollment.IdEnrollment DESC) + 1; " +
                                  "INSERT INTO Enrollment(IdEnrollment, Semester, IdStudy, StartDate)" +
                                  "VALUES (@idEnrollment, 1, @idStudy, CURRENT_TIMESTAMP) ; " +
                                  "Select @idEnrollment;" +
                                  "END";
                if (com.Connection.State != ConnectionState.Open)
                {
                    com.Connection.Open();
                }

                SqlDataReader dr;
                dr = com.ExecuteReader();

                while (dr.Read())
                {
                    string[] tmp = new string[dr.FieldCount];
                    for (int i = 0; i < dr.FieldCount; i++)
                    {
                        tmp[i] = dr.GetValue(i).ToString();
                    }

                    resultSet.Add(tmp);
                }


                com.CommandType = CommandType.Text;
                com.Parameters.Clear();

                if (resultSet.Count == 0)
                {
                    return(new BadRequestResult());
                }

                com.CommandText = "SELECT * FROM Student WHERE Student.IndexNumber = @indexNumber";
                com.Parameters.AddWithValue("indexNumber", student.IndexNumber);

                dr = com.ExecuteReader();
                if (dr.Read())
                {
                    return(new BadRequestResult());
                }
                dr.Close();

                com.CommandText = "DECLARE @datetmp date = PARSE(@bdate as date USING 'en-GB');" +
                                  " INSERT INTO Student(IndexNumber, FirstName, LastName, BirthDate, IdEnrollment, Password, Salt)" +
                                  " VALUES (@indexNumber, @name, @lname, @datetmp, '1', @pass, @salt)";
                com.Parameters.Clear();
                com.Parameters.AddWithValue("indexNumber", student.IndexNumber);

                byte[] randomBytes = new byte[256 / 4];
                var    generator   = RandomNumberGenerator.Create();

                generator.GetBytes(randomBytes);
                var resultSalt = Convert.ToBase64String(randomBytes);
                var pass       = generateHash("pas" + student.IndexNumber, resultSalt);

                com.Parameters.AddWithValue("pass", pass);
                com.Parameters.AddWithValue("salt", resultSalt);
                com.Parameters.AddWithValue("name", student.FirstName);
                com.Parameters.AddWithValue("lname", student.LastName);
                com.Parameters.AddWithValue("bdate", student.BirthDate);
                com.ExecuteNonQuery();

                com.Parameters.Clear();

                com.Parameters.AddWithValue("indexNumber", student.IndexNumber);

                List <string[]> resultSet2 = new List <string[]>();

                com.CommandType = CommandType.StoredProcedure;
                com.CommandText = "DECLARE @datetmp date = PARSE(@bdate as date USING 'en-GB'); INSERT INTO Student VALUES(@indexNumber, @fname, @lname, @datetmp, @idEnrollment)";
                com.Parameters.Clear();
                if (com.Connection.State != ConnectionState.Open)
                {
                    com.Connection.Open();
                }

                dr = com.ExecuteReader();

                while (dr.Read())
                {
                    string[] tmp = new string[dr.FieldCount];
                    for (int i = 0; i < dr.FieldCount; i++)
                    {
                        tmp[i] = dr.GetValue(i).ToString();
                    }

                    resultSet2.Add(tmp);
                }

                dr.Close();
                com.CommandType = CommandType.Text;
                com.Parameters.Clear();


                enrollment.IdEnrollment = resultSet2[0][0];
                enrollment.IdStudy      = resultSet2[0][2];
                enrollment.Semester     = resultSet2[0][1];
                enrollment.StartDate    = resultSet2[0][3];

                transaction.Commit();
                ObjectResult objectResult = new ObjectResult(enrollment);
                objectResult.StatusCode = 200;
                return(objectResult);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(new BadRequestResult());
            }
        }
예제 #26
0
        public void Put(long id, [FromBody] EnrollementUser enrollementUser)
        {
            Enrollement enrollement = new Enrollement();

            enrollement.updateEnrollement(id, enrollementUser);
        }
예제 #27
0
 public Enrollement AddEnrollment(Enrollement Enrollment)
 {
     Enrollments.Add(Enrollment);
     return(Enrollment);
 }
        public IActionResult AddEnrollment(Enrollement Enrollment)
        {
            var Enroll = _EnrollRepository.AddEnrollment(Enrollment);

            return(Created(HttpContext.Request.Scheme + "://" + HttpContext.Request.Host + HttpContext.Request.Path + "/" + Enroll.CourseCode, Enroll));
        }
예제 #29
0
        public bool Post([FromBody] EnrollementUser enrollementUser)
        {
            Enrollement enrollement = new Enrollement();

            return(enrollement.AddEnrollementUser(enrollementUser));
        }
 public void Add(Enrollement e)
 {
     context.Add(e);
 }