示例#1
0
 public RequesterViewModel(DetailedRequesterPOCO dr)
 {
     this.Account        = dr.Account;
     this.State          = dr.State;
     this.AvgBlockReward = dr.AvgBlockReward;
     this.NeededWorkers  = dr.NeededWorkers;
     this.Working        = dr.Working;
     this.InProduction   = dr.InProduction;
 }
        private async Task FetchSidechainConfiguration(DetailedRequesterPOCO req)
        {
            var jsonString = await Fetch.GetAsync(req.IP + Resources.SidechainConfiguration + req.Account);

            var response = JsonStringNavigator.GetDeeper(jsonString, "response");

            req.CreatedAt = JsonStringNavigator.GetDeeper(response, "candidature-phase-end-date");
            CalculateAverageBlock(response, req);
        }
        private void CalculateAverageBlock(string response, DetailedRequesterPOCO req)
        {
            double fullMax, fullMin, historyMax, historyMin, validatorMax, validatorMin;

            fullMax            = Double.Parse(JsonStringNavigator.GetDeeper(response, "max_payment_per_block_full_producers"));
            fullMin            = Double.Parse(JsonStringNavigator.GetDeeper(response, "min_payment_per_block_full_producers"));
            historyMax         = Double.Parse(JsonStringNavigator.GetDeeper(response, "max_payment_per_block_history_producers"));
            historyMin         = Double.Parse(JsonStringNavigator.GetDeeper(response, "min_payment_per_block_history_producers"));
            validatorMax       = Double.Parse(JsonStringNavigator.GetDeeper(response, "max_payment_per_block_validator_producers"));
            validatorMin       = Double.Parse(JsonStringNavigator.GetDeeper(response, "min_payment_per_block_validator_producers"));
            req.AvgBlockReward = Average(Average(fullMax, fullMin), Average(historyMax, historyMin), Average(validatorMax, validatorMin));
        }
        private async Task <bool> FetchSidechainState(DetailedRequesterPOCO req)
        {
            var jsonString = await Fetch.GetAsync(req.IP + Resources.SidechainState + req.Account);

            var succeeded = bool.Parse(JsonStringNavigator.GetDeeper(jsonString, "succeeded"));

            if (!succeeded)
            {
                req.State = "No sidechain";
                return(false);
            }
            var response = JsonStringNavigator.GetDeeper(jsonString, "response");
            var scState  = JsonStringNavigator.GetValue <SidechainState>(response);

            req.InProduction  = scState.inProduction;
            req.State         = scState.state;
            req.NeededWorkers = scState.historyProducersInfo.numberOfProducersRequired + scState.fullProducersInfo.numberOfProducersRequired + scState.validatorProducersInfo.numberOfProducersRequired;
            req.Working       = scState.historyProducersInfo.numberOfProducersInChain + scState.fullProducersInfo.numberOfProducersInChain + scState.validatorProducersInfo.numberOfProducersInChain;
            return(true);
        }
 public async Task FetchDetailedValues(DetailedRequesterPOCO req)
 {
     await FetchSidechainState(req);
     await FetchSidechainConfiguration(req);
 }