public async void CheckLoginCorrectness() { if (Login != null) { string loginPattern = @"^[a-zA-Z_][a-zA-Z0-9_\-\.]{1,255}$"; Login = Login.Trim(); if (Login.Length < 2) { LoginError = "Login should be at least 2 charachters long"; LoginIsCorrect = false; } else if (char.IsDigit(Login[0])) { LoginError = "Login can only start with a letter or underscore"; LoginIsCorrect = false; } else if (Login.Length > 255) { LoginError = "Login should be no longer than 255 characters"; LoginIsCorrect = false; } else if (!Regex.IsMatch(Login, loginPattern, RegexOptions.CultureInvariant)) { LoginError = "Login should contain only latin letters, numbers and _ . -"; LoginIsCorrect = false; } else if (!await serverWorker.TaskCheckLogin(Login)) { LoginError = "This login is already used"; LoginIsCorrect = false; } else { LoginError = " "; LoginIsCorrect = true; } } else { LoginError = "Login cannot be empty"; LoginIsCorrect = false; } }