/// <summary>
        /// Handles the Click event of the btn_CritDelete control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
        /// Erstellt von Veit Berg, am 27.01.16
        private void btn_CritDelete_Click(object sender, EventArgs e)
        {
            try
            {
                DataGridViewRow row = dataGridView_Crits.SelectedRows[0];
                int critId = (int)row.Cells[0].Value;
                using (CriterionController critDelete = new CriterionController())
                {
                    System.Windows.Forms.DialogResult result;
                    if(critDelete.CheckIfCriterionIsAllocatedToAnyProject(critId))
                    {
                        result = MessageBox.Show("Das Kriterium ist einem oder mehreren Projekten zugeordnet.\n"+
                            "Wollen Sie das ausgeählte Kriterium wirklich löschen?",
                            "Löschbestätigung",
                            MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                    }
                    else
                    {
                        result = MessageBox.Show("Wollen Sie das ausgeählte Kriterium wirklich löschen?",
                           "Löschbestätigung",
                           MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                    }

                    if (result == DialogResult.Yes)
                    {
                        critDelete.DeleteCriterionFromDb(critId);
                        RefreshList();
                    }
                }
            }
            catch (Exception x)
            {
                MessageBox.Show(x.Message);
            }
        }
 /// <summary>
 /// Handles the Click event of the btn_CritUpdate control.
 /// speichert den neuen Namen und Beschreibung in der DB ab sofern keine unerlaubten Zeichen vorkommen
 /// </summary>
 /// <param name="sender">The source of the event.</param>
 /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
 /// Erstellt von Veit Berg, am 27.01.16
 private void btn_CritUpdate_Click(object sender, EventArgs e)
 {
     try
     {
         using (CriterionController CritUpdClick = new CriterionController())
         {
             Criterion critUpd = CritUpdClick.GetCriterionById(Criterion.Criterion_Id);
             critUpd.Criterion_Id = this.Criterion.Criterion_Id;
             if (CommonMethods.CheckIfForbiddenDelimiterInDb(textBox_CritNameUpdate.Text) ||
                 CommonMethods.CheckIfForbiddenDelimiterInDb(textBox_CritDescUpdate.Text))
             {
                 MessageBox.Show(CommonMethods.MessageForbiddenDelimiterWasFoundInText());
             }
             else
             {
                 critUpd.Name = textBox_CritNameUpdate.Text;
                 critUpd.Description = textBox_CritDescUpdate.Text;
                 CritUpdClick.UpdateCriterionInDb(critUpd);
                 this.Close();
             }
         }
     }
     catch (Exception x)
     {
         MessageBox.Show(x.Message);
     }
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="ProjectExporter"/> class.
        /// </summary>
        /// <param name="projectIdToExport">The project identifier to export.</param>
        /// <param name="exportDirectoryPath">The export file path.</param>
        /// Erstellt von Joshua Frey, am 13.01.2016
        public ProjectExporter(int projectIdToExport, string exportDirectoryPath)
        {
            // initialize db controller
            ExportProjectController = new ProjectController();
            ExportCriterionController = new CriterionController();
            ExportProductController = new ProductController();
            ExportProjectCriterionController = new ProjectCriterionController();
            ExportProjectProductController = new ProjectProductController();
            ExportFulfillmentController = new FulfillmentController();

            this.ExportFilePaths = new List<string>();

            ProjectId = projectIdToExport;
            ProjectName = ExportProjectController.GetProjectById(projectIdToExport).Name;
            Timestamp = CommonMethods.GetTimestamp();

            ExportFilePath = exportDirectoryPath;

            FileBaseName = String.Format(@"{0}\{1}_Project_{2}", ExportFilePath, Timestamp, ProjectName);

            string logFilePath = this.FileBaseName + ".log";
            this.ExportFilePaths.Add(logFilePath);

            // Create Logfile
            this.ArchiveLogWriter = new LogWriter(logFilePath, "Archivierungslog");
        }
 public Criterion_Update_View(Kriterienverwaltung_View parentView, int criterionId)
 {
     this.parentView = parentView;
     using (CriterionController CritUpdView = new CriterionController())
     {
         this.Criterion = CritUpdView.GetCriterionById(criterionId);
     }
     InitializeComponent();
 }
        /// <summary>
        /// Allocates the new project criterion.
        /// </summary>
        /// <param name="projCritToAllocate">The proj crit to allocate.</param>
        /// <param name="index">The index.</param>
        /// Erstellt von Veit Berg, am 27.01.16
        public void AllocateNewProjectCriterion(ProjectCriterion projCritToAllocate, int index)
        {
            try{
            ProjCrits.Add(projCritToAllocate);
            projCritCont.ChangeAllocationOfProjectCriterionsInDb(ProjectId, ProjCrits);
             //          AllCrits.Remove((Criterion)projCritToAllocate);
            //foreach (ProjectCriterion projCrit in ProjCrits)
            //{
            //    Criterion allocatedCrit = AllCrits.Single(crit => crit.Criterion_Id == projCrit.Criterion_Id);
            //    AllCrits.Remove(allocatedCrit);
            //}

            using (CriterionController critCont = new CriterionController())
            {
                AllCrits = critCont.GetAllCriterionsFromDb();

                if (ProjCrits.Count != 0)
                {
                    foreach (ProjectCriterion projCrit in ProjCrits)
                    {
                        Criterion allocatedCrit = AllCrits.Single(crit => crit.Criterion_Id == projCrit.Criterion_Id);
                        AllCrits.Remove(allocatedCrit);
                    }
                }
            }

            using (ProjectCriterionController proCriCont = new ProjectCriterionController())
            {
                ProjCrits = proCriCont.GetAllProjectCriterionsForOneProject(ProjectId);

            }
            using (CriterionController critCont = new CriterionController())
            {
                AllCrits = critCont.GetAllCriterionsFromDb();

                if (ProjCrits.Count != 0)
                {
                    foreach (ProjectCriterion projCrit in ProjCrits)
                    {
                        Criterion allocatedCrit = AllCrits.Single(crit => crit.Criterion_Id == projCrit.Criterion_Id);
                        AllCrits.Remove(allocatedCrit);
                    }
                }
            }
            dataGridView_CritAvail.DataSource = null;
            dataGridView_CritAvail.DataSource = AllCrits;

            refreshGridL();
            }
            catch (Exception x)
            {
                MessageBox.Show(x.Message);
            }
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="ProjectImporter"/> class.
        /// </summary>
        /// <param name="archiveFilePath">The archive file path.</param>
        /// Erstellt von Joshua Frey, am 13.01.2016
        public ProjectImporter(string archiveFilePath)
        {
            // initialize db controller
            ImportProjectController = new ProjectController();
            ImportCriterionController = new CriterionController();
            ImportProductController = new ProductController();
            ImportProjectCriterionController = new ProjectCriterionController();
            ImportProjectProductController = new ProjectProductController();
            ImportFulfillmentController = new FulfillmentController();
            this.ZipArchiveFilePath = archiveFilePath;

            this.ImportFilesDirectory = CreateImportDirectory();

            // Create Logfile
            string logFilePath = this.ImportFilesDirectory + @"\Import.log";
            this.ImportLogWriter = new LogWriter(logFilePath, "Import Log");
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="ProjectImporter"/> class.
        /// </summary>
        /// <param name="archiveFilePath">The archive file path.</param>
        /// Erstellt von Joshua Frey, am 13.01.2016
        public ProjectImporter(string archiveFilePath)
        {
            // initialize db controller
            ImportProjectController          = new ProjectController();
            ImportCriterionController        = new CriterionController();
            ImportProductController          = new ProductController();
            ImportProjectCriterionController = new ProjectCriterionController();
            ImportProjectProductController   = new ProjectProductController();
            ImportFulfillmentController      = new FulfillmentController();
            this.ZipArchiveFilePath          = archiveFilePath;

            this.ImportFilesDirectory = CreateImportDirectory();

            // Create Logfile
            string logFilePath = this.ImportFilesDirectory + @"\Import.log";

            this.ImportLogWriter = new LogWriter(logFilePath, "Import Log");
        }
 /// <summary>
 /// Refreshes the list.
 /// für manuelles Refreshen
 /// </summary>
 /// Erstellt von Veit Berg, am 27.01.16
 public void RefreshList()
 {
     //List<Criterion> CritList = critCont.GetAllCriterionsFromDb();
     //var bindingList = new BindingList<Criterion>(CritList);
     //var source = new BindingSource(bindingList, null);
     //dataGridView_Crits.DataSource = CritList;
     try
     {
         using (CriterionController CritRefr = new CriterionController())
         {
             List<Criterion> CritList = CritRefr.GetAllCriterionsFromDb();
             var bindingList = new BindingList<Criterion>(CritList);
             var source = new BindingSource(bindingList, null);
             dataGridView_Crits.DataSource = CritList;
         }
     }
     catch (Exception x)
     {
         MessageBox.Show(x.Message);
     }
 }
        /// <summary>
        /// Handles the Load event of the ProjCritStruUpdate_Form control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
        /// Erstellt von Veit Berg, am 27.01.16
        private void ProjCritStruUpdate_Form_Load(object sender, EventArgs e)
        {
            try{
            using (ProjectCriterionController proCriCont = new ProjectCriterionController())
            {
                ProjCrits = proCriCont.GetSortedCriterionStructure(ProjectId);
                using (CriterionController critCon = new CriterionController())
                {
                    foreach (ProjectCriterion projCrit in ProjCrits)
                    {
                        var singleCritId = critCon.GetCriterionById(projCrit.Criterion_Id);
                        projCrit.Name = singleCritId.Name.ToString();
                    }
                }

                var CritBindingList = new BindingList<ProjectCriterion>(ProjCrits);
                this.CritSource = new BindingSource(CritBindingList, null);
                dataGridView_CritStruUpd.DataSource = ProjCrits;
                dataGridView_CritStruUpd.Columns.Remove("Project_Id");
                dataGridView_CritStruUpd.Columns.Remove("Criterion");
                dataGridView_CritStruUpd.Columns.Remove("ParentCriterion");
                dataGridView_CritStruUpd.Columns.Remove("Project");
                dataGridView_CritStruUpd.Columns[0].ReadOnly = true;
                dataGridView_CritStruUpd.Columns[0].Width = 40;
                dataGridView_CritStruUpd.Columns[1].ReadOnly = true;
                dataGridView_CritStruUpd.Columns[1].HeaderText = "Layer";
                dataGridView_CritStruUpd.Columns[1].Width = 40;
                dataGridView_CritStruUpd.Columns[2].HeaderText = "P-ID";
                dataGridView_CritStruUpd.Columns[2].Width = 40;
                dataGridView_CritStruUpd.Columns[3].ReadOnly = true;
                dataGridView_CritStruUpd.Columns[3].HeaderText = "W(C)";
                dataGridView_CritStruUpd.Columns[4].ReadOnly = true;
                dataGridView_CritStruUpd.Columns[4].HeaderText = "W(PL)";
                dataGridView_CritStruUpd.Columns[5].ReadOnly = true;
                dataGridView_CritStruUpd.Columns[5].HeaderText = "W(PP)";
                dataGridView_CritStruUpd.Columns["Weighting_Percentage_Project"].Width = 40;
                dataGridView_CritStruUpd.Columns[6].ReadOnly = true;
                dataGridView_CritStruUpd.Columns[6].HeaderText = "Name";
                dataGridView_CritStruUpd.Columns.Add("Beschreibung", "Beschreibung");
                dataGridView_CritStruUpd.Columns["Beschreibung"].ReadOnly = true;
                int i = 0;
                foreach (ProjectCriterion ProCri in ProjCrits)
                {

                    dataGridView_CritStruUpd["Beschreibung", i].Value = ProCri.Criterion.Description;
                    i++;
                }

                dataGridView_CritStruUpd.Columns[1].DisplayIndex = 0;
                dataGridView_CritStruUpd.Columns[2].DisplayIndex = 1;
                dataGridView_CritStruUpd.Columns[6].DisplayIndex = 3;
                dataGridView_CritStruUpd.Columns[6].Width = 200;
                dataGridView_CritStruUpd.Columns[7].DisplayIndex = 4;
                dataGridView_CritStruUpd.Columns[7].Width = 200;
                dataGridView_CritStruUpd.Columns["Criterion_Id"].HeaderText = "ID";
                dataGridView_CritStruUpd.Columns["Name"].ReadOnly = true;
                dataGridView_CritStruUpd.Columns["Weighting_Percentage_Project"].Width = 100;

                dataGridView_CritStruUpd.Show();
            }
            this.dataGridView_CritStruUpd.CellValidating += new
            DataGridViewCellValidatingEventHandler(dataGridView_CritStruUpd_CellValidating);

            this.FormClosing += new FormClosingEventHandler(ProjCritStruUpdate_View_FormClosing);
            }
            catch (Exception i)
            {
                MessageBox.Show(i.Message);
            }
        }
        /// <summary>
        /// Handles the Click event of the btn_CritShow control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
        /// Erstellt von Veit Berg, am 27.01.16
        private void btn_CritShow_Click(object sender, EventArgs e)
        {
            try{
            using (CriterionController critShow = new CriterionController())
            {
                DataGridViewRow row = dataGridView_Crits.SelectedRows[0];
                int zelle1 = (int)row.Cells[0].Value;
                string zelle2 = (string)row.Cells[1].Value;
                string zelle3 = (string)row.Cells[2].Value;
                Criterion_Show_View CritShowView = new Criterion_Show_View(this, zelle1);
                CritShowView.Show();

            }
            }
            catch (Exception x)
            {
                MessageBox.Show(x.Message);
            }
        }
        /// <summary>
        /// Refreshes the grid l.
        /// </summary>
        /// Erstellt von Veit Berg, am 27.01.16
        private void refreshGridL()
        {
            try{

                dataGridView_CritAvail.Columns["Criterion_Id"].HeaderText = "ID";
                dataGridView_CritAvail.Columns["Criterion_Id"].Width = 30;
                dataGridView_CritAvail.Columns["Criterion_Id"].DisplayIndex = 0;
                dataGridView_CritAvail.Columns["Criterion_Id"].ReadOnly = true;
                dataGridView_CritAvail.Columns["Name"].HeaderText = "Name";
                dataGridView_CritAvail.Columns["Name"].Width = 200;
                dataGridView_CritAvail.Columns["Name"].DisplayIndex = 1;
                dataGridView_CritAvail.Columns["Name"].ReadOnly = true;
                dataGridView_CritAvail.Columns["Description"].HeaderText = "Beschreibung";
                dataGridView_CritAvail.Columns["Description"].Width = 240;
                dataGridView_CritAvail.Columns["Description"].DisplayIndex = 2;
                dataGridView_CritAvail.Columns["Description"].ReadOnly = true;

            dataGridView_ProjCrits.DataSource = null;
            using (ProjectCriterionController proCriCon = new ProjectCriterionController())
            {
                ProjCrits = proCriCon.GetAllProjectCriterionsForOneProject(ProjectId);
            }

            using (CriterionController critCon = new CriterionController())
            {
                foreach (ProjectCriterion projCrit in ProjCrits)
                {
                    var singleCritId = critCon.GetCriterionById(projCrit.Criterion_Id);
                    projCrit.Name = singleCritId.Name.ToString();
                }
            }

            dataGridView_ProjCrits.DataSource = ProjCrits;
            dataGridView_ProjCrits.Columns.Remove("Project_Id");
            dataGridView_ProjCrits.Columns.Remove("Layer_Depth");
            dataGridView_ProjCrits.Columns.Remove("Weighting_Cardinal");
            dataGridView_ProjCrits.Columns.Remove("Weighting_Percentage_Layer");
            dataGridView_ProjCrits.Columns.Remove("Weighting_Percentage_Project");
            dataGridView_ProjCrits.Columns.Remove("Criterion");
            dataGridView_ProjCrits.Columns.Remove("ParentCriterion");
            dataGridView_ProjCrits.Columns.Remove("Project");
            int i = 0;
            foreach (ProjectCriterion ProCri in ProjCrits)
            {

                dataGridView_ProjCrits["Beschreibung", i].Value = ProCri.Criterion.Description;
                i++;
            }
            //dataGridView_ProjCrits.Columns["Criterion_Id"].HeaderText = "ID";
            //dataGridView_ProjCrits.Columns["Name"].HeaderText = "Name";
            //dataGridView_ProjCrits.Columns["Description"].HeaderText = "Beschreibung";
            //dataGridView_ProjCrits.Columns["Criterion_Id"].DisplayIndex = 0;
            //dataGridView_ProjCrits.Columns["Name"].DisplayIndex = 1;
            //dataGridView_ProjCrits.Columns["Description"].DisplayIndex = 2;
            dataGridView_ProjCrits.Columns[0].DisplayIndex = 3;
            dataGridView_ProjCrits.Columns[1].HeaderText = "ID";
            dataGridView_ProjCrits.Columns[1].Width = 40;
            dataGridView_ProjCrits.Columns[2].HeaderText = "P-ID";
            dataGridView_ProjCrits.Columns[2].Width = 40;
            dataGridView_ProjCrits.Columns[3].Width = 200;
            dataGridView_ProjCrits.Columns[0].ReadOnly = true;
            dataGridView_ProjCrits.Columns[1].ReadOnly = true;
            dataGridView_ProjCrits.Columns[2].ReadOnly = true;
            dataGridView_ProjCrits.Columns[3].ReadOnly = true;
            //dataGridView_ProjCrits.Columns["Criterion_Id"].Width = 40;
            //dataGridView_ProjCrits.Columns["Name"].Width = 100;
            //dataGridView_ProjCrits.Columns["Description"].Width = 200;
            }
            catch (Exception x)
            {
                MessageBox.Show(x.Message);
            }
        }
        /// <summary>
        /// Handles the Load event of the ProjCritAssign_Form control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
        /// Erstellt von Veit Berg, am 27.01.16
        private void ProjCritAssign_Form_Load(object sender, EventArgs e)
        {
            try{
            using (ProjectCriterionController proCriCont = new ProjectCriterionController())
            {
                ProjCrits = proCriCont.GetAllProjectCriterionsForOneProject(ProjectId);

            }
            using (CriterionController critCont = new CriterionController())
            {
                AllCrits = critCont.GetAllCriterionsFromDb();

                if (ProjCrits.Count != 0)
                {
                    foreach (ProjectCriterion projCrit in ProjCrits)
                    {
                        Criterion allocatedCrit = AllCrits.Single(crit => crit.Criterion_Id == projCrit.Criterion_Id);
                        AllCrits.Remove(allocatedCrit);
                    }
                }
            }
            dataGridView_CritAvail.Rows.Clear();
            var CritBindingList = new BindingList<Criterion>(AllCrits);
            var CritSource = new BindingSource(CritBindingList, null);
            dataGridView_CritAvail.DataSource = AllCrits;
            dataGridView_CritAvail.Columns[0].HeaderText = "ID";
            dataGridView_CritAvail.Columns[0].Width = 30;
            dataGridView_CritAvail.Columns[1].Width = 200;
            dataGridView_CritAvail.Columns[2].Width = 240;
            dataGridView_CritAvail.Columns["Description"].HeaderText = "Beschreibung";
            dataGridView_CritAvail.Columns[0].ReadOnly = true;
            dataGridView_CritAvail.Columns[1].ReadOnly = true;
            dataGridView_CritAvail.Columns[2].ReadOnly = true;
            dataGridView_ProjCrits.Rows.Clear();
              using(CriterionController critCon = new CriterionController())
              {
            foreach (ProjectCriterion projCrit in ProjCrits)
            {
              var singleCritId = critCon.GetCriterionById(projCrit.Criterion_Id);
              projCrit.Name = singleCritId.Name.ToString();
            }
              }

            var ProjCritBindingList = new BindingList<ProjectCriterion>(ProjCrits);
            var projCritSource = new BindingSource(ProjCritBindingList, null);
            dataGridView_ProjCrits.DataSource = ProjCrits;
            dataGridView_ProjCrits.Columns.Remove("Project_Id");
            dataGridView_ProjCrits.Columns.Remove("Layer_Depth");
            dataGridView_ProjCrits.Columns.Remove("Weighting_Cardinal");
            dataGridView_ProjCrits.Columns.Remove("Weighting_Percentage_Layer");
            dataGridView_ProjCrits.Columns.Remove("Weighting_Percentage_Project");
            dataGridView_ProjCrits.Columns.Remove("Criterion");
            dataGridView_ProjCrits.Columns.Remove("ParentCriterion");
            dataGridView_ProjCrits.Columns.Remove("Project");
            dataGridView_ProjCrits.Columns.Add("Beschreibung", "Beschreibung");
            int i = 0;
            foreach (ProjectCriterion ProCri in ProjCrits)
            {

                dataGridView_ProjCrits["Beschreibung", i].Value = ProCri.Criterion.Description;
                i++;
            }
            dataGridView_ProjCrits.Columns[0].HeaderText = "ID";
            dataGridView_ProjCrits.Columns[0].Width = 40;
            dataGridView_ProjCrits.Columns[1].HeaderText = "P-ID";
            dataGridView_ProjCrits.Columns[1].Width = 40;
            dataGridView_ProjCrits.Columns[2].Width = 200;
            dataGridView_ProjCrits.Columns[3].Width = 190;
            dataGridView_ProjCrits.Columns[0].ReadOnly = true;
            dataGridView_ProjCrits.Columns[1].ReadOnly = true;
            dataGridView_ProjCrits.Columns[2].ReadOnly = true;
            dataGridView_ProjCrits.Columns[3].ReadOnly = true;
            this.FormClosing += new FormClosingEventHandler(ProjCritAssign_View_FormClosing);
            }
            catch (Exception i)
            {
                MessageBox.Show(i.Message);
            }
        }
        /// <summary>
        /// Handles the Click event of the btn_CritToPool control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
        /// Erstellt von Veit Berg, am 27.01.16
        private void btn_CritToPool_Click(object sender, EventArgs e)
        {
            try{
            if ((int)dataGridView_ProjCrits.SelectedRows[0].Index >= 0)
            {
                DataGridViewRow row = dataGridView_ProjCrits.SelectedRows[0];
                int CritId = (int)row.Cells["Criterion_Id"].Value;
                int index = dataGridView_ProjCrits.CurrentCell.RowIndex;
                ProjCrits.RemoveAt(index);
                projCritCont.ChangeAllocationOfProjectCriterionsInDb(ProjectId, ProjCrits);
                using (ProjectCriterionController proCriCont = new ProjectCriterionController())
                {
                    ProjCrits = proCriCont.GetAllProjectCriterionsForOneProject(ProjectId);

                }
                using (CriterionController critCont = new CriterionController())
                {
                    AllCrits = critCont.GetAllCriterionsFromDb();

                    if (ProjCrits.Count != 0)
                    {
                        foreach (ProjectCriterion projCrit in ProjCrits)
                        {
                            Criterion allocatedCrit = AllCrits.Single(crit => crit.Criterion_Id == projCrit.Criterion_Id);
                            AllCrits.Remove(allocatedCrit);
                        }
                    }
                }

                dataGridView_CritAvail.DataSource = null;
                dataGridView_CritAvail.DataSource = AllCrits;
                refreshGridL();
            }
            else
            {
                MessageBox.Show("Bitte erst eine Zeile auswählen");
            }
            }
            catch (Exception x)
            {
                MessageBox.Show(x.Message);
            }
        }
        /// <summary>
        /// Refreshes the grid.
        /// </summary>
        /// Erstellt von Veit Berg, am 27.01.16
        private void refreshGrid()
        {
            try{
            dataGridView_ProjCritBalance.DataSource = null;
            using (ProjectCriterionController proCriCont = new ProjectCriterionController())
            {
                ProjCrits = proCriCont.GetSortedCriterionStructure(ProjectId);
                using (CriterionController critCon = new CriterionController())
                {
                    foreach (ProjectCriterion projCrit in ProjCrits)
                    {
                        var singleCritId = critCon.GetCriterionById(projCrit.Criterion_Id);
                        projCrit.Name = singleCritId.Name.ToString();
                    }
                }

                var CritBindingList = new BindingList<ProjectCriterion>(ProjCrits);
                var CritSource = new BindingSource(CritBindingList, null);
                dataGridView_ProjCritBalance.DataSource = ProjCrits;

                dataGridView_ProjCritBalance.Columns.Remove("Project_Id");
                dataGridView_ProjCritBalance.Columns.Remove("Criterion");
                dataGridView_ProjCritBalance.Columns.Remove("ParentCriterion");
                dataGridView_ProjCritBalance.Columns.Remove("Project");
                int i = 0;
                foreach (ProjectCriterion ProCri in ProjCrits)
                {

                    dataGridView_ProjCritBalance["Beschreibung1", i].Value = ProCri.Criterion.Description;
                    i++;
                }
                dataGridView_ProjCritBalance.Columns["Criterion_Id"].HeaderText = "ID";
                dataGridView_ProjCritBalance.Columns[1].Width = 40;
                dataGridView_ProjCritBalance.Columns[1].ReadOnly = true;
                dataGridView_ProjCritBalance.Columns["Parent_Criterion_Id"].HeaderText = "P-ID";
                dataGridView_ProjCritBalance.Columns[2].Width = 40;
                dataGridView_ProjCritBalance.Columns[2].ReadOnly = true;
                dataGridView_ProjCritBalance.Columns["Weighting_Cardinal"].HeaderText = "G(C)";
                dataGridView_ProjCritBalance.Columns["Weighting_Cardinal"].Width = 40;
                dataGridView_ProjCritBalance.Columns["Weighting_Percentage_Layer"].HeaderText = "G(PL)";
                dataGridView_ProjCritBalance.Columns["Criterion_Id"].ReadOnly = true;
                dataGridView_ProjCritBalance.Columns["Weighting_Cardinal"].Width = 40;
                dataGridView_ProjCritBalance.Columns["Weighting_Percentage_Layer"].Width = 100;
                dataGridView_ProjCritBalance.Columns["Weighting_Percentage_Project"].Width = 100;
                dataGridView_ProjCritBalance.Columns["Weighting_Percentage_Project"].HeaderText = "G(PP)";
                dataGridView_ProjCritBalance.Columns[5].ReadOnly = true;
                dataGridView_ProjCritBalance.Columns["Layer_Depth"].HeaderText = "Layer";
                dataGridView_ProjCritBalance.Columns["Layer_Depth"].DisplayIndex = 0;
                dataGridView_ProjCritBalance.Columns["Layer_Depth"].Width = 50;
                dataGridView_ProjCritBalance.Columns["Criterion_Id"].DisplayIndex = 1;
                dataGridView_ProjCritBalance.Columns["Parent_Criterion_Id"].DisplayIndex = 2;
                dataGridView_ProjCritBalance.Columns["Weighting_Cardinal"].DisplayIndex = 3;
                dataGridView_ProjCritBalance.Columns["Weighting_Percentage_Layer"].DisplayIndex = 4;
                dataGridView_ProjCritBalance.Columns["Weighting_Percentage_Project"].DisplayIndex = 5;
                dataGridView_ProjCritBalance.Columns["Name"].DisplayIndex = 6;
                dataGridView_ProjCritBalance.Columns["Name"].Width = 150;
                dataGridView_ProjCritBalance.Columns["Beschreibung1"].DisplayIndex = 7;
                dataGridView_ProjCritBalance.Columns["Beschreibung1"].Width = 350;
                dataGridView_ProjCritBalance.Columns["Parent_Criterion_Id"].Width = 40;
                dataGridView_ProjCritBalance.Columns["Beschreibung1"].ReadOnly = true;
                dataGridView_ProjCritBalance.Columns["Name"].ReadOnly = true;
                dataGridView_ProjCritBalance.Columns["Criterion_Id"].ReadOnly = true;
                dataGridView_ProjCritBalance.Columns["Parent_Criterion_Id"].ReadOnly = true;
                dataGridView_ProjCritBalance.Columns["Weighting_Percentage_Project"].ReadOnly = true;
            }
            }
            catch (Exception x)
            {
                MessageBox.Show(x.Message);
            }
        }
        /// <summary>
        /// Handles the Load event of the ProjCritBalance_View control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
        /// Erstellt von Veit Berg, am 27.01.16
        private void ProjCritBalance_View_Load(object sender, EventArgs e)
        {
            try
            {
                using (ProjectCriterionController proCriCont = new ProjectCriterionController())
                {
                    ProjCrits = proCriCont.GetSortedCriterionStructure(ProjectId);
                    using (CriterionController critCon = new CriterionController())
                    {
                        foreach (ProjectCriterion projCrit in ProjCrits)
                        {
                            var singleCritId = critCon.GetCriterionById(projCrit.Criterion_Id);
                            projCrit.Name = singleCritId.Name.ToString();
                        }
                    }
                    dataGridView_ProjCritBalance.Rows.Clear();
                    var CritBindingList = new BindingList<ProjectCriterion>(ProjCrits);
                    var CritSource = new BindingSource(CritBindingList, null);
                    dataGridView_ProjCritBalance.DataSource = ProjCrits;
                    dataGridView_ProjCritBalance.Columns.Remove("Project_Id");
                    dataGridView_ProjCritBalance.Columns.Remove("Strukture");
                    dataGridView_ProjCritBalance.Columns.Remove("Criterion");
                    dataGridView_ProjCritBalance.Columns.Remove("ParentCriterion");
                    dataGridView_ProjCritBalance.Columns.Remove("Project");
                    dataGridView_ProjCritBalance.Columns.Add("Beschreibung1", "Beschreibung");
                    int i = 0;
                    foreach (ProjectCriterion ProCri in ProjCrits)
                    {

                        dataGridView_ProjCritBalance["Beschreibung1", i].Value = ProCri.Criterion.Description;
                        i++;
                    }
                    dataGridView_ProjCritBalance.Columns["Name"].Width = 150;
                    dataGridView_ProjCritBalance.Columns["Criterion_ID"].HeaderText = "ID";
                    dataGridView_ProjCritBalance.Columns["Criterion_ID"].Width = 40;
                    dataGridView_ProjCritBalance.Columns["Layer_Depth"].DisplayIndex = 0;
                    dataGridView_ProjCritBalance.Columns["Layer_Depth"].HeaderText = "Layer";
                    dataGridView_ProjCritBalance.Columns[1].Width = 40;
                    dataGridView_ProjCritBalance.Columns[1].ReadOnly = true;
                    dataGridView_ProjCritBalance.Columns[2].HeaderText = "P-ID";
                    dataGridView_ProjCritBalance.Columns[2].Width = 40;
                    dataGridView_ProjCritBalance.Columns[2].ReadOnly = true;
                    dataGridView_ProjCritBalance.Columns[3].HeaderText = "G(C)";
                    dataGridView_ProjCritBalance.Columns[3].Width = 40;
                    dataGridView_ProjCritBalance.Columns["Parent_Criterion_Id"].Width = 40;

                    dataGridView_ProjCritBalance.Columns[4].HeaderText ="G(PL)";
                    dataGridView_ProjCritBalance.Columns[4].Width = 100;
                    dataGridView_ProjCritBalance.Columns["Weighting_Percentage_Project"].HeaderText = "G(PP)";
                    dataGridView_ProjCritBalance.Columns["Weighting_Percentage_Project"].Width = 100;
                    dataGridView_ProjCritBalance.Columns["Weighting_Percentage_Project"].DisplayIndex = 5;
                    dataGridView_ProjCritBalance.Columns["Weighting_Percentage_Project"].ReadOnly = true;
                    dataGridView_ProjCritBalance.Columns[4].ReadOnly = true;
                    dataGridView_ProjCritBalance.Columns[5].ReadOnly = true;
                    dataGridView_ProjCritBalance.Columns[5].Width = 100;
                    dataGridView_ProjCritBalance.Columns["Beschreibung1"].DisplayIndex = 7;
                    dataGridView_ProjCritBalance.Columns["Beschreibung1"].Width = 350;
                    dataGridView_ProjCritBalance.Columns["Layer_Depth"].Width = 50;
                    dataGridView_ProjCritBalance.Columns["Beschreibung1"].ReadOnly = true;
                    dataGridView_ProjCritBalance.Columns["Name"].ReadOnly = true;
                    dataGridView_ProjCritBalance.Columns["Criterion_Id"].ReadOnly = true;
                    dataGridView_ProjCritBalance.Columns["Parent_Criterion_Id"].ReadOnly = true;
                }
            }
            catch (FormatException){
            MessageBox.Show("Bitte nur Zahlen eingeben");
            }
            this.dataGridView_ProjCritBalance.CellValidating += new
             DataGridViewCellValidatingEventHandler(dataGridView_ProjCritBalance_CellValidating);
            this.FormClosing += new FormClosingEventHandler(ProjCritBalance_View_FormClosing);
        }
        /// <summary>
        /// Handles the Load event of the ProjCritProdFulfilment_Form control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
        /// Erstellt von Veit Berg, am 27.01.16
        private void ProjCritProdFulfilment_Form_Load(object sender, EventArgs e)
        {
            try{
            formloaded = 1;
            using (ProjectProductController Projverw = new ProjectProductController())
            {
                ProjectProduct projprod = (ProjectProduct)comboBox_ProjCritProdFulf.SelectedItem;
                List<ProjectProduct> ProdList = Projverw.GetAllProjectProductsForOneProject(Project.Project_Id);
                List<Product> productsList = new List<Product>();
                foreach (ProjectProduct projProd in ProdList)
                {
                    productsList.Add(projProd.Product);
                }
                comboBox_ProjCritProdFulf.DataSource = productsList;

                comboBox_ProjCritProdFulf.DisplayMember = "Name";
                comboBox_ProjCritProdFulf.SelectedIndex = -1;
            }
                    using (ProjectCriterionController proCriCont = new ProjectCriterionController())
                     {
                         ProjCrits = proCriCont.GetSortedCriterionStructure(Project.Project_Id);
                         using (CriterionController critCon = new CriterionController())
                         {
                             foreach (ProjectCriterion projCrit in ProjCrits)
                             {
                                 var singleCritId = critCon.GetCriterionById(projCrit.Criterion_Id);
                                 projCrit.Name = singleCritId.Name.ToString();
                             }
                         }
                         var CritBindingList = new BindingList<ProjectCriterion>(ProjCrits);
                         var CritSource = new BindingSource(CritBindingList, null);
                         dataGridView_ProjCritProdFulf.DataSource = ProjCrits;
                         dataGridView_ProjCritProdFulf.Columns.Remove("Project_Id");
                         dataGridView_ProjCritProdFulf.Columns.Remove("Weighting_Cardinal");
                         dataGridView_ProjCritProdFulf.Columns.Remove("Weighting_Percentage_Layer");
                         dataGridView_ProjCritProdFulf.Columns.Remove("Weighting_Percentage_Project");
                         dataGridView_ProjCritProdFulf.Columns.Remove("Criterion");
                         dataGridView_ProjCritProdFulf.Columns.Remove("ParentCriterion");
                         dataGridView_ProjCritProdFulf.Columns.Remove("Project");
                         DataGridViewCheckBoxColumn chk = new DataGridViewCheckBoxColumn();
                         dataGridView_ProjCritProdFulf.Columns.Add(chk);
                         chk.Name = "Erfüllung";
                         DataGridViewTextBoxColumn bem = new DataGridViewTextBoxColumn();
                         bem.Name = "Bemerkung";
                         dataGridView_ProjCritProdFulf.Columns.Add(bem);
                         dataGridView_ProjCritProdFulf.Columns[4].DisplayIndex = 0;
                         dataGridView_ProjCritProdFulf.Columns[3].DisplayIndex = 1;
                         dataGridView_ProjCritProdFulf.Columns[5].DisplayIndex = 2;
                         dataGridView_ProjCritProdFulf.Columns[1].DisplayIndex = 3;
                         dataGridView_ProjCritProdFulf.Columns[0].DisplayIndex = 4;
                         dataGridView_ProjCritProdFulf.Columns[2].DisplayIndex = 5;
                         dataGridView_ProjCritProdFulf.Columns[0].HeaderText = "C-ID";
                         dataGridView_ProjCritProdFulf.Columns[1].HeaderText = "Layer";
                         dataGridView_ProjCritProdFulf.Columns[2].HeaderText = "P-ID";
                         dataGridView_ProjCritProdFulf.Columns[3].HeaderText = "Name";
                         dataGridView_ProjCritProdFulf.Columns[4].Name = "Erfüllung";
                         dataGridView_ProjCritProdFulf.Columns["Name"].ReadOnly = true;
                         dataGridView_ProjCritProdFulf.Columns["Layer_Depth"].ReadOnly = true;
                         dataGridView_ProjCritProdFulf.Columns["Criterion_ID"].ReadOnly = true;
                         dataGridView_ProjCritProdFulf.Columns["Parent_Criterion_Id"].ReadOnly = true;
                        dataGridView_ProjCritProdFulf.Columns[0].Width = 50;
                         dataGridView_ProjCritProdFulf.Columns[1].Width = 50;
                         dataGridView_ProjCritProdFulf.Columns[2].Width = 50;
                         dataGridView_ProjCritProdFulf.Columns[4].Width = 50;
                         dataGridView_ProjCritProdFulf.Columns[3].Width = 150;
                         dataGridView_ProjCritProdFulf.Columns[5].Width = 200;
                         foreach (DataGridViewRow row in dataGridView_ProjCritProdFulf.Rows)
                         {
                             row.Cells["Erfüllung"].Value = false;
                         }

                     }
            }
            catch (Exception i)
            {
                MessageBox.Show(i.Message);
            }
            this.dataGridView_ProjCritProdFulf.CellValidating += new
            DataGridViewCellValidatingEventHandler(dataGridView_ProjCritProdFulf_CellValidating);
            this.FormClosing += new FormClosingEventHandler(ProjCritProdFulfillment_View_FormClosing);
        }
        /// <summary>
        /// Handles the Load event of the ProjCritParentAllocation control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
        /// Erstellt von Veit Berg, am 27.01.16
        private void ProjCritParentAllocation_Load(object sender, EventArgs e)
        {
            try{
            List<Criterion> allocCrits = new List<Criterion>();

            using (CriterionController critCont = new CriterionController())
            {

                foreach (ProjectCriterion projCrit in AllAllocProjCrits)
                {

                    Criterion addCrit = critCont.GetCriterionById(projCrit.Criterion_Id);

                    allocCrits.Add(addCrit);
                }
            }
            comboBox_CritName.DataSource = allocCrits;
            comboBox_CritName.DisplayMember = "Name";
            }
            catch (Exception i)
            {
                MessageBox.Show(i.Message);
            }
        }
 public Criterion_Create_View(Kriterienverwaltung_View parentView)
 {
     this.parentView = parentView;
     this.critCont = new CriterionController();
     InitializeComponent();
 }