/// <summary> /// Авторизоваться пользователем сети. /// </summary> /// <param name="login"> Логин. </param> /// <param name="password"> Пароль. </param> /// <returns> Пользователь сети. null если не удалось авторизоваться. </returns> public User LoginUser(string login, string password) { if (string.IsNullOrEmpty(login)) { throw new ArgumentException("Логин не может быть пустым или равным null.", nameof(login)); } if (string.IsNullOrEmpty(password)) { throw new ArgumentException("Пароль не может быть пустым или равным null.", nameof(password)); } BlockchainMSSQL.User user = _dataProvider.FindUser(login); if (user == null) { return(null); } var passwordHash = password.GetHash(); if (user.Password != passwordHash) { return(null); } // Session.SetCurrentUser(user); return(user); }
/// <summary> /// Создать экземпляр блока. /// </summary> /// <param name="previousBlock">Предыдущий блок.</param> /// <param name="data">Данные, сохраняемые в блоке.</param> /// <param name="algorithm">Алгоритм хеширования.</param> /// <param name="user"> Идентификатор пользователя, создавшего блок. </param> public Block(Block previousBlock, Data data, BlockchainMSSQL.User userFrom, BlockchainMSSQL.User userTo, double money, IAlgorithm algorithm = null) { #region Requires if (previousBlock == null) { throw new ArgumentException("Предыдущий блок не может быть равен null.", nameof(previousBlock)); } if (!previousBlock.IsCorrect()) { throw new ArgumentException("Предыдущий блок некорректный.", nameof(previousBlock)); } if (data == null) { throw new ArgumentException("Данные не могут быть равны null.", nameof(data)); } if (!data.IsCorrect()) { throw new ArgumentException("Данные некорректные.", nameof(data)); } #endregion if (algorithm != null) { _algorithm = algorithm; } Version = 1; CreatedOn = DateTime.Now.ToUniversalTime(); PreviousHash = previousBlock.Hash; Data = data; UserFrom = userFrom ?? throw new ArgumentException("Пользователь не может быть равен null.", nameof(userFrom)); UserTo = userTo ?? throw new ArgumentException("Пользователь не может быть равен null.", nameof(userTo)); Hash = this.GetHash(_algorithm); Money = money; if (!this.IsCorrect()) { throw new ArgumentException("Ошибка создания блока. Блок некорректный.", nameof(Block)); } }