public void LoadAliases() { if (Dictionary != null) { throw new Exception("Cannot load aliases if some are already loaded"); } Dictionary = new Dictionary <string, AliasRow>(); string[] lines = File.ReadAllLines(_aliasesCsvFilename); int i = 0; foreach (var line in lines) { if (string.IsNullOrWhiteSpace(line)) { i++; continue; } var split = line.Split(','); AliasRow alias = new AliasRow { Alias = split[0], MapsTo = split[1], Comment = split.Length > 2 ? split[2] : null, FileIndex = i, }; Dictionary.Add(alias.Alias, alias); i++; } _lastLine = i; }
public void SetAlias(string alias, string mapping) { if (Dictionary.ContainsKey(alias)) { if (string.IsNullOrWhiteSpace(mapping)) { Dictionary.Remove(alias); } else { Dictionary[alias].MapsTo = mapping; } SaveAliasesFile(); } else { if (string.IsNullOrEmpty(mapping)) { return; } var aliasRow = new AliasRow { Alias = alias, MapsTo = mapping, FileIndex = _lastLine, Comment = null, }; Dictionary.Add(alias, aliasRow); _lastLine++; AppendAliasFile(aliasRow); } }
private void AppendAliasFile(AliasRow al) { File.AppendAllText(_aliasesCsvFilename, $"\n{al.Alias},{al.MapsTo},{al.Comment}"); }