using System; using System.Collections.Generic; using System.ComponentModel; using System.Globalization; using System.Linq; using System.Text; using System.Threading.Tasks; using Windows.Foundation.Metadata; namespace AutoCat.Controls { [CreateFromString(MethodName = "AutoCat.Controls.PlateNumber.ConvertFromString")] public class PlateNumber { private string number; private string numberEnglish; public Dictionary lettersMap = new Dictionary { { 'А', 'A' }, { 'В', 'B' }, { 'Е', 'E' }, { 'К', 'K' }, { 'М', 'M' }, { 'Н', 'H' }, { 'О', 'O' }, { 'Р', 'P' }, { 'С', 'C' }, { 'Т', 'T' }, { 'У', 'Y' }, { 'Х', 'X' } }; public PlateNumber(string number) { this.number = number; this.numberEnglish = string.Concat(number.Select(c => lettersMap.TryGetValue(c, out Char eng) ? eng : c)); } public string AsString() { return number; } public string MainPart() { return numberEnglish.Substring(0, 6); } public string Region() { return numberEnglish.Substring(6); } public static PlateNumber ConvertFromString(string number) { return new PlateNumber(number); } } }