/// <summary> /// Constructor which pre-fills controls from existing pie task /// </summary> /// <param name="pieTask">the existing pie task</param> public PieControl(PieTask pieTask) { PieTask = pieTask; InitializeComponent(); Prefill(); pieTierControl1.DataValid += PieTierControl1_DataValid; }
private void PieControl_DataValid() { PieTask pie = (plUserControl.Controls["taskControl"] as PieControl).PieTask; if (DoesTaskNumberAlreadyExists(pie.TaskNumber)) { Log(LogSeverityType.Error, $"Failed to create {pie}: A task with the number '{pie.TaskNumber}' already exists"); } else { if (!lbTaskList.Items.Contains(pie)) { lbTaskList.Items.Add(pie); Log(LogSeverityType.Info, $"{pie} created/modified"); } } }
private void btImportTask_Click(object sender, EventArgs e) { OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.DefaultExt = "json"; openFileDialog.Filter = "json files(*.json) | *.json"; openFileDialog.FilterIndex = 1; if (!string.IsNullOrWhiteSpace(tbCompetitionFolder.Text)) { openFileDialog.InitialDirectory = tbCompetitionFolder.Text; } if (openFileDialog.ShowDialog() == DialogResult.OK) { try { if (openFileDialog.FileName.Contains("(Donut)")) { string jsonString = File.ReadAllText(openFileDialog.FileName); //DonutTask donut = JsonSerializer.Deserialize<DonutTask>(jsonString); DonutTask donut = JsonConvert.DeserializeObject <DonutTask>(jsonString, new JsonSerializerSettings() { TypeNameHandling = TypeNameHandling.Auto }); DonutControl donutControl = new DonutControl(donut); SuspendLayout(); plUserControl.Controls.Remove(plUserControl.Controls["taskControl"]); donutControl.Location = TaskControlLocation; donutControl.Name = "taskControl"; donutControl.DataValid += DonutControl_DataValid; plUserControl.Controls.Add(donutControl); ResumeLayout(); } else if (openFileDialog.FileName.Contains("(Pie)")) { string jsonString = File.ReadAllText(openFileDialog.FileName); //PieTask pie = JsonSerializer.Deserialize<PieTask>(jsonString); PieTask pie = JsonConvert.DeserializeObject <PieTask>(jsonString, new JsonSerializerSettings() { TypeNameHandling = TypeNameHandling.Auto }); PieControl pieControl = new PieControl(pie); SuspendLayout(); plUserControl.Controls.Remove(plUserControl.Controls["taskControl"]); pieControl.Location = TaskControlLocation; pieControl.Name = "taskControl"; pieControl.DataValid += PieControl_DataValid; plUserControl.Controls.Add(pieControl); ResumeLayout(); } else if (openFileDialog.FileName.Contains("(Elbow)")) { string jsonString = File.ReadAllText(openFileDialog.FileName); //ElbowTask elbow = JsonSerializer.Deserialize<ElbowTask>(jsonString); ElbowTask elbow = JsonConvert.DeserializeObject <ElbowTask>(jsonString, new JsonSerializerSettings() { TypeNameHandling = TypeNameHandling.Auto }); ElbowControl elbowControl = new ElbowControl(elbow); SuspendLayout(); plUserControl.Controls.Remove(plUserControl.Controls["taskControl"]); elbowControl.Location = TaskControlLocation; elbowControl.Name = "taskControl"; elbowControl.DataValid += ElbowControl_DataValid; plUserControl.Controls.Add(elbowControl); ResumeLayout(); } else if (openFileDialog.FileName.Contains("(Land Run)")) { string jsonString = File.ReadAllText(openFileDialog.FileName); //LandRunTask landRun = JsonSerializer.Deserialize<LandRunTask>(jsonString); LandRunTask landRun = JsonConvert.DeserializeObject <LandRunTask>(jsonString, new JsonSerializerSettings() { TypeNameHandling = TypeNameHandling.Auto }); LandRunControl landrunControl = new LandRunControl(landRun); SuspendLayout(); plUserControl.Controls.Remove(plUserControl.Controls["taskControl"]); landrunControl.Location = TaskControlLocation; landrunControl.Name = "taskControl"; landrunControl.DataValid += LandrunControl_DataValid; plUserControl.Controls.Add(landrunControl); ResumeLayout(); } else { Log(LogSeverityType.Error, "Failed import task: Unkown task type"); return; } } catch (Exception ex) { Log(LogSeverityType.Error, $"Failed to import task: {ex.Message}"); return; } } }