public EnigmaService(DiscordBotServiceContainer services, ConfigParserService configParser) : base(services) { letterSet = LetterSetIO.Read(LetterSetFile); steckering = PlugboardIO.Read(letterSet.Count, PlugboardFile); rotorKeys = RotorIO.Read(RotorKeysFile); this.configParser = configParser; Client.ReactionAdded += OnReactionAddedAsync; }
/// <summary> /// Returns the human-readable letterset as an array so objects without connections to the Enigma /// machine can read it. /// </summary> /// <returns>The letterset array.</returns> public string[] GetEscapedLetterSet() { return(letterSetConfig.LetterSet?.Select(c => LetterSetIO.EscapeLetter(c))?.ToArray()); }
/// <summary> /// Reads the file and returns the <see cref="LetterSet"/>. /// </summary> /// <param name="letterSetFile">The file containing the letterset.</param> /// /// <exception cref="Exception"> /// A parsed letter is invalid. /// </exception> private void LoadFromFile(string letterSetFile) { LetterSet = LetterSetIO.Read(letterSetFile); }
/// <summary> /// Writes the input letterset to the file. /// </summary> /// <param name="rotorCount">The new number of rotors to save.</param> /// <param name="letterSetFile">The letterset file to save the letters to.</param> private void SaveToFile(LetterSet letterSet, string letterSetFile) { Directory.CreateDirectory(Path.GetDirectoryName(letterSetFile)); LetterSetIO.Write(letterSet, letterSetFile); }