public void UpdateGroups(StudyCourse studyCourse, StudyGroup newStudyGroup)
        {
            if (studyCourse == null)
            {
                throw new ArgumentException("Argument 'studyCourse' is null");
            }

            if (newStudyGroup == null)
            {
                throw new ArgumentException("Argument 'newStudyGroup' is null");
            }

            bool foundGroup = false;

            foreach (var studyGroup in studyCourse.Groups)
            {
                if (studyGroup.TreeId == newStudyGroup.TreeId)
                {
                    foundGroup = true;

                    studyGroup.GroupName         = newStudyGroup.GroupName;
                    studyGroup.MinimalStudyCount = newStudyGroup.MinimalStudyCount;
                }
            }

            if (!foundGroup)
            {
                studyCourse.Groups.Add(newStudyGroup);
            }
        }
Beispiel #2
0
        public ActionResult Create(StudyGroupEditModel model)
        {
            if (!ModelState.IsValid)
            {
                IEnumerable <Teacher> teacherList       = _teacherRepository.Select(new TeacherFilter {
                });
                List <SelectListItem> teacherSelectList = new List <SelectListItem>();

                foreach (var item in teacherList)
                {
                    var selectedElement = new SelectListItem
                    {
                        Text  = item.Name,
                        Value = item.Id.ToString()
                    };
                    teacherSelectList.Add(selectedElement);
                }
                model.TeacherSelectList = teacherSelectList;
                return(View(model));
            }

            var entity = new StudyGroup
            {
                Name      = model.Name,
                TeacherId = model.TeacherId,
                CourseId  = 1
            };

            return(RedirectToAction("Edit", new { id = _studyGroupRepository.Insert(entity), returnUrl = model.ReturnUrl }));
        }
Beispiel #3
0
 /// <summary>
 /// Updates a studygroup, if it doesnt already exist a new entry will be inserted into the db.
 /// </summary>
 /// <param name="studyGroup"></param>
 public void UpdateStudyGroup(StudyGroup studyGroup)
 {
     lock (DbContext.locker)
     {
         Db.Update(studyGroup);
     }
 }
Beispiel #4
0
        public IHttpActionResult PutStudyGroup(int id, StudyGroup studyGroup)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != studyGroup.Id)
            {
                return(BadRequest());
            }

            db.Entry(studyGroup).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!StudyGroupExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Beispiel #5
0
        public int Insert(StudyGroup entity)
        {
            string procedureName = "StudyGroup_Insert";

            using (SqlConnection connection = new SqlConnection(_connectionString))
            {
                connection.Open();
                SqlCommand command = new SqlCommand(procedureName, connection)
                {
                    CommandType = System.Data.CommandType.StoredProcedure
                };
                SqlParameter NameParam = new SqlParameter
                {
                    ParameterName = "@Name",
                    Value         = entity.Name
                };
                command.Parameters.Add(NameParam);
                SqlParameter OtherParam2 = new SqlParameter
                {
                    ParameterName = "@TeacherId",
                    Value         = entity.TeacherId
                };
                command.Parameters.Add(OtherParam2);
                SqlParameter OtherParam1 = new SqlParameter
                {
                    ParameterName = "@CourseId",
                    Value         = entity.CourseId
                };
                command.Parameters.Add(OtherParam1);
                return((int)command.ExecuteScalar());
            }
        }
        private void button1_Click(object sender, EventArgs e)
        {
            //give warning -- are you sure?
            DialogResult dialogResult = MessageBox.Show("Are you sure you want to leave this group?", "Warning", MessageBoxButtons.YesNo);

            if (dialogResult == DialogResult.Yes)
            {
                MessageBox.Show("Successfully left study group", "Group Left", MessageBoxButtons.OK);
                String     s   = (String)activeGroupList.SelectedItem;
                StudyGroup stg = null;
                //find the group for the user
                foreach (StudyGroup sg in theUser.Groups)
                {
                    if (sg.StudyGroupName.Equals(s))
                    {
                        stg = sg;
                    }
                }
                if (stg == null)
                {
                    return;
                }

                stg.Members.Remove(theUser.DisplayName);
                theUser.Groups.Remove(stg);
            }
        }
        public IHttpActionResult PostStudyGroup(StudyGroup studyGroup)
        {
            //Add group to StudyGroup and X_Coordinator_Group tables
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.StudyGroups.Add(studyGroup);
            db.X_Coordinator_Groups.Add(new X_Coordinator_Group {
                StudyGroupId = studyGroup.Id, CoordinatorId = studyGroup.StudyCoordinatorId
            });

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateException)
            {
                if (StudyGroupExists(studyGroup.Id))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }

            return(CreatedAtRoute("DefaultApi", new { id = studyGroup.Id }, studyGroup));
        }
        private async void groupsList_SelectedIndexChanged(object sender, EventArgs e)
        {
            List <StudyGroup> everyGroup = await dbm.GetEveryStudyGroup();

            String s = (String)groupsList.SelectedItem;

            StudyGroup stg = null;

            //find the group for the user
            foreach (StudyGroup sg in everyGroup)
            {
                if (sg.StudyGroupName.Equals(s))
                {
                    stg = sg;
                }
            }

            if (stg == null)
            {
                return;
            }

            descriptionTextBox.Text = stg.Description;
            string minute = stg.MeetingTime.Minute + "";

            if (minute.Length == 1)
            {
                minute = "0" + minute;
            }
            meetingTimeFieldLabel.Text = stg.MeetingTime.Hour + ":" + minute;
            durationFieldLabel.Text    = stg.Duration + "";
        }
Beispiel #9
0
        public IHttpActionResult PostStudyGroup(StudyGroup studyGroup)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.StudyGroups.Add(studyGroup);

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateException)
            {
                if (StudyGroupExists(studyGroup.StudyGroupId))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }

            return(CreatedAtRoute("DefaultApi", new { id = studyGroup.StudyGroupId }, studyGroup));
        }
        public void CreateRowsFromStudyGroup(ISheet sheet, StudyGroup studyGroup)
        {
            int rowIndex = sheet.LastRowNum + 1;

            foreach (var study in studyGroup.Studies)
            {
                if (study.CreditPoints[0] > 0 ||
                    study.CreditPoints[1] > 0 ||
                    study.CreditPoints[2] > 0)
                {
                    CreateRowFromStudy(sheet, study);
                }
            }

            var row = sheet.GetRow(rowIndex);

            if (row == null)
            {
                return;
            }

            row.GetCell(0).SetCellValue(studyGroup.GroupName);

            var cellRange = new CellRangeAddress(rowIndex, sheet.LastRowNum, 0, 0);

            sheet.AddMergedRegion(cellRange);
        }
        private void UpdateGroupStudents(string[] selectedStudents, StudyGroup groupToUpdate)
        {
            if (selectedStudents == null)
            {
                groupToUpdate.Students = new List <Student>();
                return;
            }

            var selectedStudentsHS = new HashSet <string>(selectedStudents);
            var groupStudents      = new HashSet <int>
                                         (groupToUpdate.Students.Select(s => s.StudentID));

            foreach (var student in db.Students)
            {
                if (selectedStudentsHS.Contains(student.StudentID.ToString()))
                {
                    if (!groupStudents.Contains(student.StudentID))
                    {
                        groupToUpdate.Students.Add(student);
                    }
                }
                else
                {
                    if (groupStudents.Contains(student.StudentID))
                    {
                        groupToUpdate.Students.Remove(student);
                    }
                }
            }
        }
        public ActionResult DeleteConfirmed(int id)
        {
            StudyGroup studyGroup = db.StudyGroups.Find(id);

            db.StudyGroups.Remove(studyGroup);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Beispiel #13
0
        public async Task <StudyGroup> Insert(StudyGroup studyGroup)
        {
            Context.Entry(studyGroup).State = EntityState.Added;
            await Context.SaveChangesAsync();

            return(await Context.StudyGroups.Include(s => s.User)
                   .Include(s => s.Module)
                   .SingleAsync(s => s.Id == studyGroup.Id));
        }
Beispiel #14
0
        // При выборе специализации заполняем таблицу курсов, применяя два фильтра-селектора
        private void cbSpecializations_SelectionChangeCommitted(object sender, EventArgs e)
        {
            // получаем выбранную специальность
            var speciality = (Speciality)cbSpecialities.SelectedItem;
            // получаем выбранную специализацию
            var specialization = (Specialization)cbSpecializations.SelectedItem;

            // если один из фильтров не выбран, выходим
            if (speciality == null || specialization == null)
            {
                return;
            }

            // заполняем таблицу фильтрованными значениями
            var panel = GridPanelBuilder.BuildPropertyPanel(_root, new StudyGroup(), _root.StudyGroups,
                                                            _root.StudyGroups.FilteredBySpecialityAndSpecialization(speciality.IdSpeciality, specialization.IdSpecialization),
                                                            new[] { "IdSpeciality", "IdSpecialization" },
                                                            new[] { speciality.IdSpeciality, specialization.IdSpecialization });

            panel.GridSelectedChanged += Panel_GroupSelectedChanged;
            panel2.Controls.Add(panel);
            // предыдущую панель убираем
            if (panel2.Controls.Count > 1)
            {
                panel2.Controls.RemoveAt(0);
            }
            panel2.Enabled = true;

            // заполняем таблицу фильтрованными значениями
            if (_group == null)
            {
                panel = GridPanelBuilder.BuildPropertyPanel(_root, new Student(), _root.Students,
                                                            _root.Students.FilteredBySpecialityAndSpecialization(speciality.IdSpeciality, specialization.IdSpecialization),
                                                            new[] { "IdSpeciality", "IdSpecialization" },
                                                            new[] { speciality.IdSpeciality, specialization.IdSpecialization });
            }
            else
            {
                panel = GridPanelBuilder.BuildPropertyPanel(_root, new Student(), _root.Students,
                                                            _root.Students.FilteredBySpecialityAndSpecialization(speciality.IdSpeciality, specialization.IdSpecialization, _group.IdStudyGroup),
                                                            new[] { "IdSpeciality", "IdSpecialization", "IdStudyGroup" },
                                                            new[] { speciality.IdSpeciality, specialization.IdSpecialization, _group.IdStudyGroup });
            }

            panel.GridSelectedChanged += Panel_GridSelectedChanged;
            panel3.Controls.Add(panel);
            // предыдущую панель убираем
            if (panel3.Controls.Count > 1)
            {
                panel3.Controls.RemoveAt(0);
            }
            GridPanelBuilder.HideButtonsPanel(panel);
            panel3.Enabled     = true;
            btnStudent.Enabled = btnMoveToGroup.Enabled = false;
            _student           = null;
            _group             = null;
        }
        public static string Resolve(Tuition tuition, StudyGroup studyGroup)
        {
            if (studyGroup?.Id != null)
            {
                return(Resolve(studyGroup));
            }

            return($"{tuition.SubjectRef.Abbreviation}-{tuition.StudyGroupRef.Name}");
        }
        public async Task <ActionResult> DeleteConfirmed(string id)
        {
            StudyGroup studyGroup = await db.studyGroup.FindAsync(id);

            db.studyGroup.Remove(studyGroup);
            await db.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
        private Lesson ToLesson(Schedule schedule)
        {
            Discipline     discipline     = _context.Discipline.Find(schedule.DisciplineID);
            DisciplineType disciplineType = _context.DisciplineType.Find(schedule.DisciplineTypeID);
            Cabinet        cabinet        = _context.Cabinet.Find(schedule.CabinetID);
            Teacher        teacher        = _context.Teacher.Find(schedule.TeacherId);
            StudyGroup     group          = _context.StudyGroup.Find(schedule.StudyGroupID);

            return(new Lesson(discipline, disciplineType, cabinet, teacher, group));
        }
        public static string Resolve(StudyGroup studyGroup)
        {
            if (studyGroup.Id != null)
            {
                return(studyGroup.Id.ToString());
            }

            var grades = studyGroup.Grades.Select(x => x.Name).Distinct().OrderBy(x => x);

            return(string.Join("-", grades));
        }
        public async Task <ActionResult> Edit([Bind(Include = "id,name")] StudyGroup studyGroup)
        {
            if (ModelState.IsValid)
            {
                db.Entry(studyGroup).State = EntityState.Modified;
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            return(View(studyGroup));
        }
Beispiel #20
0
        private async void RefreshMessages(StudyGroup theStudyGroup)
        {
            groupChatPreview.Items.Clear();

            theStudyGroup.GroupDiscussionBoard.History = await dbm.GetMessages(dbm.SGKEY(theStudyGroup.StudyGroupName, theStudyGroup.CourseName, theStudyGroup.CourseSemester, theStudyGroup.Year));

            foreach (String message in theStudyGroup.GroupDiscussionBoard.GetListOfMessages())
            {
                groupChatPreview.Items.Add(message);
            }
        }
Beispiel #21
0
        public IHttpActionResult GetStudyGroup(int id)
        {
            StudyGroup studyGroup = db.StudyGroups.Find(id);

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

            return(Ok(studyGroup));
        }
Beispiel #22
0
        // Выбор строки в таблице групп изменился
        private void Panel_GroupSelectedChanged(object obj)
        {
            _group = (StudyGroup)obj;
            if (_group == null)
            {
                return;
            }
            var number = _group.Number;

            UpdateStudents();
            FingGroupText(number);
        }
        public async Task <ActionResult> Create([Bind(Include = "id,name")] StudyGroup studyGroup)
        {
            if (ModelState.IsValid)
            {
                db.studyGroup.Add(studyGroup);
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }

            return(View(studyGroup));
        }
Beispiel #24
0
 public async Task Update(StudyGroup studyGroup)
 {
     try
     {
         Context.Entry(studyGroup).State = EntityState.Modified;
         await Context.SaveChangesAsync();
     }
     catch (Exception ex)
     {
         throw new ArgumentException(ex.Message, ex);
     }
 }
        public void UpdateGroups(StudyGroup newStudyGroup)
        {
            if (newStudyGroup == null)
            {
                throw new ArgumentException("Argument 'newStudyGroup' is null");
            }

            foreach (var studyProject in StudyProjects)
            {
                UpdateGroups(studyProject, newStudyGroup);
            }
        }
Beispiel #26
0
 /// <summary>
 /// Inserts the studyGroup into the database.
 /// </summary>
 /// <param name="studyGroup"></param>
 /// <returns>Returns true if the studyGroup was inserted,
 /// </returns>
 public bool InsertStudyGroup(StudyGroup studyGroup)
 {
     lock (DbContext.locker)
     {
         var rowsAffected = Db.Update(studyGroup);
         if (rowsAffected == 0)
         {
             studyGroup.id = Utility.Hasher.Base64Encode(studyGroup.id);
             Db.Insert(studyGroup);
         }
     }
     return(true);
 }
Beispiel #27
0
        public IHttpActionResult PostStudyGroup(StudyGroupViewModel studyGroup)
        {
            //Add group to StudyGroup and X_Coordinator_Group tables
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var group = new StudyGroup {
                StudyGroupCreatedTime = studyGroup.StudyGroupCreadtedTime, StudyGroupName = studyGroup.StudyGroupName
            };

            db.StudyGroups.Add(group);
            db.X_Coordinator_Groups.Add(new X_Coordinator_Group {
                StudyGroupId = group.Id, CoordinatorId = studyGroup.StudyCoordinatorId
            });

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateException)
            {
                if (StudyGroupExists(studyGroup.Id))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }
            catch (DbEntityValidationException ex)
            {
                // Retrieve the error messages as a list of strings.
                var errorMessages = ex.EntityValidationErrors
                                    .SelectMany(x => x.ValidationErrors)
                                    .Select(x => x.ErrorMessage);

                // Join the list to a single string.
                var fullErrorMessage = string.Join("; ", errorMessages);

                // Combine the original exception message with the new one.
                var exceptionMessage = string.Concat(ex.Message, " The validation errors are: ", fullErrorMessage);

                // Throw a new DbEntityValidationException with the improved exception message.
                throw new DbEntityValidationException(exceptionMessage, ex.EntityValidationErrors);
            }

            return(CreatedAtRoute("DefaultApi", new { id = studyGroup.Id }, group));
        }
        public GroupPerformanceForm(Root root)
        {
            InitializeComponent();
            _root = root;

            // селектор оценок
            foreach (var item in typeof(Grade).GetEnumValues())
            {
                var value = new EnumCover()
                {
                    Item = (Grade)item
                };
                cbGrade.Items.Add(value);
            }

            // селектор предметов
            foreach (var item in _root.Matters)
            {
                cbMatters.Items.Add(item);
            }
            if (cbMatters.Items.Count > 0)
            {
                cbMatters.SelectedItem = _matter = (Matter)cbMatters.Items[0];
            }

            // селектор групп, добавляем "непустые" группы
            foreach (var item in _root.StudyGroups)
            {
                if (_root.Students.Any(x => x.IdStudyGroup == item.IdStudyGroup))
                {
                    cbStudyGroups.Items.Add(item);
                }
            }
            if (cbStudyGroups.Items.Count > 0)
            {
                cbStudyGroups.SelectedItem = _group = (StudyGroup)cbStudyGroups.Items[0];
            }

            // селектор семестров
            _semester = root.Semesters.FirstOrDefault(x => x.Number == 1);
            foreach (var item in _root.Semesters)
            {
                cbSemesters.Items.Add(item);
            }
            cbSemesters.SelectedItem = _semester;

            panel1.Enabled = _semester != null;

            cbMatters_SelectionChangeCommitted(null, new EventArgs());
        }
        // GET: StudyGroup/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            StudyGroup studyGroup = db.StudyGroups.Find(id);

            if (studyGroup == null)
            {
                return(HttpNotFound());
            }
            return(View(studyGroup));
        }
Beispiel #30
0
        public IHttpActionResult DeleteStudyGroup(string id)
        {
            StudyGroup studyGroup = db.StudyGroups.Find(id);

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

            db.StudyGroups.Remove(studyGroup);
            db.SaveChanges();

            return(Ok(studyGroup));
        }