public static bool RegisterAccount(string Login, string Password) { if (string.IsNullOrWhiteSpace(Login) || string.IsNullOrWhiteSpace(Password)) { LogWriter.Log(MessageType.MESSAGE_ERROR, string.Format("Ошибка регистрации пользователя {0}", String.IsNullOrWhiteSpace(Login) ? "с пустым логином" : Login)); return(false); } if (_AccountTable.ContainsKey(Login)) { LogWriter.Log(MessageType.MESSAGE_ERROR, string.Format("Ошибка регистрации : логин {0} занят", Login)); return(false); } int lastId = _AccountTable.Count == 0 ? 1 : _AccountTable.ElementAt(_AccountTable.Count - 1).Value.UserId; if (lastId == int.MaxValue) { LogWriter.Log(MessageType.MESSAGE_ERROR, "Ошибка регистрации : Регистрация новых пользователей в системе завершена."); return(false); } try { var newUserData = new UserData(-1, CalculateMD5Hash(Password)); newUserData.FillUserData(_AccountTable); AccountDataAccessor.SaveAccount(Login, newUserData); _AccountTable[Login] = newUserData; } catch (Exception ex) { LogWriter.Log(MessageType.MESSAGE_FATALERROR, string.Format("Исключение {0} при регистрации пользователя {1}. {2}", ex.Message, Login, ex.StackTrace)); throw; // save call stack } return(true); }
static AccountManager() { AccountDataAccessor.LoadAccounts(_AccountTable); }