public ProjCritAssign_View(Form parentView, int projectId) { this.parentView = parentView; ProjectId = projectId; this.projCritCont = new ProjectCriterionController(); InitializeComponent(); }
public ProjCritStruUpdate_View(Form parentView, int projectID) { this.parentView = parentView; ProjectId = projectID; this.projCritCont = new ProjectCriterionController(); InitializeComponent(); }
/// <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"); }
/// <summary> /// Deletes the criterion from database. /// </summary> /// <param name="criterionId">The criterion identifier.</param> /// <returns> /// bool if deletion was successfull< /// /returns> /// Erstellt von Joshua Frey, am 14.12.2015 /// <exception cref="NWATException"> /// "Das Kriterium mit der Id X existiert nicht in der Datenbank." /// or /// SqlException if you try to delete a criterion, which is a parent criterion in project criterion table /// </exception> public bool DeleteCriterionFromDb(int criterionId) { //Criterion delCriterion = (from crit in base.DataContext.Criterion // where crit.Criterion_Id == criterionId // select crit).FirstOrDefault(); Criterion delCriterion = GetCriterionById(criterionId); if (delCriterion != null) { // check if criterion is parent Id in any project using (ProjectCriterionController tempProjCritContr = new ProjectCriterionController()) { List <ProjectCriterion> projectCriterionChildren = tempProjCritContr.GetAllProjectCriterionsWhichHaveGivenCriterionAsParent(delCriterion.Criterion_Id); if (projectCriterionChildren.Count > 0) { string caption = "Löschen der untergeordneten Kriterien"; var result = MessageBox.Show(MessageDeleteAllChildProjectCriterions(projectCriterionChildren, delCriterion), caption, MessageBoxButtons.YesNo, MessageBoxIcon.Question); // User interaction --> User can decide if export files outside the zip archive should be deleted if (result == DialogResult.Yes) { foreach (ProjectCriterion childProjCritToDelete in projectCriterionChildren) { bool forceDeallocationOfAllChildren = false; tempProjCritContr.DeallocateCriterionAndAllChildCriterions(childProjCritToDelete.Project_Id, childProjCritToDelete, forceDeallocationOfAllChildren); } } // if user declines deallocation of all children, the criterion will not be removed from master table. else { return(false); } } } base.DataContext.Criterion.DeleteOnSubmit(delCriterion); base.DataContext.SubmitChanges(); } else { throw(new NWATException(MessageCriterionDoesNotExist(criterionId))); } return(GetCriterionById(criterionId) == null); }
/// <summary> /// Allocates the product. /// </summary> /// <param name="projectId">The project identifier.</param> /// <param name="projProd">The proj product.</param> /// <returns> /// boolean, if allocation to ProjectProduct and Fulfillment table was successful /// </returns> /// Erstellt von Joshua Frey, am 12.01.2016 /// <exception cref="NWATException"></exception> private bool AllocateProduct(int projectId, ProjectProduct projProd) { bool insertionProjectProductSuccessful = true; bool insertionFulfillmentSuccessful = true; int productId = projProd.Product_Id; if (productId != 0 && projProd.Project_Id != 0) { insertionProjectProductSuccessful = InsertProjectProductIntoDb(projProd); // get all project criterions to create new fulfillment entries List <ProjectCriterion> allProjectCriterions; using (ProjectCriterionController projCritCont = new ProjectCriterionController()) { allProjectCriterions = projCritCont.GetAllProjectCriterionsForOneProject(projectId); } // create fulfillment entry for this product and each project criterion using (FulfillmentController fulfillCont = new FulfillmentController()) { foreach (ProjectCriterion projCrit in allProjectCriterions) { int criterionId = projCrit.Criterion_Id; // new fulfillment which will be inserted into fulfillment table. // default values for Fulfilled and Comment (false and null) Fulfillment newFulfillment = new Fulfillment() { Project_Id = projectId, Product_Id = productId, Criterion_Id = criterionId, Fulfilled = false, Comment = null }; if (!fulfillCont.InsertFullfillmentInDb(newFulfillment)) { insertionFulfillmentSuccessful = false; throw (new NWATException(CommonMethods.MessageInsertionToFulFillmentTableFailed(productId, criterionId))); } } } } return(insertionFulfillmentSuccessful && insertionProjectProductSuccessful); }
/// <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 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 Click event of the btn_ProjCritSave 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_ProjCritSave_Click(object sender, EventArgs e) { try { using (ProjectCriterionController projCritCon = new ProjectCriterionController()) { projCritCon.ChangeAllocationOfProjectCriterionsInDb(ProjectId, ProjCrits); } this.Close(); } 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> /// 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 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> /// 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> /// Allocates the product. /// </summary> /// <param name="projectId">The project identifier.</param> /// <param name="projProd">The proj product.</param> /// <returns> /// boolean, if allocation to ProjectProduct and Fulfillment table was successful /// </returns> /// Erstellt von Joshua Frey, am 12.01.2016 /// <exception cref="NWATException"></exception> private bool AllocateProduct(int projectId, ProjectProduct projProd) { bool insertionProjectProductSuccessful = true; bool insertionFulfillmentSuccessful = true; int productId = projProd.Product_Id; if (productId != 0 && projProd.Project_Id != 0) { insertionProjectProductSuccessful = InsertProjectProductIntoDb(projProd); // get all project criterions to create new fulfillment entries List<ProjectCriterion> allProjectCriterions; using (ProjectCriterionController projCritCont = new ProjectCriterionController()) { allProjectCriterions = projCritCont.GetAllProjectCriterionsForOneProject(projectId); } // create fulfillment entry for this product and each project criterion using (FulfillmentController fulfillCont = new FulfillmentController()) { foreach (ProjectCriterion projCrit in allProjectCriterions) { int criterionId = projCrit.Criterion_Id; // new fulfillment which will be inserted into fulfillment table. // default values for Fulfilled and Comment (false and null) Fulfillment newFulfillment = new Fulfillment() { Project_Id = projectId, Product_Id = productId, Criterion_Id = criterionId, Fulfilled = false, Comment = null }; if (!fulfillCont.InsertFullfillmentInDb(newFulfillment)) { insertionFulfillmentSuccessful = false; throw (new NWATException(CommonMethods.MessageInsertionToFulFillmentTableFailed(productId, criterionId))); } } } } return insertionFulfillmentSuccessful && insertionProjectProductSuccessful; }
/// <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> /// Deletes the criterion from database. /// </summary> /// <param name="criterionId">The criterion identifier.</param> /// <returns> /// bool if deletion was successfull< /// /returns> /// Erstellt von Joshua Frey, am 14.12.2015 /// <exception cref="NWATException"> /// "Das Kriterium mit der Id X existiert nicht in der Datenbank." /// or /// SqlException if you try to delete a criterion, which is a parent criterion in project criterion table /// </exception> public bool DeleteCriterionFromDb(int criterionId) { //Criterion delCriterion = (from crit in base.DataContext.Criterion // where crit.Criterion_Id == criterionId // select crit).FirstOrDefault(); Criterion delCriterion = GetCriterionById(criterionId); if (delCriterion != null) { // check if criterion is parent Id in any project using (ProjectCriterionController tempProjCritContr = new ProjectCriterionController()) { List<ProjectCriterion> projectCriterionChildren = tempProjCritContr.GetAllProjectCriterionsWhichHaveGivenCriterionAsParent(delCriterion.Criterion_Id); if (projectCriterionChildren.Count > 0) { string caption = "Löschen der untergeordneten Kriterien"; var result = MessageBox.Show(MessageDeleteAllChildProjectCriterions(projectCriterionChildren, delCriterion), caption, MessageBoxButtons.YesNo, MessageBoxIcon.Question); // User interaction --> User can decide if export files outside the zip archive should be deleted if (result == DialogResult.Yes) { foreach (ProjectCriterion childProjCritToDelete in projectCriterionChildren) { bool forceDeallocationOfAllChildren = false; tempProjCritContr.DeallocateCriterionAndAllChildCriterions(childProjCritToDelete.Project_Id, childProjCritToDelete, forceDeallocationOfAllChildren); } } // if user declines deallocation of all children, the criterion will not be removed from master table. else { return false; } } } base.DataContext.Criterion.DeleteOnSubmit(delCriterion); base.DataContext.SubmitChanges(); } else { throw(new NWATException(MessageCriterionDoesNotExist(criterionId))); } return GetCriterionById(criterionId) == null; }
/// <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 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); }
public ProjCritShow_View() { this.projCritCont = new ProjectCriterionController(); InitializeComponent(); }