using Percent___Qualification_work.Classes; using System; using System.Data; using System.Numerics; using System.Windows.Forms; using static Percent___Qualification_work.userControls.planList; namespace Percent___Qualification_work.userControls { public partial class EditPlanControl : UserControl { public event EventHandler PlanUpdated; public int planId; public EditPlanControl() { InitializeComponent(); priority.DropDownStyle = ComboBoxStyle.DropDownList; } public class ComboBoxItem { public string Text { get; set; } public int Value { get; set; } public override string ToString() { return Text; // Display the text in the ComboBox } } private void PopulateCombo() { priority.Items.Add(new ComboBoxItem { Text = "Low", Value = 1 }); priority.Items.Add(new ComboBoxItem { Text = "Medium", Value = 2 }); priority.Items.Add(new ComboBoxItem { Text = "High", Value = 3 }); } private void LoadPlanDetails() { DataTable planTable = DatabaseConnection.Instance.GetPlanByID(planId); if (planTable.Rows.Count > 0) { DataRow plan = planTable.Rows[0]; planName.Text = plan["name"].ToString(); datePicker1.Value = DateTime.Parse(plan["date"].ToString()); int priorityValue = Convert.ToInt32(plan["priority"]); foreach (ComboBoxItem item in priority.Items) { if (item.Value == priorityValue) { priority.SelectedItem = item; break; } } } } public void InitializeEditPlanControl(int planId) { this.planId = planId; PopulateCombo(); LoadPlanDetails(); } private void saveBtn_Click(object sender, EventArgs e) { string name = planName.Text; string date = datePicker1.Value.ToString("yyyy-MM-dd"); var planPriority = priority.SelectedItem as ComboBoxItem; if (!string.IsNullOrEmpty(name) && !string.IsNullOrEmpty(date) && priority != null) { DatabaseConnection.Instance.UpdatePlan(planId, name, date, planPriority.Value); MessageBox.Show("Plan updated successfully!"); PlanUpdated?.Invoke(this, EventArgs.Empty); this.Visible = false; } else { MessageBox.Show("Please fill in all the fields!"); } } private void EditPlanControl_Load(object sender, EventArgs e) { // Ensure that this method is not calling LoadPlanDetails // since InitializeEditPlanControl should handle it } private void backButton_Click(object sender, EventArgs e) { this.Visible = false; } } }