public override async Task <bool> LoadWalletsFromDb(IDbConnectorService dbservice)
        {
            //IDbConnectorService dbservice = new DbConnectorService();

            try
            {
                var wallets  = dbservice.GetWallets();
                var accounts = dbservice.GetAccounts();


                foreach (var account in accounts)
                {
                    if (account.AccountKeyId != Guid.Empty)
                    {
                        try
                        {
                            if (EconomyMainContext.StartWithShops)
                            {
                                if (account.Shop == null)
                                {
                                    account.Shop = ShopFactory.GetShop(ShopTypes.NeblioTokenShop, account.Address, "La58e9EeXUMx41uyfqk6kgVWAQq9yBs44nuQW8");
                                }

                                account.Shop.IsActive = true;
                                account.Shop.StartShop();
                            }
                        }
                        catch (Exception ex)
                        {
                            ; // probably no setting for the shop
                        }
                    }
                }

                if (wallets != null && accounts != null)
                {
                    // this function will load accounts to proper wallets
                    foreach (var w in wallets)
                    {
                        w.NewTransaction += Wall_NewTransaction;
                        w.NewConfirmedTransactionDetailsReceived += WalletHandler_NewTransactionDetailsReceived;
                        if (w != null)
                        {
                            foreach (var a in accounts)
                            {
                                var ltxParsed = accountHandler.GetLastAccountProcessedTxs(a.Address);
                                if (ltxParsed != null)
                                {
                                    a.LastConfirmedTxId = ltxParsed.LastConfirmedTxId;
                                    a.LastProcessedTxId = ltxParsed.LastProcessedTxId;
                                }

                                a.WalletName = w.Name;

                                a.StartRefreshingData(EconomyMainContext.WalletRefreshInterval);
                                if (a.WalletId == w.Id)
                                {
                                    w.Accounts.TryAdd(a.Address, a);
                                }
                            }
                        }
                    }
                }

                if (wallets != null)
                {
                    //refresh main wallet dictionary
                    EconomyMainContext.Wallets.Clear();
                    foreach (var w in wallets)
                    {
                        EconomyMainContext.Wallets.TryAdd(w.Id.ToString(), w);
                    }
                }

                return(true);
            }
            catch (Exception ex)
            {
                log.Error("Cannot Load and pair wallets and accounts.", ex);
                return(false);
            }
        }