private void LoadBtn_Click(object sender, EventArgs e) { if (openFileDialog.ShowDialog() != DialogResult.OK) { return; } LoaderUtils.DataType dataType = GetDataType(); StatusTextBox.AppendText("Loading " + LoaderUtils.DataTypeName(dataType).ToLower() + "(s) from file '" + openFileDialog.FileName + "'\n"); String json = File.ReadAllText(openFileDialog.FileName); ProgressBar.Visible = true; ProgressLbl.Visible = true; try { int recordsLoaded = LoadJSON(json, dataType); StatusTextBox.AppendText(String.Format("Processed {0} {1}(s) from {2}\n", recordsLoaded, LoaderUtils.DataTypeName(dataType).ToLower(), openFileDialog.FileName)); } catch (DuplicateException de) { StatusTextBox.AppendText("Error: " + de.Message + "\n"); } catch (JsonReaderException je) { StatusTextBox.AppendText("Error: " + je.Message + "\n"); } ProgressBar.Visible = false; ProgressLbl.Visible = false; }
private void SaveBtn_Click(object sender, EventArgs e) { if (saveFileDialog.ShowDialog() != DialogResult.OK) { return; } LoaderUtils.DataType dataType = GetDataType(); StatusTextBox.AppendText("Saving " + LoaderUtils.DataTypeName(dataType).ToLower() + " to file '" + saveFileDialog.FileName + "'\n"); using (moonServer = new MoonServerDB()) { IEnumerable <Object> data; if (dataType.Equals(LoaderUtils.DataType.Problem)) { data = GetData(moonServer).ToList().ConvertAll(o => (ProblemProxy)o).OrderBy(p => p.MoonID); } else { data = GetData(moonServer); } data.ToList(); File.WriteAllText(saveFileDialog.FileName, JsonConvert.SerializeObject(data, Formatting.Indented)); } }
private int LoadJSON(string json, LoaderUtils.DataType dataType) { int recordsToProcess = 0, recordsLoaded = 0, recordsProcessed = 0; switch (dataType) { case LoaderUtils.DataType.Grade: List <GradeProxy> gradeProxies = JsonConvert.DeserializeObject <List <GradeProxy> >(json); recordsToProcess = gradeProxies.Count; ProgressBar.Maximum = recordsToProcess; foreach (GradeProxy p in gradeProxies) { if (LoadGrade(p)) { recordsLoaded++; } recordsProcessed++; ProgressBar.Value = recordsProcessed; ProgressLbl.Text = String.Format("{0} / {1}", recordsProcessed, recordsToProcess); Update(); } break; case LoaderUtils.DataType.Hold: List <HoldProxy> holdProxies = JsonConvert.DeserializeObject <List <HoldProxy> >(json); recordsToProcess = holdProxies.Count; ProgressBar.Maximum = recordsToProcess; foreach (HoldProxy p in holdProxies) { if (LoadHold(p)) { recordsLoaded++; } recordsProcessed++; ProgressBar.Value = recordsProcessed; ProgressLbl.Text = String.Format("{0} / {1}", recordsProcessed, recordsToProcess); Update(); } break; case LoaderUtils.DataType.HoldPlacement: List <HoldPlacementProxy> holdPlacementProxies = JsonConvert.DeserializeObject <List <HoldPlacementProxy> >(json); recordsToProcess = holdPlacementProxies.Count; ProgressBar.Maximum = recordsToProcess; foreach (HoldPlacementProxy p in holdPlacementProxies) { if (LoadHoldPlacement(p)) { recordsLoaded++; } recordsProcessed++; ProgressBar.Value = recordsProcessed; ProgressLbl.Text = String.Format("{0} / {1}", recordsProcessed, recordsToProcess); Update(); } break; case LoaderUtils.DataType.HoldSetup: List <HoldSetupProxy> holdSetupProxies = JsonConvert.DeserializeObject <List <HoldSetupProxy> >(json); recordsToProcess = holdSetupProxies.Count; ProgressBar.Maximum = recordsToProcess; foreach (HoldSetupProxy p in holdSetupProxies) { if (LoadHoldSetup(p)) { recordsLoaded++; } recordsProcessed++; ProgressBar.Value = recordsProcessed; ProgressLbl.Text = String.Format("{0} / {1}", recordsProcessed, recordsToProcess); Update(); } break; case LoaderUtils.DataType.Position: List <PositionProxy> positionProxies = JsonConvert.DeserializeObject <List <PositionProxy> >(json); recordsToProcess = positionProxies.Count; ProgressBar.Maximum = recordsToProcess; foreach (PositionProxy p in positionProxies) { if (LoadPosition(p)) { recordsLoaded++; } recordsProcessed++; ProgressBar.Value = recordsProcessed; ProgressLbl.Text = String.Format("{0} / {1}", recordsProcessed, recordsToProcess); Update(); } break; case LoaderUtils.DataType.Problem: if (PageTextBox.Text.Length == 0) { break; } int pageSize = 1000; IEnumerable <ProblemProxy> problemProxies = JsonConvert.DeserializeObject <List <ProblemProxy> >(json) .Skip(Int32.Parse(PageTextBox.Text) * pageSize) .Take(pageSize); recordsToProcess = problemProxies.Count(); int recordsUpdated = 0; ProgressBar.Maximum = recordsToProcess; foreach (ProblemProxy p in problemProxies) { switch (LoadProblem(p)) { case UPDATE_RESULT.NONE: break; case UPDATE_RESULT.ADD: recordsLoaded++; break; case UPDATE_RESULT.UPDATE_REPEATS: recordsUpdated++; break; default: throw new InvalidOperationException("Bad Update Result"); } recordsProcessed++; ProgressBar.Value = recordsProcessed; ProgressLbl.Text = String.Format("{0} / {1}", recordsProcessed, recordsToProcess); Update(); } StatusTextBox.AppendText(String.Format("Updated {0} records\n", recordsUpdated)); break; default: throw new ArgumentException("Invalid type"); } return(recordsLoaded); }