Example #1
0
        private void btnDeleteBill_Click(object sender, EventArgs e)
        {
            List <int> lstIdBill = Hepler.CheckDataGridViewCheckBox <int>(dtgvBill, 0, 6);

            if (lstIdBill.Count > 0)
            {
                if (MessageBox.Show("Bạn có chắc chắn muốn xóa không", "Thông báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
                {
                    string successDelete = "";
                    string errorDelete   = "";
                    foreach (int item in lstIdBill)
                    {
                        if (BillDAO.Instance.Delete(item))
                        {
                            successDelete += "," + item;
                        }
                        else
                        {
                            errorDelete += "," + item;
                        }
                    }
                    Hepler.ShowMessageDelete(successDelete, errorDelete);
                    ResetData();
                }
            }
            else
            {
                MessageBox.Show("Vui lòng chọn hàng để xóa", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
Example #2
0
        public bool CheckDataEditBill()
        {
            bool checkInput = true;

            checkInput = Hepler.CheckInputNotNull(txtTenBan, txtErrorTenBan, checkInput);
            return(checkInput);
        }
Example #3
0
        public bool checkInputLogin()
        {
            bool checkInput = true;

            checkInput = Hepler.CheckInputNotNull(txtUserName, txtErrUserName, checkInput);
            checkInput = Hepler.CheckInputNotNull(txtPassword, txtErrPasword, checkInput);

            return(checkInput);
        }
Example #4
0
        private void LoadImageFood()
        {
            if (cbFood.SelectedValue != null)
            {
                Food   f             = FoodDAO.Instance.GetFoodById((cbFood.SelectedItem as Food).Id);
                string nameImageFood = (f.ImageFood).ConvertByteArrayToString();
                Hepler.SetImageToPictureBox(pictureFood, nameImageFood);
                return;
            }

            Hepler.SetImageToPictureBox(pictureFood, Hepler.ImageNameDefault);
        }
Example #5
0
        public IActionResult GetFlatHodlings(HoldingsParams holdingsParams)
        {
            Hepler.GenerateModelState(holdingsParams.dateFrom, holdingsParams.dateTo, holdingsParams.entities, holdingsParams.entitiesType, holdingsParams.groupID, ModelState);

            if (!ModelState.IsValid)
            {
                return(new UnprocessableEntityObjectResult(ModelState));
            }

            var res = this.hodldingsRepository.GetHoldings(holdingsParams.dateFrom, holdingsParams.dateTo, holdingsParams.entities, holdingsParams.entitiesType, holdingsParams.groupID);

            var dto = AutoMapper.Mapper.Map <IEnumerable <Entities.Holding>, IEnumerable <Dto.HoldingDto> >(res);

            return(Ok(dto));
        }
Example #6
0
        public void OpenDataBase()
        {
            var path = Hepler.OpenFile();

            if (!string.IsNullOrEmpty(path))
            {
                string connectionString = string.Format("Data source= {0} ;", path);
                if (SQLiteCore.CheckConnection(connectionString))
                {
                    if (SQLiteCore.AddDataBaseToHistory(path))
                    {
                        DataBases.Add(DataBaseBuilder.BuildDataBaseObject(path, this));
                    }
                }
            }
        }
Example #7
0
        public bool CheckDataInsertBill()
        {
            bool checkInput = true;

            checkInput = Hepler.CheckInputNotNull(txtTenBan, txtErrorTenBan, checkInput);
            if (cbFood.SelectedValue == null)
            {
                txtErrorTenMon.Text = "Trường này không được để trống";
                checkInput          = false;
            }
            else
            {
                txtErrorTenMon.Text = "";
            }

            return(checkInput);
        }
Example #8
0
 public void ShowCardBalance(BankCard BankCard)
 {
     try
     {
         if (Hepler.CheckPAN(BankCard.PAN))
         {
             if (Hepler.CheckExpireTime(BankCard.ExpireTime))
             {
                 if (Hepler.CheckBalance(BankCard.Balance))
                 {
                     bankCard.ShowBalance();
                 }
             }
         }
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.Message);
     }
 }
Example #9
0
        /// <summary>
        /// 初始化页面
        /// </summary>
        public override void InitPage(string pageName)
        {
            base.PageName    = pageName;
            base.PageControl = new PageControl();
            base.PageControl.Gantt.SelectionChanged            = ConditionChanged;
            base.PageControl.Gantt.Controller.ColumnWidth_1    = 0;
            base.PageControl.Gantt.Controller.ColumnWidth_3    = 0;
            base.PageControl.Gantt.Controller.ColumnName_2     = "项目简称";
            base.PageControl.Gantt.Controller.ColumnWidth_2    = 150;
            base.PageControl.Gantt.Controller.ShowContentType1 = "显示内容:承接人数/平均计划人日/平均实际人日";
            base.PageControl.Gantt.Controller.ShowContentType2 = "浮窗内容:承接人/事项";

            this.m_CurrentData = Hepler.GetData(@".\项目工单台账(全部).xlsx", "项目工单台账(全部)").DefaultView.ToTable(false, new[]
            {
                "所属部门",
                //"项目总监",
                //"客户经理",
                //"支撑总监",
                //"方案专家",
                "工单类型",
                "承接人",
                "项目",
                "事项",
                "工单状态",
                "开始时间",
                "结束时间",
                "地点",
                //"实际工时",
                "工时"
            });
            m_CurrentData.Columns.Add("项目总监", typeof(string));
            m_CurrentData.Columns.Add("客户经理", typeof(string));
            m_CurrentData.Columns.Add("支撑总监", typeof(string));
            m_CurrentData.Columns.Add("方案专家", typeof(string));
            m_CurrentData.Columns.Add("实际工时", typeof(string));
            var dicData = Hepler.GetData(@".\项目台账(全部).xlsx", "项目台账(全部)").DefaultView.ToTable(false, new[]
            {
                "项目简称",
                "项目总监",
                "客户经理",
                "支撑总监",
                "方案专家",
            });

            var datas = m_CurrentData.Select();

            foreach (DataRow dataRow in datas)
            {
                var dicDataRows = dicData.Select().Where(t => t["项目简称"].ToString() == dataRow["项目"].ToString());
                if (dicDataRows.Count() > 0)
                {
                    var dicDataRow = dicDataRows.First();
                    if (dicDataRow != null)
                    {
                        dataRow["项目总监"] = dicDataRow["项目总监"];
                        dataRow["客户经理"] = dicDataRow["客户经理"];
                        dataRow["支撑总监"] = dicDataRow["支撑总监"];
                        dataRow["方案专家"] = dicDataRow["方案专家"];
                        dataRow["实际工时"] = 0;
                    }
                }
                else
                {
                    dataRow["项目总监"] = "";
                    dataRow["客户经理"] = "";
                    dataRow["支撑总监"] = "";
                    dataRow["方案专家"] = "";
                    dataRow["实际工时"] = 0;
                }
            }
            InitCondition();
        }
Example #10
0
        public ExecutionStatus FinishCycle(UInt256 cycle, SystemContractExecutionFrame frame)
        {
            Logger.LogDebug("FinishCycle()");
            var currentBlock = frame.InvocationContext.Receipt.Block;

            if (GetBlockNumberInCycle(currentBlock) != 0)
            {
                Logger.LogWarning(
                    $"FinishCycle called in block {currentBlock} which is not beginning of cycle {cycle.ToBigInteger()}");
                return(ExecutionStatus.ExecutionHalted);
            }

            if (cycle.ToBigInteger() != GetConsensusGeneration(frame) - 1)
            {
                Logger.LogWarning(
                    $"Invalid cycle: {cycle}, just finished cycle number is {GetConsensusGeneration(frame) - 1}");
                return(ExecutionStatus.ExecutionHalted);
            }

            var players = GetPlayersCount();
            var gen     = GetConsensusGeneration(frame) - 1;

            if (players != null)
            {
                var faulty      = (players - 1) / 3;
                var tsKeys      = GetTSKeys();
                var tpkeKey     = GetTpkeKey();
                var keyringHash = tpkeKey.ToBytes().Concat(tsKeys.ToBytes()).Keccak();
                var votes       = GetConfirmations(keyringHash.ToBytes(), gen);
                if (votes + 1 < players - faulty)
                {
                    Logger.LogError(
                        $"GovernanceContract is halted in FinishCycle, collected {votes} votes, need {players - faulty - 1}");
                    return(ExecutionStatus.ExecutionHalted);
                }

                var ecdsaPublicKeys = _nextValidators.Get()
                                      .Batch(CryptoUtils.PublicKeyLength)
                                      .Select(x => x.ToArray().ToPublicKey())
                                      .ToArray();

                foreach (var k in ecdsaPublicKeys)
                {
                    Logger.LogWarning(k.ToHex());
                }

                foreach (var k in tsKeys.Keys)
                {
                    Logger.LogWarning(k.ToHex());
                }

                _context.Snapshot.Validators.UpdateValidators(ecdsaPublicKeys, tsKeys, tpkeKey);

                Emit(GovernanceInterface.EventFinishCycle);
                Logger.LogDebug("Enough confirmations collected, validators will be changed in the next block");
                Logger.LogDebug(
                    $"  - ECDSA public keys: {string.Join(", ", ecdsaPublicKeys.Select(key => key.ToHex()))}");
                Logger.LogDebug($"  - TS public keys: {string.Join(", ", tsKeys.Keys.Select(key => key.ToHex()))}");
                Logger.LogDebug($"  - TPKE public key: {tpkeKey.ToHex()}");
            }

            var balanceOfExecutionResult = Hepler.CallSystemContract(frame,
                                                                     ContractRegisterer.LatokenContract, ContractRegisterer.GovernanceContract,
                                                                     Lrc20Interface.MethodBalanceOf,
                                                                     ContractRegisterer.GovernanceContract);

            if (balanceOfExecutionResult.Status != ExecutionStatus.Ok)
            {
                Logger.LogError("GovernanceContract is halted in FinishCycle");
                return(ExecutionStatus.ExecutionHalted);
            }

            var txFeesAmount = balanceOfExecutionResult.ReturnValue !.ToUInt256().ToMoney();

            SetCollectedFees(txFeesAmount);
            ClearPlayersCount();
            return(ExecutionStatus.Ok);
        }
Example #11
0
 private void btnShowHidePass_MouseUp(object sender, MouseEventArgs e)
 {
     Hepler.SetHidePass(txtPassword, btnShowHidePass);
 }
Example #12
0
 private void btnExportToExcel_Click(object sender, EventArgs e)
 {
     Hepler.ExportToExcel(dtgvReport);
 }
Example #13
0
        // Every time a node starts, it first tries to build the genesis block
        public bool TryBuildGenesisBlock()
        {
            // genesis block is built from the config.json file
            // genesis block mints tokens to the validators for the first cycle
            var genesisBlock = _genesisBuilder.Build();

            // if genesis block can already be found, we return immediately
            if (_stateManager.LastApprovedSnapshot.Blocks.GetBlockByHeight(0) != null)
            {
                return(false);
            }
            var snapshot      = _stateManager.NewSnapshot();
            var genesisConfig = _configManager.GetConfig <GenesisConfig>("genesis");

            if (genesisConfig is null)
            {
                return(false);
            }
            genesisConfig.ValidateOrThrow();
            var initialConsensusState = new ConsensusState(
                genesisConfig.ThresholdEncryptionPublicKey.HexToBytes(),
                genesisConfig.Validators.Select(v => new ValidatorCredentials
                                                (
                                                    v.EcdsaPublicKey.HexToBytes().ToPublicKey(),
                                                    v.ThresholdSignaturePublicKey.HexToBytes()
                                                )).ToArray()
                );

            snapshot.Validators.SetConsensusState(initialConsensusState);

            // stake delegation happens even before genesis block
            // stake delegation means - some other address stakes for the validators
            // config.json keeps the stakerAddress and the stakeAmount for each of the validators

            // init system contracts storage
            var dummyStakerPub = new string('f', CryptoUtils.PublicKeyLength * 2).HexToBytes();

            snapshot.Storage.SetRawValue(
                ContractRegisterer.StakingContract,
                new BigInteger(6).ToUInt256().Buffer,
                dummyStakerPub
                );

            // TODO: get rid of explicit numbering of fields
            var initialVrfSeed = Encoding.ASCII.GetBytes("test");

            snapshot.Storage.SetRawValue(
                ContractRegisterer.StakingContract,
                new BigInteger(7).ToUInt256().Buffer,
                initialVrfSeed
                );

            var initialBlockReward = Money.Parse(genesisConfig.BlockReward).ToUInt256().ToBytes();

            snapshot.Storage.SetRawValue(
                ContractRegisterer.GovernanceContract,
                new BigInteger(3).ToUInt256().Buffer,
                initialBlockReward
                );

            var initialBasicGasPrice = Money.Parse(genesisConfig.BasicGasPrice).ToUInt256().ToBytes();

            snapshot.Storage.SetRawValue(
                ContractRegisterer.GovernanceContract,
                new BigInteger(8).ToUInt256().Buffer,
                initialBasicGasPrice
                );

            // The followings are the variables used in stakingContract
            // This variables are stored in the storage snapshot and is a part of the chain
            // To understand the what each variables represent, refer to StakingContract.cs

            // We do the stake delegation even before the execution of genesis block

            var _userToStake = new StorageMapping(
                ContractRegisterer.StakingContract,
                snapshot.Storage,
                new BigInteger(3).ToUInt256()
                );
            var _stakers = new StorageVariable(
                ContractRegisterer.StakingContract,
                snapshot.Storage,
                new BigInteger(6).ToUInt256()
                );
            var _userToPubKey = new StorageMapping(
                ContractRegisterer.StakingContract,
                snapshot.Storage,
                new BigInteger(2).ToUInt256()
                );
            var _pubKeyToStaker = new StorageMapping(
                ContractRegisterer.StakingContract,
                snapshot.Storage,
                new BigInteger(12).ToUInt256()
                );
            var _userToStartCycle = new StorageMapping(
                ContractRegisterer.StakingContract,
                snapshot.Storage,
                new BigInteger(4).ToUInt256()
                );

            foreach (var validator in genesisConfig.Validators)
            {
                if (validator.StakeAmount == null || validator.StakerAddress == null)
                {
                    continue;
                }
                var validatorPublicKey = validator.EcdsaPublicKey.HexToBytes();
                var validatorAddress   = Hepler.PublicKeyToAddress(validatorPublicKey).ToBytes();
                var stakerAddress      = validator.StakerAddress.HexToBytes();

                // add balance to staking contract
                var stakeAmount = Money.Parse(validator.StakeAmount);
                snapshot.Balances.AddBalance(ContractRegisterer.StakingContract, stakeAmount, true);
                // set stake value
                _userToStake.SetValue(validatorAddress, stakeAmount.ToUInt256().ToBytes());
                // update stakers list
                var stakers = _stakers.Get();
                _stakers.Set(stakers.Concat(validatorPublicKey).ToArray());
                // user to public key and public key to staker
                _userToPubKey.SetValue(validatorAddress, validatorPublicKey);
                _pubKeyToStaker.SetValue(validatorPublicKey, stakerAddress);
                // set start cycle
                _userToStartCycle.SetValue(validatorAddress, BitConverter.GetBytes(0));
            }

            _stateManager.Approve();

            // emulate and execute the genesis block
            var(error, removeTransactions, stateHash, relayTransactions) =
                Emulate(genesisBlock.Block, genesisBlock.Transactions);
            if (error != OperatingError.Ok)
            {
                throw new InvalidBlockException(error);
            }
            if (removeTransactions.Count != 0)
            {
                throw new InvalidBlockException(OperatingError.InvalidTransaction);
            }
            if (relayTransactions.Count != 0)
            {
                throw new InvalidBlockException(OperatingError.InvalidTransaction);
            }
            genesisBlock.Block.Header.StateHash = stateHash;
            genesisBlock.Block.Hash             = genesisBlock.Block.Header.Keccak();

            error = Execute(genesisBlock.Block, genesisBlock.Transactions, commit: true, checkStateHash: true);
            if (error != OperatingError.Ok)
            {
                throw new InvalidBlockException(error);
            }
            _stateManager.Commit();
            BlockPersisted(genesisBlock.Block);
            return(true);
        }