/// <summary> /// Добавление блока данных. /// </summary> /// <param name="version"> Версия блока. </param> /// <param name="createdOn"> Дата создания блока. </param> /// <param name="hash"> Хеш блока. </param> /// <param name="previousHash"> Хеш предыдущего блока. </param> /// <param name="data"> Данные блока. </param> /// <param name="user"> Данные о пользователе. </param> public void AddBlock(int version, DateTime createdOn, string hash, string previousHash, string data, User userFrom, User userTo, double money) { using (var db = new GlobalSQLContext()) { var block = new Block() { Version = version, CreatedOn = createdOn.ToLocalTime(), Hash = hash, PreviousHash = previousHash, Data = data, UserFrom = db.Users.Single(x => x.UserId == userFrom.UserId), UserTo = db.Users.Single(x => x.UserId == userTo.UserId), Money = money }; db.Blocks.Add(block); var userDetach = db.Users.Single(x => x.UserId == userFrom.UserId); userDetach.Money -= money; if (userDetach.UserId == Session.GetCurrentUser().UserId) { Session.UpdateMoney(-money); } var userAttach = db.Users.Single(x => x.UserId == userTo.UserId); userAttach.Money += money; if (userAttach.UserId == Session.GetCurrentUser().UserId) { Session.UpdateMoney(money); } db.SaveChanges(); } }
/// <summary> /// Очистить хранилище. Удаление всех блоков. /// </summary> public void Clear() { using (var db = new GlobalSQLContext()) { db.Blocks.RemoveRange(db.Blocks); db.SaveChanges(); } }
/// <summary> /// Добавление пользователя. /// </summary> /// <param name="login"> Логин. </param> /// <param name="password"> Пароль. </param> public void AddUser(string login, string password, double money) { using (var db = new GlobalSQLContext()) { var user = new User() { Login = login, Password = password, Money = money }; db.Users.Add(user); db.SaveChanges(); } }