コード例 #1
0
        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;
        }
コード例 #2
0
        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;
            }
        }
コード例 #3
0
        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;
        }
コード例 #4
0
        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;
        }
コード例 #5
0
        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);
        }
コード例 #6
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;
        }
コード例 #7
0
        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;
        }
コード例 #8
0
        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;
        }