public void DeleteInstitute(InstituteEdit toEdit)
        {
            Institute i = this.repository.GetInstitute(toEdit.InstituteName);

            if (i != null && i.SubjectsDatas.Count > 0)
                throw new UpdateException("Nie można usunąć instytutu,\nponieważ posiada powiązania");
            else
                this.repository.DeleteInstitute(i);
        }
        public InstituteEdit GetInstituteEdit(string instituteName)
        {
            Institute i = this.GetInstitute(instituteName);
            i.Departaments.Load();
            if (i != null)
            {
                InstituteEdit ii = new InstituteEdit()
                {
                    InstituteName = i.Name,
                    InstituteID = i.InstituteID,
                    Departaments = i.Departaments
                };
                return ii;
            }

            return null;
        }
        public bool EditInstitute(InstituteEdit toEdit)
        {
            if (toEdit != null)
            {
                Institute i = this.repository.GetInstitute(toEdit.InstituteName);
                if (i != null && i.InstituteID != toEdit.InstituteID && i.Name.ToLower().Equals(toEdit.InstituteName.ToLower()))
                    toEdit.AddError("Instytut o takiej nazwie już istnieje");

                if (toEdit.IsValid)
                {
                    i = this.repository.GetInstitute(toEdit.InstituteID);
                    i.Name = toEdit.InstituteName;
                    i.Departaments.Clear();
                    foreach (Departament d in toEdit.Departaments)
                        i.Departaments.Add(d);

                    this.repository.EditInstitute(i);
                    return true;
                }
            }
            return false;
        }
 private void btnDepartamentsMngmt_Click(object sender, EventArgs e)
 {
     if (new Departaments().ShowDialog() == DialogResult.Yes)
     {
         FillWithDepartaments();
         Clear();
         toEdit = null;
         Disable();
     }
 }
 private void btnCancel_Click(object sender, EventArgs e)
 {
     if (toEdit != null)
     {
         toEdit = null;
         Disable();
         Clear();
         lblValidation.Text = string.Empty;
     }
 }
 private void listInstitutes_DoubleClick(object sender, EventArgs e)
 {
     lblValidation.Text = string.Empty;
     if (listInstitutes.SelectedIndex >= 0)
     {
         InstituteEdit institute = InstituteController.Instance.GetInstituteEdit(listInstitutes.SelectedItem.ToString());
         if (institute != null)
         {
             toEdit = institute;
             Enable();
             tbNewInstituteName.Text = institute.InstituteName;
             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 = "Instytut nie istnieje";
             toEdit = null;
         }
     }
 }
 private void btnDelete_Click(object sender, EventArgs e)
 {
     lblValidation.Text = string.Empty;
     if (toEdit != null)
     {
         try
         {
             InstituteController.Instance.DeleteInstitute(toEdit);
             FillWithInstitutes(null);
             toEdit = null;
             Disable();
             Clear();
             changes = true;
         }
         catch (UpdateException ex)
         {
             lblValidation.Text = ex.Message;
         }
     }
 }