// Should be called whenever cb_ModSelector.SelectedIndex is changed. private void LoadProcessSteps() { // If SelectedIndex is -1, don't try to read tasks for a nonexistant mod. if (cb_ModSelector.SelectedIndex == -1) { // Do nothing. } else { // Read tasks for selected mod into GlobalVars. GetAllTasksForMod(GlobalVars.SelectedContract, GlobalVars.mList[cb_ModSelector.SelectedIndex].i_ModID); } // Clear any previous row definitions. grd_MainGrid.Children.Clear(); grd_MainGrid.RowDefinitions.Clear(); // Add first row for the header. var header = new RowDefinition(); header.Height = GridLength.Auto; grd_MainGrid.RowDefinitions.Add(header); // Add header labels. var col1 = new Label(); col1.Content = "Step"; col1.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Center; col1.SetValue(Grid.RowProperty, 0); col1.SetValue(Grid.ColumnProperty, 1); grd_MainGrid.Children.Add(col1); var col2 = new Label(); col2.Content = "Title"; col2.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Center; col2.SetValue(Grid.RowProperty, 0); col2.SetValue(Grid.ColumnProperty, 2); grd_MainGrid.Children.Add(col2); var col3 = new Label(); col3.Content = "Description"; col3.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Center; col3.SetValue(Grid.RowProperty, 0); col3.SetValue(Grid.ColumnProperty, 3); grd_MainGrid.Children.Add(col3); var col4 = new Label(); col4.Content = "Due Date"; col4.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Center; col4.SetValue(Grid.RowProperty, 0); col4.SetValue(Grid.ColumnProperty, 4); grd_MainGrid.Children.Add(col4); var col5 = new Label(); col5.Content = "User"; col5.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Center; col5.SetValue(Grid.RowProperty, 0); col5.SetValue(Grid.ColumnProperty, 5); grd_MainGrid.Children.Add(col5); var col6 = new Label(); col6.Content = "Remarks"; col6.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Center; col6.SetValue(Grid.RowProperty, 0); col6.SetValue(Grid.ColumnProperty, 6); grd_MainGrid.Children.Add(col6); var col7 = new Label(); col7.Content = "Status"; col7.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Center; col7.SetValue(Grid.RowProperty, 0); col7.SetValue(Grid.ColumnProperty, 7); grd_MainGrid.Children.Add(col7); // Fill the process (steps) list in GlobalVars. Routine is actually called when ManageProcess is instantiated. ManageProcess mp = new ManageProcess(); // Flag for logic. bool NoMatch = true; for (int i = 0; i < GlobalVars.sList.Count(); i++) { // Reset flag each time. NoMatch = true; foreach (Task t in GlobalVars.tList) { if (t.i_StepID == GlobalVars.sList[i].i_StepID) { NoMatch = false; // Start new row to load step. var rowDefinition = new RowDefinition(); rowDefinition.Height = GridLength.Auto; grd_MainGrid.RowDefinitions.Add(rowDefinition); // Load "is completed?" checkbox. var chkbox = new CheckBox(); chkbox.IsEnabled = false; if (GlobalVars.tList[GlobalVars.sList[i].i_Order - 1].i_Status == 0) { chkbox.IsChecked = false; } else if (GlobalVars.tList[GlobalVars.sList[i].i_Order - 1].i_Status == 1) { chkbox.IsChecked = false; } else { chkbox.IsChecked = true; } chkbox.SetValue(Grid.RowProperty, GlobalVars.sList[i].i_Order); chkbox.SetValue(Grid.ColumnProperty, 0); chkbox.SetValue(Grid.HorizontalAlignmentProperty, HorizontalAlignment.Center); chkbox.SetValue(Grid.VerticalAlignmentProperty, VerticalAlignment.Top); grd_MainGrid.Children.Add(chkbox); // Load step number. var stepnum = new Label(); stepnum.Content = GlobalVars.sList[i].i_Order; stepnum.SetValue(Grid.RowProperty, GlobalVars.sList[i].i_Order); stepnum.SetValue(Grid.ColumnProperty, 1); grd_MainGrid.Children.Add(stepnum); // Load title. var title = new Label(); title.Content = GlobalVars.sList[i].Title; if ((GlobalVars.tList[GlobalVars.sList[i].i_Order - 1].ActionDate < DateTime.Today) && (GlobalVars.tList[GlobalVars.sList[i].i_Order - 1].i_Status != 2) && (GlobalVars.tList[GlobalVars.sList[i].i_Order - 1].ActionDate != default(DateTime))) { title.Foreground = Brushes.Red; title.Content += " (Overdue)"; } title.SetValue(Grid.RowProperty, GlobalVars.sList[i].i_Order); title.SetValue(Grid.ColumnProperty, 2); grd_MainGrid.Children.Add(title); // Load description. var description = new Label(); if (GlobalVars.sList[i].Description.Length > 40) { description.Content = GlobalVars.sList[i].Description.Substring(0, 40) + "..."; description.SetValue(ToolTipProperty, GlobalVars.sList[i].Description); } else { description.Content = GlobalVars.sList[i].Description; } description.SetValue(Grid.RowProperty, GlobalVars.sList[i].i_Order); description.SetValue(Grid.ColumnProperty, 3); grd_MainGrid.Children.Add(description); // Load due date. var date = new Label(); date.Content = GlobalVars.tList[GlobalVars.sList[i].i_Order - 1].ActionDate; date.SetValue(Grid.RowProperty, GlobalVars.sList[i].i_Order); date.SetValue(Grid.ColumnProperty, 4); grd_MainGrid.Children.Add(date); // Load action user. var user = new Label(); user.Content = GlobalVars.tList[GlobalVars.sList[i].i_Order - 1].ActionUser; user.SetValue(Grid.RowProperty, GlobalVars.sList[i].i_Order); user.SetValue(Grid.ColumnProperty, 5); grd_MainGrid.Children.Add(user); //Load remarks. var remarks = new Label(); if (GlobalVars.tList[GlobalVars.sList[i].i_Order - 1].Remarks != null) { if (GlobalVars.tList[GlobalVars.sList[i].i_Order - 1].Remarks.Length > 40) { remarks.Content = GlobalVars.tList[GlobalVars.sList[i].i_Order - 1].Remarks.Substring(0, 40) + "..."; remarks.SetValue(ToolTipProperty, GlobalVars.tList[GlobalVars.sList[i].i_Order - 1].Remarks); } else { remarks.Content = GlobalVars.tList[GlobalVars.sList[i].i_Order - 1].Remarks; } } else { remarks.Content = "None"; } remarks.SetValue(Grid.RowProperty, GlobalVars.sList[i].i_Order); remarks.SetValue(Grid.ColumnProperty, 6); grd_MainGrid.Children.Add(remarks); // Load status. var status = new Label(); if (GlobalVars.tList[GlobalVars.sList[i].i_Order - 1].i_Status == 0) { status.Content = "Not Started"; status.Foreground = Brushes.Red; } else if (GlobalVars.tList[GlobalVars.sList[i].i_Order - 1].i_Status == 1) { status.Content = "In Progress"; status.Foreground = Brushes.Orange; } else { status.Content = "Complete"; status.Foreground = Brushes.Green; } status.SetValue(Grid.RowProperty, GlobalVars.sList[i].i_Order); status.SetValue(Grid.ColumnProperty, 7); grd_MainGrid.Children.Add(status); // Load edit button. var edit = new Button(); edit.Content = "Edit"; edit.Name = "btn_Edit" + GlobalVars.sList[i].i_Order; edit.Width = 45; edit.Height = 20; edit.SetValue(Grid.RowProperty, GlobalVars.sList[i].i_Order); edit.SetValue(Grid.ColumnProperty, 8); edit.Click += edit_Click; grd_MainGrid.Children.Add(edit); } } if (NoMatch == true) { // Start new row to load step. var rowDefinition = new RowDefinition(); rowDefinition.Height = GridLength.Auto; grd_MainGrid.RowDefinitions.Add(rowDefinition); // Load "is completed?" checkbox. var chkbox = new CheckBox(); chkbox.IsEnabled = false; chkbox.IsChecked = false; chkbox.SetValue(Grid.RowProperty, GlobalVars.sList[i].i_Order); chkbox.SetValue(Grid.ColumnProperty, 0); chkbox.SetValue(Grid.HorizontalAlignmentProperty, HorizontalAlignment.Center); chkbox.SetValue(Grid.VerticalAlignmentProperty, VerticalAlignment.Top); grd_MainGrid.Children.Add(chkbox); // Load step number. var stepnum = new Label(); stepnum.Content = GlobalVars.sList[i].i_Order; stepnum.SetValue(Grid.RowProperty, GlobalVars.sList[i].i_Order); stepnum.SetValue(Grid.ColumnProperty, 1); grd_MainGrid.Children.Add(stepnum); // Load title. var title = new Label(); title.Content = GlobalVars.sList[i].Title; title.SetValue(Grid.RowProperty, GlobalVars.sList[i].i_Order); title.SetValue(Grid.ColumnProperty, 2); grd_MainGrid.Children.Add(title); // Load description. var description = new Label(); if (GlobalVars.sList[i].Description.Length > 40) { description.Content = GlobalVars.sList[i].Description.Substring(0, 40) + "..."; description.SetValue(ToolTipProperty, GlobalVars.sList[i].Description); } else { description.Content = GlobalVars.sList[i].Description; } description.SetValue(Grid.RowProperty, GlobalVars.sList[i].i_Order); description.SetValue(Grid.ColumnProperty, 3); grd_MainGrid.Children.Add(description); // Load due date. var date = new Label(); date.IsEnabled = false; date.SetValue(Grid.RowProperty, GlobalVars.sList[i].i_Order); date.SetValue(Grid.ColumnProperty, 4); grd_MainGrid.Children.Add(date); // Load action user. var user = new Label(); user.Content = "N/A"; user.SetValue(Grid.RowProperty, GlobalVars.sList[i].i_Order); user.SetValue(Grid.ColumnProperty, 5); grd_MainGrid.Children.Add(user); //Load remarks. var remarks = new Label(); remarks.Content = "N/A"; remarks.SetValue(Grid.RowProperty, GlobalVars.sList[i].i_Order); remarks.SetValue(Grid.ColumnProperty, 6); grd_MainGrid.Children.Add(remarks); // Load status. var status = new Label(); status.Content = "Not Started"; status.Foreground = Brushes.Red; status.SetValue(Grid.RowProperty, GlobalVars.sList[i].i_Order); status.SetValue(Grid.ColumnProperty, 7); grd_MainGrid.Children.Add(status); // Load edit button. var edit = new Button(); edit.Content = "Edit"; edit.Name = "btn_Edit" + GlobalVars.sList[i].i_Order; edit.Width = 40; edit.Height = 20; edit.SetValue(Grid.RowProperty, GlobalVars.sList[i].i_Order); edit.SetValue(Grid.ColumnProperty, 8); edit.Click += edit_Click; grd_MainGrid.Children.Add(edit); } } }
private void AddStepsForNewMod() { int NewModID = FindNewModID(); ManageProcess mp = new ManageProcess(); mp.FillProcessList(true); /* ProgressBar pb = new ProgressBar(); pb.Show(); */ using (new WaitCursor()) { string s_ConnString = "Provider=Microsoft.ACE.OLEDB.12.0;Data " + "Source=|DataDirectory|\\ModDB.accdb"; using (OleDbConnection AccessConn = new OleDbConnection(s_ConnString)) { using (OleDbCommand AccessCmd = AccessConn.CreateCommand()) { foreach (Step s in GlobalVars.sList) { //ContractID, ModID, StepID, Status string command = "INSERT INTO Tasks (ContractID, ModID, StepID, " + "Status) " + "VALUES (@CID, @MID, @SID, @Status);"; AccessCmd.CommandText = command; AccessCmd.Parameters.Add("CID", OleDbType.Integer).Value = GlobalVars.SelectedContract; AccessCmd.Parameters.Add("MID", OleDbType.Integer).Value = NewModID; AccessCmd.Parameters.Add("SID", OleDbType.Integer).Value = s.i_StepID; AccessCmd.Parameters.Add("Status", OleDbType.Integer).Value = 0; AccessConn.Open(); try { if (AccessCmd.ExecuteNonQuery() > 0) { // pb.Window_Loaded. } AccessCmd.Parameters.Clear(); } catch (Exception dbex) { MessageBox.Show("Database Error when adding step to modification:\n" + dbex.Message + "\nPlease take a screenshot and\nreport this to Ashton.", "Error", MessageBoxButton.OK, MessageBoxImage.Error); } AccessConn.Close(); } MessageBox.Show("Modification added successfully.", "Success", MessageBoxButton.OK, MessageBoxImage.Information); } } // pb.Close(); //this.Cursor = Cursors.Wait; } }