public void DeleteFaculty(FacultyEdit toEdit)
 {
     Faculty f = this._repository.GetFaculty(toEdit.FacultyName);
     if (f != null && (f.Plans.Count > 0 || f.SubjectsDatas.Count > 0 || f.Specializations.Count > 0))
         throw new UpdateException("Nie można usunąć kierunku,\nponieważ posiada powiązania");
     else
     {
         this._repository.DeleteFaculty(f);
     }
 }
 private void btnDepartamentsMngmt_Click(object sender, EventArgs e)
 {
     if (new Departaments().ShowDialog() == DialogResult.Yes)
     {
         FillWithDepartaments();
         Clear();
         toEdit = null;
         Disable();
     }
 }
        public FacultyEdit GetFacultyEdit(string facultyName)
        {
            Faculty f = this.GetFaculty(facultyName);
            f.Departaments.Load();
            if (f != null)
            {
                FacultyEdit ff = new FacultyEdit()
                {
                    FacultyName = f.Name,
                    FacultyID = f.FacultyID,
                    Departaments = f.Departaments
                };
                return ff;
            }

            return null;
        }
        public bool EditFaculty(FacultyEdit toEdit)
        {
            if (toEdit != null)
            {
                Faculty f = this._repository.GetFaculty(toEdit.FacultyName);
                if (f != null && f.FacultyID != toEdit.FacultyID && f.Name.Equals(toEdit.FacultyName))
                    toEdit.AddError("Kierunek o takiej nazwie już istnieje");

                if (toEdit.IsValid)
                {
                    f = this._repository.GetFaculty(toEdit.FacultyID);
                    f.Name = toEdit.FacultyName;
                    f.Departaments.Clear();
                    foreach (Departament d in toEdit.Departaments)
                        f.Departaments.Add(d);

                    this._repository.EditFaculty(f);
                    return true;
                }
            }
            return false;
        }
 private void btnCancel_Click(object sender, EventArgs e)
 {
     if (toEdit != null)
     {
         toEdit = null;
         Disable();
         Clear();
         lblValidation.Text = string.Empty;
     }
 }
 private void listFaculties_DoubleClick(object sender, EventArgs e)
 {
     lblValidation.Text = string.Empty;
     if (listFaculties.SelectedIndex >= 0)
     {
         FacultyEdit faculty = FacultyController.Instance.GetFacultyEdit(listFaculties.SelectedItem.ToString());
         if (faculty != null)
         {
             toEdit = faculty;
             Enable();
             tbNewFacultyName.Text = faculty.FacultyName;
             for (int i = 0; i < clbDepartaments.Items.Count; i++)
                 clbDepartaments.SetItemChecked(i, false);
             foreach (Departament d in toEdit.Departaments)
             {
                 for (int i = 0; i < clbDepartaments.Items.Count; i++)
                     if (d.Name.Equals(clbDepartaments.Items[i].ToString()))
                     {
                         clbDepartaments.SetItemChecked(i, true);
                         break;
                     }
             }
         }
         else
         {
             lblValidation.Text = "Kierunek nie istnieje";
             toEdit = null;
         }
     }
 }
 private void btnDelete_Click(object sender, EventArgs e)
 {
     lblValidation.Text = string.Empty;
     if (toEdit != null)
     {
         try
         {
             FacultyController.Instance.DeleteFaculty(toEdit);
             FillWithFaculties(null);
             cbDepartamentFilter.SelectedIndex = 0;
             toEdit = null;
             Disable();
             Clear();
             changes = true;
         }
         catch (UpdateException ex)
         {
             lblValidation.Text = ex.Message;
         }
     }
 }