示例#1
0
        // 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);

                }
            }
        }
示例#2
0
        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;
            }
        }