public char Encode(char inputCharacter) { var initialOffset = _alphabet.IndexOf(inputCharacter); var rightRotorOffset = _rightRotor.EncodeRightToLeft(initialOffset); var centerRotorOffset = _centerRotor.EncodeRightToLeft(rightRotorOffset); var leftRotorOffset = _leftRotor.EncodeRightToLeft(centerRotorOffset); var reflectedOffset = _reflector.Reflect(leftRotorOffset); var returnedLeftOffset = _leftRotor.EncodeLeftToRight(reflectedOffset); var returnedCenterOffset = _centerRotor.EncodeLeftToRight(returnedLeftOffset); var returnedRightOffset = _rightRotor.EncodeLeftToRight(returnedCenterOffset); return(_alphabet.CharacterAt(returnedRightOffset)); }
public void Encode(int offset) { var characterAt = _rightAlphabet.CharacterAt(offset); var encodedOffset = _leftAlphabet.IndexOf(characterAt); var reflectedOffset = _reflector.Reflect(encodedOffset); }