public void OnConfigure(Enums.NavigationView pageKey)
        {
            Type tmpType = null;

            switch (pageKey)
            {
            case Enums.NavigationView.Login:
                tmpType = typeof(LoginView);
                break;

            case Enums.NavigationView.Lottery:
                break;

            case Enums.NavigationView.Statistic:
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(pageKey), pageKey, null);
            }

            lock (this.sync)
            {
                if (this.pagesByKey.ContainsKey(pageKey.ToString()))
                {
                    this.pagesByKey[pageKey.ToString()] = tmpType;
                }
                else
                {
                    this.pagesByKey.Add(pageKey.ToString(), tmpType);
                }
            }
        }
        /// <summary>
        /// The on set root page.
        /// </summary>
        /// <param name="rootPageKey">
        /// The root page key.
        /// </param>
        /// <returns>
        /// The <see cref="Page"/>.
        /// </returns>
        public Page OnSetRootPage(Enums.NavigationView rootPageKey)
        {
            var rootPage = this.OnGetPage(rootPageKey.ToString());

            this.navigationPageStack.Clear();
            var mainPage = new NavigationPage(rootPage);

            this.navigationPageStack.Push(mainPage);
            return(mainPage);
        }