public BookingListViewModel(int id)
 {
     this.EventId  = id;
     _apiRequester = new ApiRequester("http://localhost:51049/api/");
     //Messenger<BookingViewModel>.Instance.Register("DeleteBooking", OnDeleteBooking); // voir *
     Messenger <DeleteMessage <BookingViewModel> > .Instance.Register(OnDeleteBooking);
 }
 public CommentListViewModel(int id)
 {
     this.EventId  = id;
     _apiRequester = new ApiRequester("http://localhost:51049/api/");
     //Messenger<CommentViewModel>.Instance.Register("DeleteComment", OnDeleteComment); // voir *
     Messenger <DeleteMessage <CommentViewModel> > .Instance.Register(OnDeleteComment);
 }
Exemple #3
0
        public ActionResult deleteGroup()
        {
            string id    = "LAST";
            string owner = "MMR";
            var    tsk   = ApiRequester.requestToApi((string)Session["auth"], "groups/remove/" + owner + "/" + id, HttpMethod.Delete);

            tsk.Wait();
            var res    = tsk.Result;;
            var reader = res.Content.ReadAsStringAsync();

            reader.Wait();
            var data = reader.Result;
            var stat = JsonConvert.DeserializeObject(data);

            if ((bool)stat)
            {
                TempData["gid"] = "True";
            }
            else
            {
                TempData["gid"] = "false";
            }
            TempData["stat"] = res.StatusCode.ToString();
            return(View("Index"));
        }
Exemple #4
0
        public ActionResult AddMembers()
        {
            GroupMemberCreateModel gc = new GroupMemberCreateModel();

            gc.users = new List <string> {
                "smit",
            };
            gc.owner = "MMR";
            gc.id    = "MMRsdp";

            var tsk = ApiRequester.requestToApi(gc, (string)Session["auth"], "groups/add", HttpMethod.Post);

            tsk.Wait();
            var res    = tsk.Result;;
            var reader = res.Content.ReadAsStringAsync();

            reader.Wait();
            var data = reader.Result;
            var id   = JsonConvert.DeserializeObject(data);

            if ((bool)id)
            {
                TempData["gid"] = "True";
            }
            else
            {
                TempData["gid"] = "false";
            }
            TempData["stat"] = "Completed";


            return(RedirectToAction("Index"));
        }
Exemple #5
0
        public ActionResult deleteFile()
        {
            string token    = "MM521RR521RR520";
            string id       = "MMRFirstGRPSystem.Random";
            string username = "******";

            var tsk = ApiRequester.requestToApi((string)Session["auth"], "groups/remove/file/" + id + "/" + username + "/" + token, HttpMethod.Delete);

            tsk.Wait();
            var res    = tsk.Result;;
            var reader = res.Content.ReadAsStringAsync();

            reader.Wait();
            var data = reader.Result;
            var stat = JsonConvert.DeserializeObject(data);

            if ((bool)stat)
            {
                TempData["gid"] = "True";
            }
            else
            {
                TempData["gid"] = "false";
            }
            TempData["stat"] = res.StatusCode.ToString();
            return(View("Index"));
        }
Exemple #6
0
        public ActionResult GetGroups()
        {
            string username = "******";
            bool   st       = true;
            var    tsk      = ApiRequester.requestToApi((string)Session["auth"], "groups/get/" + username + "/" + st, HttpMethod.Get);

            tsk.Wait();
            var res    = tsk.Result;;
            var reader = res.Content.ReadAsStringAsync();

            reader.Wait();
            var data = reader.Result;
            var stat = JsonConvert.DeserializeObject(data);

            if (stat == null)
            {
                TempData["stat"] = "NULL";
            }
            else
            {
                foreach (var g in (List <GroupModel>)stat)
                {
                    TempData["gid"] += g.groupName + " ";
                }
            }
            TempData["stat"] = res.StatusCode.ToString();

            return(View("Index"));
        }
Exemple #7
0
        public ActionResult AckUser()
        {
            bool   st       = true;
            string username = "******";
            string id       = "MMRsdp";

            var tsk = ApiRequester.requestToApi(id, (string)Session["auth"], "groups/ack/" + username + "/" + st, HttpMethod.Post);

            tsk.Wait();
            var res    = tsk.Result;;
            var reader = res.Content.ReadAsStringAsync();

            reader.Wait();
            var data = reader.Result;
            var stat = JsonConvert.DeserializeObject(data);

            if ((bool)stat)
            {
                TempData["gid"] = "True";
            }
            else
            {
                TempData["gid"] = "false";
            }
            TempData["stat"] = res.StatusCode.ToString();

            return(View("Index"));
            //return RedirectToAction("Index");
        }
Exemple #8
0
        public static List <Pricing> GetAppPrices(IEnumerable <long> appIDs, string countryCode)
        {
            if (appIDs == null || !appIDs.Any())
            {
                return(null);
            }
            string url = $"{BaseUrl}?appids={string.Join(",", appIDs)}&cc={countryCode}&filters=price_overview";

            string  json   = ApiRequester.GetJson(url);
            JObject tokens = JsonConvert.DeserializeObject <JObject>(json);

            List <Pricing> prices = new List <Pricing>();

            foreach (JProperty prop in tokens.Properties())
            {
                var     data = tokens[prop.Name]["data"];
                Pricing pricing;
                if (data.HasValues)
                {
                    pricing = data["price_overview"].ToObject <Pricing>();
                }
                else
                {
                    pricing = new Pricing {
                        Initial            = null,
                        Final              = null,
                        DiscountPercentage = null
                    };
                }
                pricing.AppID = Convert.ToInt64(prop.Name);
                prices.Add(pricing);
            }
            return(prices);
        }
Exemple #9
0
 public HomeController(IDistributedCache distributedCache, IHubContext <DataUpdaterHub> hubContext, DefaultEndpointsSettings defaultEndpointsSettings, ApiRequester apiRequester)
 {
     this.distributedCache         = distributedCache;
     this.defaultEndpointsSettings = defaultEndpointsSettings;
     this.updaterHub   = hubContext;
     this.apiRequester = apiRequester;
 }
Exemple #10
0
        public async Task <ActionResult> Login(DtoLogin model)
        {
            var response = await ApiRequester <DtoUser> .Call("identityapi/validatelogin", "POST", postData : model);

            var user = response.Data;

            if (user != null)
            {
                var identity = new ClaimsIdentity(new[] {
                    new Claim("Id", user.Id.ToString()),
                    new Claim(ClaimTypes.Name, user.FullName),
                    new Claim(ClaimTypes.Email, user.EMailAddress),
                    new Claim(ClaimTypes.Country, "")
                }, "ApplicationCookie");

                var ctx         = Request.GetOwinContext();
                var authManager = ctx.Authentication;

                authManager.SignIn(identity);

                return(Redirect((model.ReturnUrl)));
            }

            return(View(model));
        }
        //private BookingWindow bw = new BookingWindow();

        public BookingViewModel(GetBooking entity) : base(entity)
        {
            _commentRequester = new ApiRequester("http://localhost:51049/api/");
            PurchaseDate      = Entity.PurchaseDate;
            TicketsPurchased  = Entity.TicketsPurchased;
            Amount            = Entity.Amount;
        }
Exemple #12
0
        public async Task <IActionResult> ResyncCrosschainTransactionsAsync()
        {
            //TODO: implement this method
            ApiResponse stopNodeRequest = await ApiRequester.GetRequestAsync(this.defaultEndpointsSettings.StratisNode, "/api/Node/status");

            return(stopNodeRequest.IsSuccess ? (IActionResult)Ok() : BadRequest());
        }
Exemple #13
0
        public FetchingBackgroundService(IDistributedCache distributedCache, DefaultEndpointsSettings defaultEndpointsSettings, IHubContext <DataUpdaterHub> hubContext, ILoggerFactory loggerFactory, ApiRequester apiRequester, IConfiguration configuration)
        {
            this.defaultEndpointsSettings = defaultEndpointsSettings;
            this.distributedCache         = distributedCache;
            this.updaterHub    = hubContext;
            this.loggerFactory = loggerFactory;
            this.logger        = loggerFactory.CreateLogger <FetchingBackgroundService>();
            this.apiRequester  = apiRequester;
            if (this.defaultEndpointsSettings.SidechainNodeType == NodeTypes.TenK)
            {
                this.is50K = false;
            }

            this.logger.LogInformation("Default settings {settings}", defaultEndpointsSettings);
            if (this.is50K)
            {
                nodeDataServiceMainchain = new NodeGetDataServiceMultisig(this.apiRequester, this.defaultEndpointsSettings.StratisNode, this.loggerFactory, this.defaultEndpointsSettings.EnvType);
                nodeDataServiceSidechain = new NodeDataServiceSidechainMultisig(this.apiRequester, this.defaultEndpointsSettings.SidechainNode, this.loggerFactory, this.defaultEndpointsSettings.EnvType);
            }
            else
            {
                nodeDataServiceMainchain = new NodeGetDataServiceMainchainMiner(this.apiRequester, this.defaultEndpointsSettings.StratisNode, this.loggerFactory, this.defaultEndpointsSettings.EnvType);
                nodeDataServiceSidechain = new NodeDataServicesSidechainMiner(this.apiRequester, this.defaultEndpointsSettings.SidechainNode, this.loggerFactory, this.defaultEndpointsSettings.EnvType);
            }
        }
        public FetchingBackgroundService(IDistributedCache distributedCache, DefaultEndpointsSettings defaultEndpointsSettings, IHubContext <DataUpdaterHub> hubContext, ILoggerFactory loggerFactory, ApiRequester apiRequester, IConfiguration configuration)
        {
            this.defaultEndpointsSettings = defaultEndpointsSettings;
            this.distributedCache         = distributedCache;
            this.updaterHub    = hubContext;
            this.loggerFactory = loggerFactory;
            this.logger        = loggerFactory.CreateLogger <FetchingBackgroundService>();
            this.apiRequester  = apiRequester;

            if (this.defaultEndpointsSettings.SidechainNodeType == NodeTypes.TenK)
            {
                this.multiSigNode = false;
            }

            this.logger.LogInformation("Default settings {settings}", defaultEndpointsSettings);
            if (this.multiSigNode)
            {
                nodeDataServiceMainchain = new MultiSigMainChainService(this.apiRequester, this.defaultEndpointsSettings, this.loggerFactory);
                nodeDataServiceSidechain = new MultiSigSideChainService(this.apiRequester, this.defaultEndpointsSettings, this.loggerFactory);
            }
            else
            {
                nodeDataServiceMainchain = new MasterNodeMainChainService(this.apiRequester, this.defaultEndpointsSettings, this.loggerFactory);
                nodeDataServiceSidechain = new MasterNodeSideChainService(this.apiRequester, this.defaultEndpointsSettings, this.loggerFactory);
            }
        }
Exemple #15
0
        public static List <SteamUser> GetPlayerSummaries(string apiKey, IEnumerable <long> steamIDs)
        {
            if (steamIDs.Count() > 100)
            {
                throw new ArgumentOutOfRangeException("Too many steam IDs provided. 100 ID limit.");
            }

            return(ApiRequester.GetResponse <List <SteamUser> >($"{BaseUrl}/GetPlayerSummaries/v2?key={apiKey}&steamids={string.Join(",", steamIDs)}", "response", "players"));
        }
Exemple #16
0
        public static long?ResolveVanityUrl(string apiKey, string profileUrl)
        {
            if (profileUrl.EndsWith("/"))
            {
                profileUrl = profileUrl.Substring(0, profileUrl.Length - 1);
            }
            string vanity = profileUrl.Split('/').Last();

            return(ApiRequester.GetResponse <long?>($"{BaseUrl}/ResolveVanityUrl/v1?key={apiKey}&vanityUrl={vanity}", "response", "steamid"));
        }
        public async Task <IActionResult> CheckFederationAsync()
        {
            ApiResponse getMainchainFederationInfo = await ApiRequester.GetRequestAsync(this.defaultEndpointsSettings.StratisNode, "/api/FederationGateway/info");

            if (getMainchainFederationInfo.IsSuccess)
            {
                return(Json(getMainchainFederationInfo.Content.active));
            }
            return(Json(true));
        }
Exemple #18
0
        public async Task <ActionResult> AddToDoItem(string title, int todoListId)
        {
            var dto = new DtoTodoItem {
                Title = title, ListId = todoListId
            };

            var response = await ApiRequester <object> .Call("todoapi/savetodoitem", "POST", dto);

            return(Json(response));
        }
Exemple #19
0
        public async Task <ActionResult> AddTodoList(string title)
        {
            var dto = new DtoTodoList {
                Title = title, UserId = CurrentUser.Id
            };

            var response = await ApiRequester <object> .Call("todoapi/savetodolist", "POST", dto);

            return(Json(response));
        }
Exemple #20
0
        public static Dictionary <long, string> GetAppList()
        {
            Dictionary <long, string> output = new Dictionary <long, string>();
            var jarray = ApiRequester.GetResponse <JArray>($"{BaseUrl}/GetAppList/v2", "applist", "apps");

            foreach (var token in jarray)
            {
                output.Add(token["appid"].ToObject <long>(), token["name"].ToString());
            }
            return(output);
        }
Exemple #21
0
        public async Task <IActionResult> EnableFederationAsync(string mnemonic, string password)
        {
            ApiResponse importWalletRequest = await ApiRequester.PostRequestAsync(this.defaultEndpointsSettings.SidechainNode, "/api/FederationWallet/import-key", new { mnemonic, password });

            if (importWalletRequest.IsSuccess)
            {
                ApiResponse enableFederationRequest = await ApiRequester.PostRequestAsync(this.defaultEndpointsSettings.SidechainNode, "/api/FederationWallet/enable-federation", new { password });

                return(enableFederationRequest.IsSuccess ? (IActionResult)Ok() : BadRequest());
            }
            return(BadRequest());
        }
Exemple #22
0
        public async Task <IActionResult> ResyncAsync(string value)
        {
            bool isHeight = int.TryParse(value, out int height);

            if (isHeight)
            {
                ApiResponse getblockhashRequest = await ApiRequester.GetRequestAsync(this.defaultEndpointsSettings.StratisNode, $"/api/Consensus/getblockhash?height={value}");

                ApiResponse syncRequest = await ApiRequester.PostRequestAsync(this.defaultEndpointsSettings.StratisNode, "/api/Wallet/sync", new { hash = ((string)getblockhashRequest.Content) });

                return(syncRequest.IsSuccess ? (IActionResult)Ok() : BadRequest());
            }
            else
            {
                ApiResponse syncRequest = await ApiRequester.PostRequestAsync(this.defaultEndpointsSettings.StratisNode, "/api/Wallet/sync", new { hash = value });

                return(syncRequest.IsSuccess ? (IActionResult)Ok() : BadRequest());
            }
        }
Exemple #23
0
        private void InitData()
        {
            DatabasePZEntities context = new DatabasePZEntities();

            var   api = new ApiRequester();
            Movie movie;

            foreach (var seans in context.SEANS)
            {
                movie = api.getAppMovie((int)seans.Id_film);
                var    hours = new ObservableCollection <string>();
                var    rooms = new ObservableCollection <Room>();
                string spotTable;
                int    currentSpotNumber;

                foreach (var godziny in context.GODZINY.Where(id => id.Id_Seansu == seans.Id_seans))
                {
                    hours.Add(godziny.Godzina);
                    var  spots = new ObservableCollection <Spot>();
                    SALA room  = godziny.SEANS.SALA;
                    spotTable = godziny.Miejsca;

                    for (int i = 0; i < room.Ilosc_wierszy; i++)
                    {
                        for (int j = 0; j < room.Ilosc_kolumn; j++)
                        {
                            currentSpotNumber = (i * (int)room.Ilosc_kolumn) + j;
                            int isAvailable = Int32.Parse(spotTable[currentSpotNumber].ToString());
                            spots.Add(new Spot(isAvailable, j, i, currentSpotNumber + 1));
                        }
                    }

                    rooms.Add(new Room(room.Id_sala, spots, (int)room.Ilosc_kolumn, (int)room.Ilosc_wierszy));
                }


                App.Current.Dispatcher.BeginInvoke((Action) delegate()
                {
                    Seances.Add(new Seance(movie, rooms, hours, (DateTime)seans.Data_rozpoczecia, (DateTime)seans.Data_zakonczenia, seans.Id_seans));
                });
            }
        }
Exemple #24
0
        public void Configure()
        {
            if (configuration == null)
            {
                throw new ArgumentNullException();
            }
            else
            {
                // Cargamos historicos
                Log.Info("Cargando historicos");
                _historicMatch = new HistoricMatchs();
                _historicMatch.LoadHistoric(configuration.Csv_URLs);

                // Cargamos clasificacion
                Log.Info("Cargando clasificacion");
                _apiRequester = new ApiRequester()
                {
                    API_KEY       = configuration.API_KEY,
                    API_URL       = configuration.API_URL,
                    RequestHeader = configuration.RequestHeader,
                    LeagueRequest = configuration.LeagueRequest
                };

                _loadStatistic();


                // Preparamos el Motor de logica difusa
                _fuzzy = new FuzzyCalculator()
                {
                    MaxMultipleBets = configuration.FuzzyConf.MaxDoubles
                };
                _fuzzy.SetFuzzyValues(configuration.FuzzyConf.X1_1,
                                      configuration.FuzzyConf.X2_1,
                                      configuration.FuzzyConf.X1_X,
                                      configuration.FuzzyConf.X2_X,
                                      configuration.FuzzyConf.X3_X,
                                      configuration.FuzzyConf.X4_X,
                                      configuration.FuzzyConf.X1_2,
                                      configuration.FuzzyConf.X2_2);
            }
        }
Exemple #25
0
        private static Dictionary <int, Dictionary <LeagueEnum, LeagueTable> > _getClassifications(List <JourneyDateClassification> journeys, Configuration configuration)
        {
            // Cargamos clasificacion
            Log.Info("Cargando las clasificaciones");
            Dictionary <int, Dictionary <LeagueEnum, LeagueTable> > classifications = new Dictionary <int, Dictionary <LeagueEnum, LeagueTable> >();

            foreach (var j in journeys)
            {
                if (j.journey == 2) // TODO if (j.journey > 1)
                {
                    Dictionary <string, string> leagueRequest = new Dictionary <string, string>();
                    leagueRequest.Add(EnumUtility.GetDescriptionFromEnumValue(LeagueEnum.PRIMERA), "competitions/436/leagueTable/?matchday=" + (j.journey - 1));
                    leagueRequest.Add(EnumUtility.GetDescriptionFromEnumValue(LeagueEnum.SEGUNDA), "competitions/437/leagueTable/?matchday=" + (j.journey - 1));

                    ApiRequester ar = new ApiRequester()
                    {
                        API_KEY       = configuration.API_KEY,
                        API_URL       = configuration.API_URL,
                        RequestHeader = configuration.RequestHeader,
                        LeagueRequest = leagueRequest
                    };

                    /*
                     * ar.DownloadLeague(LeagueEnum.PRIMERA);
                     * ar.DownloadLeague(LeagueEnum.SEGUNDA);
                     */

                    LeagueTable firstDiv  = ar.GetLeague(LeagueEnum.PRIMERA, j.journey);
                    LeagueTable secondDiv = ar.GetLeague(LeagueEnum.SEGUNDA, j.journey);

                    Dictionary <LeagueEnum, LeagueTable> table = new Dictionary <LeagueEnum, LeagueTable>();
                    table.Add(LeagueEnum.PRIMERA, firstDiv);
                    table.Add(LeagueEnum.SEGUNDA, secondDiv);

                    classifications.Add(j.journey, table);
                }
            }
            return(classifications);
        }
Exemple #26
0
        //private ReplyWindow rw = new ReplyWindow();

        public ReplyViewModel(GetReply entity) : base(entity)
        {
            _apiRequester = new ApiRequester("http://localhost:51049/api/");
            Date          = Entity.Date;
            Content       = Entity.Content;
        }
Exemple #27
0
 public static List <Friend> GetFriendList(string apiKey, long steamID)
 {
     return(ApiRequester.GetResponse <List <Friend> >($"{BaseUrl}/GetFriendList/v1?key={apiKey}&steamid={steamID}", "friendslist", "friends"));
 }
Exemple #28
0
        public async Task <IActionResult> StopNodeAsync()
        {
            ApiResponse stopNodeRequest = await ApiRequester.PostRequestAsync(this.defaultEndpointsSettings.StratisNode, "/api/Node/stop", true);

            return(stopNodeRequest.IsSuccess ? (IActionResult)Ok() : BadRequest());
        }
Exemple #29
0
        /// <summary>
        /// Retrieve all node information and store it in IDistributedCache object
        /// </summary>
        private async Task BuildCacheAsync()
        {
            this.logger.LogInformation($"Refresh the Dashboard Data");

            #region Stratis Node
            ApiResponse stratisStatus = await ApiRequester.GetRequestAsync(this.defaultEndpointsSettings.StratisNode, "/api/Node/status");

            ApiResponse stratisLogRules = await ApiRequester.GetRequestAsync(this.defaultEndpointsSettings.StratisNode, "/api/Node/logrules");

            ApiResponse stratisRawmempool = await ApiRequester.GetRequestAsync(this.defaultEndpointsSettings.StratisNode, "/api/Mempool/getrawmempool");

            ApiResponse stratisBestBlock = await ApiRequester.GetRequestAsync(this.defaultEndpointsSettings.StratisNode, "/api/Consensus/getbestblockhash");

            ApiResponse stratisWalletBalances = await ApiRequester.GetRequestAsync(this.defaultEndpointsSettings.StratisNode, "/api/FederationWallet/balance");

            ApiResponse stratisWalletHistory = await ApiRequester.GetRequestAsync(this.defaultEndpointsSettings.StratisNode, "/api/FederationWallet/history", "maxEntriesToReturn=30");

            ApiResponse stratisFederationInfo = await ApiRequester.GetRequestAsync(this.defaultEndpointsSettings.StratisNode, "/api/FederationGateway/info");

            #endregion

            #region Sidechain Node
            ApiResponse sidechainStatus = await ApiRequester.GetRequestAsync(this.defaultEndpointsSettings.SidechainNode, "/api/Node/status");

            ApiResponse sidechainLogRules = await ApiRequester.GetRequestAsync(this.defaultEndpointsSettings.StratisNode, "/api/Node/logrules");

            ApiResponse sidechainRawmempool = await ApiRequester.GetRequestAsync(this.defaultEndpointsSettings.SidechainNode, "/api/Mempool/getrawmempool");

            ApiResponse sidechainBestBlock = await ApiRequester.GetRequestAsync(this.defaultEndpointsSettings.SidechainNode, "/api/Consensus/getbestblockhash");

            ApiResponse sidechainWalletBalances = await ApiRequester.GetRequestAsync(this.defaultEndpointsSettings.SidechainNode, "/api/FederationWallet/balance");

            ApiResponse sidechainWalletHistory = await ApiRequester.GetRequestAsync(this.defaultEndpointsSettings.SidechainNode, "/api/FederationWallet/history", "maxEntriesToReturn=30");

            ApiResponse sidechainFederationInfo = await ApiRequester.GetRequestAsync(this.defaultEndpointsSettings.SidechainNode, "/api/FederationGateway/info");

            #endregion

            var stratisPeers               = new List <Peer>();
            var stratisFederationMembers   = new List <Peer>();
            var sidechainPeers             = new List <Peer>();
            var sidechainFederationMembers = new List <Peer>();

            try
            {
                this.ParsePeers(stratisStatus, stratisFederationInfo, ref stratisPeers, ref stratisFederationMembers);
                this.ParsePeers(sidechainStatus, sidechainFederationInfo, ref sidechainPeers, ref sidechainFederationMembers);
            }
            catch (Exception e)
            {
                this.logger.LogError(e, "Unable to parse feeds");
            }

            var dashboardModel = new DashboardModel();
            try
            {
                dashboardModel = new DashboardModel
                {
                    Status                 = true,
                    IsCacheBuilt           = true,
                    MainchainWalletAddress = stratisFederationInfo.Content.multisigAddress,
                    SidechainWalletAddress = sidechainFederationInfo.Content.multisigAddress,
                    MiningPublicKeys       = stratisFederationInfo.Content.federationMultisigPubKeys,
                    StratisNode            = new StratisNodeModel
                    {
                        WebAPIUrl          = UriHelper.BuildUri(this.defaultEndpointsSettings.StratisNode, "/api").ToString(),
                        SwaggerUrl         = UriHelper.BuildUri(this.defaultEndpointsSettings.StratisNode, "/swagger").ToString(),
                        SyncingStatus      = stratisStatus.Content.consensusHeight > 0 ? (stratisStatus.Content.blockStoreHeight / stratisStatus.Content.consensusHeight) * 100 : 0,
                        Peers              = stratisPeers,
                        FederationMembers  = stratisFederationMembers,
                        BlockHash          = stratisBestBlock.Content,
                        BlockHeight        = stratisStatus.Content.blockStoreHeight,
                        MempoolSize        = stratisRawmempool.Content.Count,
                        History            = stratisWalletHistory.Content,
                        ConfirmedBalance   = (double)stratisWalletBalances.Content.balances[0].amountConfirmed / 100000000,
                        UnconfirmedBalance = (double)stratisWalletBalances.Content.balances[0].amountUnconfirmed / 100000000,
                        CoinTicker         = stratisStatus.Content.coinTicker ?? "STRAT",
                        LogRules           = stratisLogRules.Content
                    },
                    SidechainNode = new SidechainNodelModel
                    {
                        WebAPIUrl          = UriHelper.BuildUri(this.defaultEndpointsSettings.SidechainNode, "/api").ToString(),
                        SwaggerUrl         = UriHelper.BuildUri(this.defaultEndpointsSettings.SidechainNode, "/swagger").ToString(),
                        SyncingStatus      = sidechainStatus.Content.consensusHeight > 0 ? (sidechainStatus.Content.blockStoreHeight / sidechainStatus.Content.consensusHeight) * 100 : 0,
                        Peers              = sidechainPeers,
                        FederationMembers  = sidechainFederationMembers,
                        BlockHash          = sidechainBestBlock.Content,
                        BlockHeight        = sidechainStatus.Content.blockStoreHeight,
                        MempoolSize        = sidechainRawmempool.Content.Count,
                        History            = sidechainWalletHistory.Content,
                        ConfirmedBalance   = (double)sidechainWalletBalances.Content.balances[0].amountConfirmed / 100000000,
                        UnconfirmedBalance = (double)sidechainWalletBalances.Content.balances[0].amountUnconfirmed / 100000000,
                        CoinTicker         = sidechainStatus.Content.coinTicker ?? "STRAT",
                        LogRules           = sidechainLogRules.Content
                    }
                };
            }
            catch (Exception e)
            {
                this.logger.LogError(e, "Unable to fetch feeds.");
            }

            if (!string.IsNullOrEmpty(this.distributedCache.GetString("DashboardData")))
            {
                if (JToken.DeepEquals(this.distributedCache.GetString("DashboardData"), JsonConvert.SerializeObject(dashboardModel)) == false)
                {
                    await this.updaterHub.Clients.All.SendAsync("CacheIsDifferent");
                }
            }
            this.distributedCache.SetString("DashboardData", JsonConvert.SerializeObject(dashboardModel));
        }
        public async Task <IActionResult> ChangeLogLevelAsync(string rule, string level)
        {
            ApiResponse changeLogLevelRequest = await ApiRequester.PostRequestAsync(this.defaultEndpointsSettings.StratisNode, "/api/Node/loglevels", new { logRules = new[] { new { ruleName = rule, logLevel = level } } });

            return(changeLogLevelRequest.IsSuccess ? (IActionResult)Ok() : BadRequest());
        }