示例#1
0
        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);
        }
示例#2
0
 static AccountManager()
 {
     AccountDataAccessor.LoadAccounts(_AccountTable);
 }