Esempio n. 1
0
        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;
        }
Esempio n. 2
0
 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));
     }
 }
Esempio n. 3
0
        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);
        }