public static void Main()
Console.WriteLine(GenerateUnlockCode("1981E76B5A7AA0EDBB4536CAE"));
private static string GenerateUnlockCode(string registrationNumber)
return SwapCharacters("500500XPLTB17EX300001010X" + registrationNumber, 7, 2, 3, 4, 5, 6, 1, 8, 9, 1, 5, 2);
private static string SwapCharacters(string value, int position1, int position2, int position3, int position4, int position5, int position6, int position7, int position8, int position9, int position10, int position11, int position12)
char[] array = value.ToCharArray();
char c = array[position1];
array[position1] = array[position8];
array[position8] = array[position6];
array[position6] = array[position12];
array[position12] = array[position7];
array[position7] = array[position2];
array[position2] = array[position11];
array[position11] = array[position4];
array[position4] = array[position10];
array[position10] = array[position9];
array[position9] = array[position3];
array[position3] = array[position5];
return new string(array);