示例#1
0
 /// <summary>
 /// Delete discipline
 /// </summary>
 /// <param name="id"></param>
 /// <returns></returns>
 public bool DeleteDiscipline(int id)
 {
     using (var context = new CoursesOfChoiceEntities())
     {
         var discipline = context.Disciplines.SingleOrDefault(disc => disc.id == id);
         if (discipline == null)
         {
             return(false);
         }
         else
         {
             var singleOrDefault = discipline.Group.SingleOrDefault(gr => gr.Deleted == false && gr.Wave == 1);
             var groups          = discipline.Group.ToList();
             foreach (var gr in groups)
             {
                 var sigs = gr.StudentsInGroups;
                 context.Set <StudentsInGroups>().RemoveRange(sigs);
                 context.Set <Group>().Remove(gr);
             }
             context.Set <Disciplines>().Remove(discipline);
             context.SaveChanges();
             return(true);
         }
     }
 }
示例#2
0
        public ActionResult RegisteringInTheCourse(int id)
        {
            if (repository.checkRegisteredPhoneNumber(SessionPersister.Login) == false)
            {
                return(View("EditPhone"));
            }
            if (repository.checkRegisteredEmail(SessionPersister.Login) == false)
            {
                return(View("EditEMail"));
            }


            var disciplineAcc = repository.GetDiscipline(id);
            var studInGroup   = new StudentsInGroups();
            var group         = repository.GetGroupByDisciplinesId(disciplineAcc.id);

            studInGroup.groupID        = group.id;
            studInGroup.studentID      = SessionPersister.Login;
            studInGroup.DateOfRegister = DateTime.Now;

            if (DateTime.Now.Year == group.year)
            {
                using (var context = new CoursesOfChoiceEntities())
                {
                    context.StudentsInGroups.Add(studInGroup);
                    context.SaveChanges();
                    repository.addAmountStudent(group.id);
                }
            }

            return(View("YouAreRegisted", disciplineAcc));
        }
示例#3
0
 public void DeleteGroups()
 {
     using (var context = new CoursesOfChoiceEntities())
     {
         context.Group.ToList().ForEach(gr => gr.Deleted = true);
         context.SaveChanges();
     }
 }
示例#4
0
 //!!!!!!!!!!!!!!!!!!!!
 public void AddStudentInGroups(StudentsInGroups sig)
 {
     using (var context = new CoursesOfChoiceEntities())
     {
         context.StudentsInGroups.Add(sig);
         addAmountStudent(sig.groupID);
         context.SaveChanges();
     }
 }
示例#5
0
        public void AddGroup(Group group)
        {
            using (var context = new CoursesOfChoiceEntities())
            {
                context.Group.Add(group);

                context.SaveChanges();
            }
        }
示例#6
0
 public void deleteAmountStudent(int groupID)
 {
     using (var context = new CoursesOfChoiceEntities())
     {
         var gr = context.Group.SingleOrDefault(g => g.id == groupID);
         gr.AmountOfStudent--;
         context.SaveChanges();
     }
 }
示例#7
0
 public bool DeleteAdmin(string login)
 {
     using (var context = new CoursesOfChoiceEntities())
     {
         var admin = context.Administrators.SingleOrDefault(st => st.login == login);
         context.Administrators.Remove(admin);
         context.SaveChanges();
         return(true);
     }
 }
示例#8
0
        public void DeleteStudentInGroups(StudentsInGroups sig)
        {
            using (var context = new CoursesOfChoiceEntities())
            {
                var elToRemove = context.Set <StudentsInGroups>().SingleOrDefault(el => el.id == sig.id);

                context.Set <StudentsInGroups>().Remove(elToRemove);
                deleteAmountStudent(sig.groupID);
                context.SaveChanges();
            }
        }
示例#9
0
 public void ChangeUserPass(string login, string newPass)
 {
     using (var context = new CoursesOfChoiceEntities())
     {
         var userAcc = context.Users.SingleOrDefault(acc => acc.login == login);
         if (userAcc != null)
         {
             userAcc.password = _hashProvider.Encrypt(newPass);
         }
         context.SaveChanges();
     }
 }
示例#10
0
 public void ChangeStudentEMail(string login, string newEMail)
 {
     using (var context = new CoursesOfChoiceEntities())
     {
         var studentAcc = context.Students.SingleOrDefault(acc => acc.id == login);
         if (studentAcc != null)
         {
             studentAcc.eMail = newEMail;
         }
         context.SaveChanges();
     }
 }
示例#11
0
 public void ChangeStudentPhone(string login, string newPhone)
 {
     using (var context = new CoursesOfChoiceEntities())
     {
         var studentAcc = context.Students.SingleOrDefault(acc => acc.id == login);
         if (studentAcc != null)
         {
             studentAcc.phoneNumber = newPhone;
         }
         context.SaveChanges();
     }
 }
示例#12
0
        public void ManUpGroupsForSecondWave()
        {
            using (var context = new CoursesOfChoiceEntities())
            {
                var notRegisteredStd = (from std in context.Students
                                        join sig in context.StudentsInGroups on std.id equals sig.studentID into loj
                                        from l in loj.DefaultIfEmpty()
                                        where l == null
                                        orderby std.AverageMark descending
                                        select std).ToList();

                // get IQueriable that have groupId and std count
                // all groups that have less then 25 std
                var smallSig = (from sig in context.StudentsInGroups
                                group sig by sig.groupID into gSig
                                //where gSig.Count() < 25
                                // && context.Group.Where(gr => gr.id == gSig.Key && gr.Wave == wave).FirstOrDefault().Deleted == false
                                orderby gSig.Count() descending
                                select new { GroupId = gSig.Key, Count = gSig.Count() }).ToList();
                smallSig = smallSig.Where(si =>
                {
                    var firstOrDefault = context.Group.FirstOrDefault(gr => gr.id == si.GroupId);
                    return(firstOrDefault != null && firstOrDefault.Deleted == false);
                }).ToList();

                for (var i = 0; i < smallSig.Count; i++)
                {
                    if (smallSig[i].Count < 25)
                    {
                        // students that's need to add to fill group
                        int stdAmountToAdd = 25 - smallSig[i].Count;

                        var stdToAdd = notRegisteredStd.GetRange(0, stdAmountToAdd);

                        //fill this group with not registered student
                        for (int j = 0; j < stdAmountToAdd; j++)
                        {
                            notRegisteredStd.Remove(stdToAdd[j]);

                            context.StudentsInGroups.Add(new StudentsInGroups()
                            {
                                studentID      = stdToAdd[j].id,
                                groupID        = smallSig[i].GroupId,
                                DateOfRegister = DateTime.Now
                            });
                        }
                    }
                }

                context.SaveChanges();
            }
        }
示例#13
0
        public void UpdateAdmin(Administrators adminAcc)
        {
            using (var context = new CoursesOfChoiceEntities())
            {
                var admin = context.Administrators.SingleOrDefault(el => el.login == adminAcc.login);
                if (admin != null)
                {
                    admin.roles = adminAcc.roles;
                }

                context.SaveChanges();
            }
        }
示例#14
0
 public void DeleteMyDiscipline(int id, string login)
 {
     using (var context = new CoursesOfChoiceEntities())
     {
         var sig = context.StudentsInGroups.Where(st => st.studentID == login).ToList();
         foreach (var item in sig)
         {
             if (item.Group.Disciplines.id == id)
             {
                 context.StudentsInGroups.Remove(item);
                 context.SaveChanges();
             }
         }
     }
 }
示例#15
0
        /// <summary>
        /// Add new student
        /// </summary>
        /// <param name="student"></param>
        /// <returns></returns>
        public bool AddStudent(Students student)
        {
            using (var context = new CoursesOfChoiceEntities())
            {
                bool valToReturn = true;
                if (context.Students.Any(el => el.id == student.id))
                {
                    valToReturn = false;
                }
                else
                {
                    context.Students.Add(student);
                    context.SaveChanges();
                }

                return(valToReturn);
            }
        }
示例#16
0
        /// <summary>
        /// Update discipline with values from discipline param
        /// </summary>
        /// <param name="discipline"></param>
        public void UpdateDiscipline(Disciplines discipline)
        {
            using (var context = new CoursesOfChoiceEntities())
            {
                var disciplineToUpdate = context.Disciplines.SingleOrDefault(disc => disc.id == discipline.id);
                if (disciplineToUpdate != null)
                {
                    disciplineToUpdate.name        = discipline.name;
                    disciplineToUpdate.lecturer    = discipline.lecturer;
                    disciplineToUpdate.kafedra     = discipline.kafedra;
                    disciplineToUpdate.course      = discipline.course;
                    disciplineToUpdate.description = discipline.description;
                }


                context.SaveChanges();
            }
        }
示例#17
0
        /// <summary>
        /// Add new discipline
        /// </summary>
        /// <param name="discipline"></param>
        /// <returns></returns>
        public bool AddDiscipline(Disciplines discipline)
        {
            using (var context = new CoursesOfChoiceEntities())
            {
                var valToReturn = true;
                if (context.Disciplines.Any(el => el.name == discipline.name))
                {
                    valToReturn = false;
                }
                else
                {
                    context.Disciplines.Add(discipline);
                    context.SaveChanges();
                }

                return(valToReturn);
            }
        }
示例#18
0
        public void UpdateGroup(Group group)
        {
            using (var context = new CoursesOfChoiceEntities())
            {
                var gr = context.Group.SingleOrDefault(el => el.id == group.id);
                if (gr != null)
                {
                    gr.Deleted         = group.Deleted;
                    gr.AmountOfStudent = group.AmountOfStudent;
                    gr.Status          = group.Status;
                    gr.Wave            = group.Wave;
                    gr.disciplinesID   = group.disciplinesID;
                    gr.year            = group.year;

                    context.SaveChanges();
                }
            }
        }
示例#19
0
        /// <summary>
        /// Update student who has id == student.id
        /// </summary>
        /// <param name="student"></param>
        public void UpdateStudent(Students student)
        {
            using (var context = new CoursesOfChoiceEntities())
            {
                var studentToUpdate = context.Students.SingleOrDefault(st => st.id == student.id);
                if (studentToUpdate != null)
                {
                    studentToUpdate.fio         = student.fio;
                    studentToUpdate.course      = student.course;
                    studentToUpdate.@group      = student.@group;
                    studentToUpdate.AverageMark = student.AverageMark;
                    studentToUpdate.Deleted     = student.Deleted;
                }


                context.SaveChanges();
            }
        }
示例#20
0
        public bool AddAdmin(Administrators admin)
        {
            using (var context = new CoursesOfChoiceEntities())
            {
                bool valToReturn = true;
                if (context.Administrators.Any(el => el.login == admin.login))
                {
                    valToReturn = false;
                }
                else
                {
                    admin.password = _hashProvider.Encrypt(admin.password);
                    context.Administrators.Add(admin);
                    context.SaveChanges();
                }

                return(valToReturn);
            }
        }
示例#21
0
        /// <summary>
        /// "Deleting" student ( means make his Deleted attr true)
        /// </summary>
        /// <param name="id">Student id</param>
        /// <returns>State of operation</returns>
        public bool DeleteStudent(string id)
        {
            using (var context = new CoursesOfChoiceEntities())
            {
                var student = context.Students.SingleOrDefault(st => st.id == id);

                if (student != null && student.Deleted)
                {
                    return(false);
                }
                else
                {
                    if (student != null)
                    {
                        student.Deleted = true;
                    }
                    context.SaveChanges();
                    return(true);
                }
            }
        }