public CreateVotingForm(BlockChainVotings blockChain) { InitializeComponent(); this.blockChain = blockChain; MaterialSkinManager.Instance.AddFormToManage(this); this.Text = Properties.Resources.createVoting; labelCandidates.Text = Properties.Resources.candidates; labelSearchUser.Text = Properties.Resources.searchUser; labelVotingName.Text = Properties.Resources.votingName; buttonCreateVoting.Text = Properties.Resources.create; buttonRemoveUser.Text = Properties.Resources.arrowUp; buttonAddUser.Text = Properties.Resources.arrowDown; columnHeaderCandidateHash.Text = Properties.Resources.userHash; columnHeaderCandidateName.Text = Properties.Resources.userName; columnHeaderCandidateID.Text = Properties.Resources.userID; columnHeaderUserHash.Text = Properties.Resources.userHash; columnHeaderUserName.Text = Properties.Resources.userName; columnHeaderUserID.Text = Properties.Resources.userID; toolStripMenuItem1.Text = Properties.Resources.copyHash; toolStripMenuItem2.Text = Properties.Resources.copyHash; Icon = Properties.Resources.votingIcon; }
private void MainForm_Load(object sender, EventArgs e) { ConsoleToTextBoxWriter writer = new ConsoleToTextBoxWriter(textBoxConsole); Console.SetOut(writer); regForm = new RegisterLoginForm(); regForm.SuccsessLogin += RegForm_SuccssesLogin; regForm.FormClosed += (s, a) => { Invoke(new Action(() => Close())); }; regForm.Show(); this.WindowState = FormWindowState.Minimized; this.Enabled = false; this.ShowInTaskbar = false; blockChain = new BlockChainVotings(); if (blockChain.Started) { buttonStart.Enabled = false; } else { buttonStart.Enabled = true; } }
public SendVoteForm(BlockChainVotings blockchain) { this.blockchain = blockchain; InitializeComponent(); MaterialSkinManager.Instance.AddFormToManage(this); this.Text = Properties.Resources.sendVote; labelCandidateInfo.Text = Properties.Resources.iVoteFor; labelChooseVoting.Text = Properties.Resources.chooseVoting; labelVotingInfo.Text = Properties.Resources.takePatrInVoting; checkBoxAgree.Text = Properties.Resources.agree; buttonVote.Text = Properties.Resources.vote; columnHeaderCandidateID.Text = Properties.Resources.userID; columnHeaderCandidateName.Text = Properties.Resources.userName; columnHeaderCandidateHash.Text = Properties.Resources.userHash; labelCandidate.Text = Properties.Resources.chooseCandidate; toolStripMenuItem1.Text = Properties.Resources.copyHash; toolStripMenuItem2.Text = Properties.Resources.copyHash; Icon = Properties.Resources.votingIcon; }
public VotingsStatisticForm(BlockChainVotings blockChain) { InitializeComponent(); this.blockChain = blockChain; MaterialSkinManager.Instance.AddFormToManage(this); this.Text = Properties.Resources.votingsStatistics; labelChooseVoting.Text = Properties.Resources.chooseVoting; labelCandidates.Text = Properties.Resources.candidates; labelVotingInfo.Text = Properties.Resources.inVoting; labelCandidateInfo.Text = Properties.Resources.wons; columnHeaderHash.Text = Properties.Resources.userHash; columnHeaderName.Text = Properties.Resources.userName; columnHeaderID.Text = Properties.Resources.userID; columnHeaderVotes.Text = Properties.Resources.votesCount; materialLabelWithResult.Text = Properties.Resources.withResult; toolStripMenuItem1.Text = Properties.Resources.copyHash; toolStripMenuItem2.Text = Properties.Resources.copyHash; Icon = Properties.Resources.votingIcon; }
public void TestMethodBlockchain() { var keys = CommonHelpers.GetPublicPrivateKeys(); VotingsUser.PublicKey = "MFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAEhWfjbJW2Xd+f0Gls8bi2pzrV5av+R7eG6H8ysQXKNY99mL5j+fUSoJRDaZz9dxhPq3+zmRiewNy0BesJljUl1Q=="; VotingsUser.PrivateKey = "MHQCAQEEICUx8Nb2dysdxxbGHvw6yEWLgqw6PW+YLd74Z0PVxBfMoAcGBSuBBAAKoUQDQgAEhWfjbJW2Xd+f0Gls8bi2pzrV5av+R7eG6H8ysQXKNY99mL5j+fUSoJRDaZz9dxhPq3+zmRiewNy0BesJljUl1Q=="; VotingsUser.CreateOwnBlocks = true; VotingsUser.PeerDiscovery = true; var db = new VotingsDB(); db.ConnectToDBAsync(); db.Clear(); var blockchain = new BlockChainVotings.BlockChainVotings(); blockchain.Start(); Assert.IsTrue(blockchain.Started == true); //проверка корня blockchain.CheckRoot(); Assert.IsTrue(db.GetUserCreation(VotingsUser.RootPublicKey).Signature == VotingsUser.RootCreationSignature); Assert.IsTrue(db.GetVoting(0).Signature == VotingsUser.FirstVotingSignature); Assert.IsTrue(db.GetBlock(0).Signature == VotingsUser.FirstBlockSignature); //создание пользователя var newUser = keys[0]; blockchain.CreateUser(newUser, "somename", "12345"); Assert.IsNotNull(db.GetUserCreation(newUser)); //голосования var list = new List <String>(); list.Add(newUser); list.Add(VotingsUser.RootPublicKey); blockchain.CreateVoting(list, "voting"); Assert.IsTrue(JObject.Parse(db.GetVoting(1).Info)["name"].Value <string>() == "voting"); //голоса blockchain.CreateVote(newUser, db.GetVoting(1).Hash); Assert.IsTrue(db.GetUserVote(VotingsUser.PublicKey, 1).RecieverHash == newUser); //бан blockchain.BanUser(newUser, "cause"); Assert.IsTrue(db.GetUserBan(newUser).RecieverHash == newUser); //создание блока for (int i = 0; i < 6; i++) { blockchain.CreateUser(newUser + i, "somename", "12345"); } Assert.IsTrue(db.GetLastBlock().Transactions.Contains(db.GetUserCreation(newUser).Hash)); Assert.IsTrue(db.GetFreeTransactions(100).Count == 0); }
public UsersStatisticsForm(BlockChainVotings blockChain, bool me) { InitializeComponent(); this.blockChain = blockChain; this.me = me; MaterialSkinManager.Instance.AddFormToManage(this); this.Text = Properties.Resources.usersStatistics; labelActivity.Text = Properties.Resources.lastActivity; labelDate.Text = Properties.Resources.regDate; labelHash.Text = Properties.Resources.userHash; labelId.Text = Properties.Resources.userID; labelName.Text = Properties.Resources.userName; labelNumVotes.Text = Properties.Resources.votingsCount; labelSearchUsers.Text = Properties.Resources.searchUser; labelStatus.Text = Properties.Resources.userStatus; labelUserInfo.Text = Properties.Resources.userInfo; labelUserVotings.Text = Properties.Resources.userVotings; materialLabelAsCandidate.Text = Properties.Resources.asCandidate; columnHeaderId.Text = Properties.Resources.userID; columnHeaderCandidateHash.Text = Properties.Resources.candidateHash; columnHeaderDate.Text = Properties.Resources.voteDate; columnHeaderVotingName.Text = Properties.Resources.votingName; columnHeaderVotingHash.Text = Properties.Resources.votingHash; columnHeaderCandidateName.Text = Properties.Resources.candidateName; columnHeaderHash.Text = Properties.Resources.userHash; columnHeaderName.Text = Properties.Resources.userName; toolStripMenuItemUser.Text = Properties.Resources.copyCandidate; toolStripMenuItem2.Text = Properties.Resources.copyHash; toolStripMenuItemVoting.Text = Properties.Resources.copyVoting; if (me) { textBoxSearchUsers.Text = VotingsUser.PublicKey; textBoxSearchUser_TextChanged(this, new EventArgs()); listViewSearchUsers.Items[0].Selected = true; listViewSearchUsers_ItemSelectionChanged(this, new ListViewItemSelectionChangedEventArgs(listViewSearchUsers.Items[0], 0, true)); } Icon = Properties.Resources.votingIcon; }
public CreateUserForm(BlockChainVotings blockChain) { InitializeComponent(); this.blockChain = blockChain; MaterialSkinManager.Instance.AddFormToManage(this); this.Text = Properties.Resources.createUser; labelName.Text = Properties.Resources.userName; labelPrivateKey.Text = Properties.Resources.privateKey; labelPublicKey.Text = Properties.Resources.userHash; labelID.Text = Properties.Resources.userID; buttonCreateUser.Text = Properties.Resources.create; buttonGenerate.Text = Properties.Resources.generateKeys; Icon = Properties.Resources.votingIcon; }
public BanUserForm(BlockChainVotings blockChain) { InitializeComponent(); this.blockChain = blockChain; buttonBan.Enabled = false; MaterialSkinManager.Instance.AddFormToManage(this); this.Text = Properties.Resources.banUser; labelCause.Text = Properties.Resources.cause; labelSearchUser.Text = Properties.Resources.searchUser; columnHeaderHash.Text = Properties.Resources.userHash; columnHeaderName.Text = Properties.Resources.userName; columnHeaderId.Text = Properties.Resources.userID; buttonBan.Text = Properties.Resources.ban; toolStripMenuItem1.Text = Properties.Resources.copyHash; Icon = Properties.Resources.votingIcon; }