private void btn_AddSubgroup_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         SubgroupEditPresenter subgroupEditPresenter = new SubgroupEditPresenter(new SubgroupEditView(), new Subgroup());
         Subgroup subgroup = (Subgroup)(subgroupEditPresenter.View.DataContext);
         subgroupEditPresenter.View.Label_AddOrEditSubgroup.Content = "Dodawanie podgrupy";
         SubgroupPresenter subgroupPresenter = (SubgroupPresenter)this.DataContext;
         if (subgroup != null)
         {
             subgroupEditPresenter.View.ShowDialog();
             if (subgroupEditPresenter.View.DialogResult == true)
             {
                 subgroupPresenter.SaveSubgroup(subgroup, false);
                 subgroupPresenter.GetAllSubgroups();
             }
         }
         else
         {
             MessageBox.Show("Wystąpił błąd podczas dodawania podgrupy. Spróbuj ponownie");
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
 private void ChangeCurrentRow(SubgroupPresenter subgroupPresenter, SubgroupEditPresenter subgroupEdit,
   Subgroup obj)
 {
     Subgroup subgroup = ((Subgroup)subgroupEdit.View.DataContext);
     obj.id = subgroup.id;
     obj.short_name = subgroup.short_name;
     obj.name = subgroup.name;
     subgroupPresenter.View.dataGridSubgroups.Items.Refresh();
 }
 private void btnUpdate_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         SubgroupPresenter subgroupPresenter = (SubgroupPresenter)this.DataContext;
         Subgroup subgroup = new Subgroup();
         DeepClone.CopyTo((Subgroup)(subgroupPresenter.View.dataGridSubgroups.SelectedItem), subgroup);
         SubgroupEditPresenter subgroupEditPresenter = new SubgroupEditPresenter(new SubgroupEditView(), subgroup);
         subgroupEditPresenter.View.Label_AddOrEditSubgroup.Content = "Edytowanie podgrupy";
         if (subgroupEditPresenter.View.ShowDialog() == true)
         {
             subgroupPresenter.SaveSubgroup(subgroup, true);
             Subgroup temp = (Subgroup)subgroupPresenter.View.dataGridSubgroups.SelectedItem;
             ChangeCurrentRow(subgroupPresenter, subgroupEditPresenter, temp);
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }