public string?GetValue(string?fileName, string key, int column) { if (string.IsNullOrWhiteSpace(fileName) || column < 0) { return(null); } if (!_csvFilesCollection.TryGetValue(fileName !.ToUpperInvariant(), out CsvFile? csvFile)) { return(null); } if (csvFile.Data == null) { csvFile.Data = CsvHelper.LoadCsvFile(csvFile.FileFullName, true, null, UserFriendlyLogger, csvFile.IncludeFileNamesCollection); } if (!csvFile.Data.TryGetValue(key, out List <string?>?fileLine)) { return(null); } if (column >= fileLine.Count) { return(null); } return(fileLine[column]); }
public void SetValues(string?fileName, IEnumerable <string?> values) { if (string.IsNullOrWhiteSpace(fileName)) { return; } string fileNameUpper = fileName !.ToUpperInvariant(); if (!fileNameUpper.EndsWith(@".CSV")) { return; } if (!_csvFilesCollection.TryGetValue(fileNameUpper, out CsvFile? csvFile)) { csvFile = new CsvFile(); if (_csvDbDirectoryInfo is not null) { csvFile.FileFullName = Path.Combine(_csvDbDirectoryInfo.FullName, fileName); } csvFile.Data = new CaseInsensitiveDictionary <List <string?> >(); _csvFilesCollection.Add(fileNameUpper, csvFile); } var enumerator = values.GetEnumerator(); if (!enumerator.MoveNext()) { return; } string key = enumerator.Current ?? @""; if (csvFile.Data == null) { csvFile.Data = CsvHelper.LoadCsvFile(csvFile.FileFullName, true, null, UserFriendlyLogger, csvFile.IncludeFileNamesCollection); } if (!csvFile.Data.TryGetValue(key, out List <string?>?fileLine)) { fileLine = new List <string?> { key }; csvFile.Data.Add(key, fileLine); } else { fileLine.Clear(); fileLine.Add(key); } while (enumerator.MoveNext()) { fileLine.Add(enumerator.Current); } csvFile.DataIsChangedByProgram = true; }
public void SetValue(string?fileName, string key, int column, string?value) { if (string.IsNullOrWhiteSpace(fileName) || column < 0) { return; } string fileNameUpper = fileName !.ToUpperInvariant(); if (!fileNameUpper.EndsWith(@".CSV")) { return; } if (!_csvFilesCollection.TryGetValue(fileNameUpper, out CsvFile? csvFile)) { csvFile = new CsvFile(); if (_csvDbDirectoryInfo is not null) { csvFile.FileFullName = Path.Combine(_csvDbDirectoryInfo.FullName, fileName); } csvFile.Data = new CaseInsensitiveDictionary <List <string?> >(); _csvFilesCollection.Add(fileNameUpper, csvFile); } if (csvFile.Data == null) { csvFile.Data = CsvHelper.LoadCsvFile(csvFile.FileFullName, true, null, UserFriendlyLogger, csvFile.IncludeFileNamesCollection); } if (!csvFile.Data.TryGetValue(key, out List <string?>?fileLine)) { fileLine = new List <string?> { key }; csvFile.Data.Add(key, fileLine); } if (column >= fileLine.Count) { fileLine.Capacity = column + 1; fileLine.AddRange(Enumerable.Repeat <string?>(null, column + 1 - fileLine.Count)); } if (column > 0) { fileLine[column] = value; } csvFile.DataIsChangedByProgram = true; }
/// <summary> /// List.Count >= 1, List[0] is not null /// </summary> /// <param name="fileName"></param> /// <returns></returns> public CaseInsensitiveDictionary <List <string?> > GetValues(string?fileName) { if (string.IsNullOrWhiteSpace(fileName)) { return(new CaseInsensitiveDictionary <List <string?> >()); } if (!_csvFilesCollection.TryGetValue(fileName !.ToUpperInvariant(), out CsvFile? csvFile)) { return(new CaseInsensitiveDictionary <List <string?> >()); } if (csvFile.Data == null) { csvFile.Data = CsvHelper.LoadCsvFile(csvFile.FileFullName, true, null, UserFriendlyLogger, csvFile.IncludeFileNamesCollection); } return(csvFile.Data); }
/// <summary> /// Returns new uint key, starting from 1. /// </summary> /// <param name="fileName"></param> /// <returns></returns> public uint GetNewKey(string?fileName) { if (string.IsNullOrWhiteSpace(fileName)) { return(1); } if (!_csvFilesCollection.TryGetValue(fileName !.ToUpperInvariant(), out CsvFile? csvFile)) { return(1); } if (csvFile.Data == null) { csvFile.Data = CsvHelper.LoadCsvFile(csvFile.FileFullName, true, null, UserFriendlyLogger, csvFile.IncludeFileNamesCollection); } if (csvFile.Data.Count == 0) { return(1); } return(csvFile.Data.Keys.Max(k => new Any(k).ValueAsUInt32(false)) + 1); }
public bool DeleteValues(string?fileName, string key) { if (string.IsNullOrWhiteSpace(fileName)) { return(false); } if (!_csvFilesCollection.TryGetValue(fileName !.ToUpperInvariant(), out CsvFile? csvFile)) { return(false); } if (csvFile.Data == null) { csvFile.Data = CsvHelper.LoadCsvFile(csvFile.FileFullName, true, null, UserFriendlyLogger, csvFile.IncludeFileNamesCollection); } bool removed = csvFile.Data.Remove(key); if (removed) { csvFile.DataIsChangedByProgram = true; } return(removed); }