public Level( uint level, ProblemTower tower) { Debug.Assert(level < tower.Environment.MaxLevels); Index = level; Tower = tower; var env = Tower.Environment; Factory = env.Factory[1]; // Use a lower priority than the factory used by broadcasting. var(First, Minimum, Step) = env.PoolSize; var maxDelta = First - Minimum; var decrement = Index * Step; var poolCount = tower.Problem.Pools.Count; BestLevelFitness = new double[poolCount][]; BestProgressiveFitness = new double[poolCount][]; //IsMaxLevel = level + 1 == tower.Environment.MaxLevels; PoolSize = decrement > maxDelta ? Minimum : (ushort)(First - decrement); Pool = new BatchCreator <LevelEntry <TGenome> >(PoolSize); }
public void BigTask_Example() { using (var logic = new MessagesModuleLogic(new MessageContext(Settings.MessageContextConnectionString))) { using (var sqlLogic = new SqlLogic(new SqlConnectionFactory(Settings.SqlConnectionString))) { using (var manager = NewInstance(new DateTime(2015, 9, 3), new DateTime(2017, 9, 5), sqlLogic, logic)) { var shedules = manager.GetActualMessageSchedules(); var creator = new BatchCreator(manager); var results = new List <BatchCreationResult>(); foreach (var sched in shedules) { results.Add(creator.CreateBatch(sched, 0)); } //manager.SaveResultsToDB(results); } } } }
private void btGenerateTopX_Click(object sender, EventArgs e) { if (chkCreateBatchesSubdir.Checked) { if (!Directory.Exists(txtBatchSourceDirectory.Text)) { var msgText = string.IsNullOrEmpty(txtBatchSourceDirectory.Text) ? "Wanneer 'Maak directories' is aangevinkt, moet de directory worden aangegeven waar de bronbestanden staan." : $"Bron-directory {txtBatchSourceDirectory.Text} kan niet worden gevonden."; MessageBox.Show(msgText); return; } if (!Directory.Exists(txtBatchTargetDirectory.Text)) { var msgText = string.IsNullOrEmpty(txtBatchSourceDirectory.Text) ? "Wanneer 'Maak directories' is aangevinkt, moet de directory worden aangegeven waar de doelbestanden naartoe gekopieerd moeten worden." : $"Doel-directory {txtBatchTargetDirectory.Text} kan niet worden gevonden."; MessageBox.Show(msgText); return; } } try { _resultRecordInformationPackage = null; txtLogTopXCreate.Text = string.Empty; txtResultXml.Text = string.Empty; Cursor.Current = Cursors.WaitCursor; var parser = new Parser(_globals, _dataservice); var listofdossiers = _dataservice.GetAllDossiers(); var batchSize = (long)ByteSize.FromGigaBytes(Convert.ToDouble(txtBatchSize.Text)).Bytes; _resultRecordInformationPackage = chkUseBatchSize.Checked ? parser.ParseDataToTopx(listofdossiers, batchSize) : parser.ParseDataToTopx(listofdossiers); txtLogTopXCreate.Text = parser.ErrorMessage.ToString(); Cursor.Current = Cursors.Default; if (_resultRecordInformationPackage == null || parser.ErrorMessage.Length != 0) { btSaveTopxXml.Enabled = false; MessageBox.Show("Er zijn fouten opgetreden tijdens de conversie, TopX xml kan niet worden gegenereerd", "xml", MessageBoxButtons.OK); } else { btSaveTopxXml.Enabled = true; var xmlhelper = new XmlHelper(); var topXResult = xmlhelper.GetXmlStringFromObject(_resultRecordInformationPackage[0]); txtResultXml.Text = topXResult; txtLogTopXCreate.Text = xmlhelper.ValidationErrors.ToString(); if (string.IsNullOrEmpty(topXResult) && xmlhelper.ValidationErrors.Length > 0) { MessageBox.Show("Er zijn geen dossiers zonder validatiefouten om te exporteren."); return; } if (_resultRecordInformationPackage.Count > 1 && chkUseBatchSize.Checked && !chkCreateBatchesSubdir.Checked) { var message = $"Er zijn {_resultRecordInformationPackage.Count} TopX-files gegenereerd om de grootte per file te limiteren tot maximaal {txtBatchSize.Text} GB. Wilt u deze opslaan?"; if (MessageBox.Show(message, "xml", MessageBoxButtons.YesNo) == DialogResult.Yes) { SaveAsXml(_resultRecordInformationPackage); } } else if (_resultRecordInformationPackage.Count == 1 && !chkCreateBatchesSubdir.Checked) { var message = "Save TopX xml?"; if (MessageBox.Show(message, "xml", MessageBoxButtons.YesNo) == DialogResult.Yes) { SaveAsXml(_resultRecordInformationPackage); } } else if (chkCreateBatchesSubdir.Checked) { var message = $"De batches worden opgeslagen in subdirectories onder {txtBatchTargetDirectory.Text}. Alle reeds aanwezige subdirectories worden GEWIST " + $"om het resultaat zuiver te houden. {Environment.NewLine}Het kopiƫren van alle bestanden kan enige tijd kosten, met name wanneer dit over een netwerk gaat. Doorgaan?"; if (MessageBox.Show(message, "batches", MessageBoxButtons.YesNo) == DialogResult.Yes) { Cursor.Current = Cursors.WaitCursor; if (DeleteSubDirs(txtBatchTargetDirectory.Text)) { ulong totalDiskSizeNeeded = _dataservice.GetTotalSizeNeededBytes(); var batches = new BatchCreator(); batches.Create(txtBatchTargetDirectory.Text, txtBatchSourceDirectory.Text, _resultRecordInformationPackage, _globals.NaamArchief, totalDiskSizeNeeded); Cursor.Current = Cursors.Default; txtLogTopXCreate.Text = batches.Logs.ToString(); MessageBox.Show(batches.Error ? "Er zijn fouten opgetreden bij het samenstellen van de batches. Zie de error-log." : "De batches zijn succesvol samengesteld."); } Cursor.Current = Cursors.Default; } } } } catch (Exception exception) { Cursor.Current = Cursors.Default; MessageBox.Show(exception.Message); txtLogTopXCreate.Text = exception.ToString(); } }