private string generateFilename() { switch (_fileStructure) { case FileStructure.DagBestanden: return(string.Format("K{0} {1}.vlg", VLogArchiefDenHaag.VriNameToFullNumber(_vri), _lastVLogDataDt.ToString("yyyy-MM-dd"))); //"K025 2018-06-15.vlg"; case FileStructure.Eenbestand: return(string.Format("K{0} {1} - {2}.vlg", VLogArchiefDenHaag.VriNameToFullNumber(_vri), _firstVLogDataDt.ToString("yyyy-MM-dd_HHmm"), _lastVLogDataDt.ToString("yyyy-MM-dd_HHmm"))); //"K025 2018-06-15_1300 - 2018-06-15_1800.vlg"; } return(""); }
/// <summary> /// Verzamelen van V-Log data in dagbestanden /// </summary> /// <param name="rootDir">archief map Den Haag structuur</param> /// <param name="vri">kruispuntnummer</param> /// <param name="begin"></param> /// <param name="end"></param> /// <returns></returns> public FileCollection Collect(string rootDir, string vri, TimeRefLocation begin, TimeRefLocation end, FileStructure fileStructure) { //verzamelen van V-Log data in dagbestanden // - data vanaf begin opslaan tot end // - V-Log data opslaan in dagbestanden _dataFiles = new FileCollection(); _vri = vri; _collectedVLogData = new StringBuilder(); _lastVLogDataDt = new DateTime(); _fileStructure = fileStructure; _beginVLogDt = begin.DtTimeRefVLog; _endVLogDt = end.DtTimeRefVLog; //doorlopen V-Log data en doorgeven VLogArchiefDenHaag.ProcesData(rootDir, vri, begin, end, VLogArchiefDenHaag.procesMode.excludeToTimeRef, receiveData); //laatste data opslaan endData(); return(_dataFiles); }
public string GetCsvResult(DateTime from, DateTime to) { StringBuilder result = new StringBuilder(); if (uitvoerSettingsCsv.Filter == null || uitvoerSettingsCsv.Filter.Weekdagen == null || uitvoerSettingsCsv.Filter.Weekdagen.Length != 7) { return("ERROR weekdagen"); } if (periodResults.Count == 0) { //geen resultaten return(""); } else { int aantalDetectoren = periodResults[0].Result.Length; bool vlgcfgOk = vlogConfig != null && vlogConfig.Valid && (vlogConfig.Dp.Length == aantalDetectoren); if (uitvoerSettingsCsv.AlleenKoplussen && !vlgcfgOk) { //kan geen koplussen bepalen, dus ook geen informatie weer geven return(""); } //bepalen welke detectie koplussen betreft bool[] koplussen = new bool[0]; if (uitvoerSettingsCsv.AlleenKoplussen) { koplussen = new bool[vlogConfig.Dp.Length]; for (int i = 0; i < vlogConfig.Dp.Length; i++) { koplussen[i] = (vlogConfig.Dp[i].type & 0x0101) == 0x0101; //kop + detectielus } } //header result.Append(VLogArchiefDenHaag.VriNameToFullKName(vriName)); for (int i = 0; i < aantalDetectoren; i++) { if (uitvoerSettingsCsv.AlleenKoplussen && koplussen[i] == false) { continue; } if (vlgcfgOk) { result.AppendFormat(";{0}", vlogConfig.Dp[i].name); //indien VLog correct, de naamgeving weergeven } else { result.AppendFormat(";[{0}]", i); //geen vlog, dan index nr weergeven } } result.AppendLine(); //data per periode int aantalDetRegel = 0; DateTime nextPrStart = startMomentPeriod(from); foreach (PeriodResultTellen pr in periodResults) { aantalDetRegel = pr.Result.Length; if (aantalDetRegel != aantalDetectoren) { continue; //indien aantal detectoren is gewijzigd, geen uitvoer meer uitsturen } //checken of er gaten in de perioden zitten while (nextPrStart < pr.PeriodStart) //gat = genereren lege regels (tussen begin datum en eerste pr of tussen pr's in) { //lege regel toevoegen if (uitvoerSettingsCsv.Filter.ValidInFilter(nextPrStart)) { result.AppendFormat("{0}", nextPrStart.ToString("yyyy-MM-dd HH:mm")); for (int i = 0; i < aantalDetRegel; i++) { if (uitvoerSettingsCsv.AlleenKoplussen && koplussen[i] == false) { continue; } result.Append(";"); //gehele periode ongeldige telling } result.AppendLine(); } nextPrStart += intervalMin; } nextPrStart = pr.PeriodStart + pr.PeriodLength; if (uitvoerSettingsCsv.Filter.ValidInFilter(pr.PeriodStart)) { result.AppendFormat("{0}", pr.PeriodStart.ToString("yyyy-MM-dd HH:mm")); if (pr.DataComplete) { for (int i = 0; i < aantalDetRegel; i++) { if (uitvoerSettingsCsv.AlleenKoplussen && koplussen[i] == false) { continue; } if (pr.DetError[i]) { result.Append(";"); //individuele fout in detector: ongeldige telling } else { result.AppendFormat(";{0}", pr.Result[i]); } } } else { for (int i = 0; i < aantalDetRegel; i++) { if (uitvoerSettingsCsv.AlleenKoplussen && koplussen[i] == false) { continue; } result.Append(";"); //gehele periode ongeldige telling } } result.AppendLine(); } } if (nextPrStart < to) { //gat = genereren lege regels (tussen laatste pr en einddatum) while (nextPrStart < to) { if (uitvoerSettingsCsv.Filter.ValidInFilter(nextPrStart)) { //lege regel toevoegen result.AppendFormat("{0}", nextPrStart.ToString("yyyy-MM-dd HH:mm")); for (int i = 0; i < aantalDetRegel; i++) { if (uitvoerSettingsCsv.AlleenKoplussen && koplussen[i] == false) { continue; } result.Append(";"); //gehele periode ongeldige telling } result.AppendLine(); } nextPrStart += intervalMin; } } } return(result.ToString()); }