Example #1
0
        public MainViewModel()
        {
            musicList = new MusicListPage();

            playerPage            = new PlayerPage();
            playerPage.BackEvent += delegate
            {
                SetPreviousPage();
            };

            searchPage            = new SearchPage();
            searchPage.BackEvent += delegate
            {
                CurrentContent = FrameContent.MusicListPage;
            };

            settingPage            = new SettingPage();
            settingPage.BackEvent += delegate
            {
                SetPreviousPage();
            };

            timer = new DispatcherTimer();

            miniWindow = new MiniWindow(this);

            tray = new TrayIcon(miniWindow);
        }
        public void LoadPlayerPage()
        {
            Frame      playerContentFrame = new Frame();
            PlayerPage playerContent      = new PlayerPage();

            playerContentFrame.Content = playerContent;
            PlayerTab.Content          = playerContentFrame;
        }
        private void PlayMusic()
        {
            if (selectedMusic != null)
            {
                var viewModel  = new PlayerViewModel(selectedMusic, musicList);
                var playerPage = new PlayerPage {
                    BindingContext = viewModel
                };

                var navigation = Application.Current.MainPage as NavigationPage;
                navigation.PushAsync(playerPage, true);
            }
        }
Example #4
0
        private async void Grid_Loaded(object sender, RoutedEventArgs e)
        {
            scannedFile = await GetFile(episode);

            LoadSidebar();
            Helper.DisableScreenSaver();
            MainWindow.HideContent();
            MainWindow.videoPlayback = true;
            PlayerPage.Focus();
            VolumeSlider.Value         = Player.Volume = Properties.Settings.Default.Volume;
            VolumeSlider.ValueChanged += VolumeSlider_ValueChanged;
            Player.MediaFailed        += (s, ev) => MediaFailedEvent();
            Player.MediaEnded         += (s, ev) => MediaFinishedEvent();
            Player.MediaOpened        += (s, ev) => MediaOpenedEvent();
            Player.Source              = new Uri(scannedFile.NewName);
        }
Example #5
0
 private void PlayMusic()
 {
     // если музыка выбрана
     if (selectedMusic != null)
     {
         // заполняем vm страницы плеера
         PlayerVM playerVM = new PlayerVM(selectedMusic, musicCollection);
         // соединяем контекст PlayerPage с PlayerVM
         var playerPage = new PlayerPage()
         {
             BindingContext = playerVM
         };
         // получаем главную страницу текущего приложения
         var navigation = Application.Current.MainPage as NavigationPage;
         // переходим на PlayerPage сраницу
         navigation.PushAsync(playerPage, true);
     }
 }
Example #6
0
        public ActionResult Recent(string clanName, long playerId)
        {
            var getter = HttpRuntime.Cache.Get("FileGetter", GlobalHelper.CacheMinutes,
                                               () => new FileGetter(GlobalHelper.DataFolder));

            var clan = getter.GetClan(clanName);

            if (clan == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.NotFound, $"Can't find the clan [{clanName}] on this server."));
            }

            var player = clan.Get(playerId);

            if (player == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.NotFound, $"Can't find a player with id {clanName} on this server."));
            }

            string url;

            switch (player.Origin)
            {
            case PlayerDataOrigin.WotStatConsole:
                url = GetWoTStatConsoleRecentUrl(player);
                break;

            case PlayerDataOrigin.WotInfo:
                url = GetWoTInfoRecentUrl(player);
                break;

            default:
                url = GetDefaultRecentUrl(player);
                break;
            }

            if (GlobalHelper.UseExternalPlayerPage)
            {
                return(Redirect(url));
            }

            try
            {
                var connectionString = ConfigurationManager.ConnectionStrings["Store"].ConnectionString;
                var db         = new KeyStore(connectionString);
                var fullPlayer = db.GetPlayer(playerId);

                if (fullPlayer == null)
                {
                    Log.Warn($"Recent({clanName}, {playerId}): fullPlayer == null");
                    return(Redirect(url));
                }

                var wn8ExpectedValues = getter.GetTanksWN8ReferenceValues();
                if (wn8ExpectedValues == null)
                {
                    Log.Error($"Recent({clanName}, {playerId}): wn8ExpectedValues == null");
                    return(Redirect(url));
                }

                var moes = getter.GetTanksMoe();

                if (fullPlayer.Performance == null)
                {
                    Log.Error($"Recent({clanName}, {playerId}): fullPlayer.Performance == null");
                    return(Redirect(url));
                }

                if (fullPlayer.Performance.All == null)
                {
                    Log.Error($"Recent({clanName}, {playerId}): fullPlayer.Performance.All == null");
                    return(Redirect(url));
                }

                if (fullPlayer.Performance.Month == null)
                {
                    Log.Error($"Recent({clanName}, {playerId}): fullPlayer.Performance.Month == null");
                    return(Redirect(url));
                }

                if (fullPlayer.Performance.Week == null)
                {
                    Log.Error($"Recent({clanName}, {playerId}): fullPlayer.Performance.Week == null");
                    return(Redirect(url));
                }

                fullPlayer.Calculate(wn8ExpectedValues);

                var model = new PlayerPage
                {
                    Clan              = clan,
                    Player            = fullPlayer,
                    Wn8ExpectedValues = wn8ExpectedValues,
                    MoEs              = moes,
                    ExternalUrl       = url,

                    WoTStatConsoleOverallUrl = GetWoTStatConsoleOverallUrl(player),
                    WotStatConsoleRecentUrl  = GetWoTStatConsoleRecentUrl(player),
                    WotStatConsoleHistoryUrl = GetWoTStatConsoleHistoryUrl(player),
                    WotStatConsoleClanUrl    = GetWotStatConsoleClan(clan),

                    WoTInfoOverallUrl = GetWoTInfoOverallUrl(player),
                    WoTInfoRecentUrl  = GetWoTInfoRecentUrl(player),
                    WoTInfoHistoryUrl = GetWoTInfoHistoryUrl(player),

                    WoTConsoleRuOverallUrl = GetWoTConsoleRuOverallUrl(player),
                    WotConsoleRuClanUrl    = GetWotConsoleRuClanUrl(clan),

                    WoTStarsOverallUrl = GetWoTStarsOverallUrl(player),
                    WoTStarsClanUrl    = GetWoTStarsClanUrl(clan),
                };

                return(View(model));
            }
            catch (Exception ex)
            {
                Log.Error($"Recent({clanName}, {playerId})", ex);
                return(Redirect(url));
            }
        }
Example #7
0
        public ActionResult Overall(string clanName, long playerId)
        {
            var getter = HttpRuntime.Cache.Get("FileGetter", GlobalHelper.CacheMinutes,
                                               () => new FileGetter(GlobalHelper.DataFolder));

            var clan = getter.GetClan(clanName);

            if (clan == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.NotFound, $"Can't find the clan [{clanName}] on this server."));
            }

            var player = clan.Get(playerId);

            if (player == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.NotFound, $"Can't find a player with id {playerId} on the clan [{clanName}]."));
            }

            string url;

            switch (player.Origin)
            {
            case PlayerDataOrigin.WotStatConsole:
                url = GetWoTStatConsoleOverallUrl(player);
                break;

            case PlayerDataOrigin.WotInfo:
                url = GetWoTInfoOverallUrl(player);
                break;

            default:
                url = GetDefaultOverallUrl(player);
                break;
            }

            if (GlobalHelper.UseExternalPlayerPage)
            {
                return(Redirect(url));
            }

            try
            {
                var connectionString = ConfigurationManager.ConnectionStrings["Store"].ConnectionString;
                var db         = new KeyStore(connectionString);
                var fullPlayer = db.GetPlayer(playerId);

                if (fullPlayer == null)
                {
                    Log.Warn($"Overall({clanName}, {playerId}): fullPlayer == null");
                    return(Redirect(url));
                }

                var wn8ExpectedValues = getter.GetTanksWN8ReferenceValues();
                if (wn8ExpectedValues == null)
                {
                    Log.Error($"Overall({clanName}, {playerId}): wn8ExpectedValues == null");
                    return(Redirect(url));
                }

                var moes = getter.GetTanksMoe();

                if (fullPlayer.Performance == null)
                {
                    Log.Warn($"Overall({clanName}, {playerId}): fullPlayer.Performance == null");
                    return(Redirect(url));
                }

                if (fullPlayer.Performance.All == null)
                {
                    Log.Error($"Overall({clanName}, {playerId}): fullPlayer.Performance.All == null");
                    return(Redirect(url));
                }

                if (fullPlayer.Performance.Month == null)
                {
                    Log.Error($"Overall({clanName}, {playerId}): fullPlayer.Performance.Month == null");
                    return(Redirect(url));
                }

                if (fullPlayer.Performance.Week == null)
                {
                    Log.Error($"Overall({clanName}, {playerId}): fullPlayer.Performance.Week == null");
                    return(Redirect(url));
                }

                fullPlayer.Calculate(wn8ExpectedValues);

                var allLeaderBoard     = getter.GetTankLeaders().ToArray();
                var onLeaderboard      = allLeaderBoard.Where(l => l.PlayerId == playerId).ToArray();
                var onLeaderBoardTanks = new HashSet <long>(onLeaderboard.Select(l => l.TankId));
                var worstLeaders       = allLeaderBoard.Where(l => l.Order == 25 && fullPlayer.HasTank(l.TankId) && !onLeaderBoardTanks.Contains(l.TankId)).ToDictionary(l => l.TankId);

                var leaderIfPlayABattle = fullPlayer.Performance.All.Values
                                          .Where(t => (t.Tier >= 5) && (t.Battles >= t.Tier * 10) && (worstLeaders.ContainsKey(t.TankId)) &&
                                                 (t.TotalDamagePerBattle > worstLeaders[t.TankId].TotalDamage) && (t.LastBattleAge.TotalDays > 28 * 3))
                                          .OrderByDescending(t => t.Tier).ThenBy(t => t.LastBattle).ToArray();

                var leaderIfFewMoreGames = fullPlayer.Performance.All.Values
                                           .Where(t => (t.Tier >= 5) && (t.Battles >= (t.Tier * 10) - 10) && (t.Battles < (t.Tier * 10)) && (worstLeaders.ContainsKey(t.TankId)) &&
                                                  (t.TotalDamagePerBattle > worstLeaders[t.TankId].TotalDamage) && (t.LastBattleAge.TotalDays <= 28 * 3))
                                           .OrderByDescending(t => t.Tier).ThenBy(t => t.LastBattle).ToArray();

                var leaderIfFewMoreDamage = fullPlayer.Performance.All.Values
                                            .Where(t => (t.Tier >= 5) && (t.Battles >= (t.Tier * 10)) && (worstLeaders.ContainsKey(t.TankId)) &&
                                                   (t.TotalDamagePerBattle * 1.05 > worstLeaders[t.TankId].TotalDamage) &&
                                                   (t.TotalDamagePerBattle < worstLeaders[t.TankId].TotalDamage) &&
                                                   (t.LastBattleAge.TotalDays <= 28 * 3))
                                            .OrderByDescending(t => t.Tier).ThenBy(t => t.LastBattle).ToArray();

                var leaderOnNextUpdate = fullPlayer.Performance.All.Values
                                         .Where(t => (t.Tier >= 5) && (t.Battles >= (t.Tier * 10)) && (worstLeaders.ContainsKey(t.TankId)) &&
                                                (t.TotalDamagePerBattle > worstLeaders[t.TankId].TotalDamage) && (t.LastBattleAge.TotalDays <= 28 * 3))
                                         .OrderByDescending(t => t.Tier).ThenBy(t => t.LastBattle).ToArray();

                var model = new PlayerPage
                {
                    Clan                  = clan,
                    Player                = fullPlayer,
                    Wn8ExpectedValues     = wn8ExpectedValues,
                    MoEs                  = moes,
                    OnLeaderboard         = onLeaderboard,
                    LeaderIfPlayABattle   = leaderIfPlayABattle,
                    LeaderIfFewMoreGames  = leaderIfFewMoreGames,
                    LeaderIfFewMoreDamage = leaderIfFewMoreDamage,
                    LeaderOnNextUpdate    = leaderOnNextUpdate,
                    ExternalUrl           = url,

                    WoTStatConsoleOverallUrl = GetWoTStatConsoleOverallUrl(player),
                    WotStatConsoleRecentUrl  = GetWoTStatConsoleRecentUrl(player),
                    WotStatConsoleHistoryUrl = GetWoTStatConsoleHistoryUrl(player),
                    WotStatConsoleClanUrl    = GetWotStatConsoleClan(clan),

                    WoTInfoOverallUrl = GetWoTInfoOverallUrl(player),
                    WoTInfoRecentUrl  = GetWoTInfoRecentUrl(player),
                    WoTInfoHistoryUrl = GetWoTInfoHistoryUrl(player),

                    WoTConsoleRuOverallUrl = GetWoTConsoleRuOverallUrl(player),
                    WotConsoleRuClanUrl    = GetWotConsoleRuClanUrl(clan),

                    WoTStarsOverallUrl = GetWoTStarsOverallUrl(player),
                    WoTStarsClanUrl    = GetWoTStarsClanUrl(clan),
                };

                return(View(model));
            }
            catch (Exception ex)
            {
                Log.Error($"Overall({clanName}, {playerId})", ex);
                return(Redirect(url));
            }
        }
            private void AddGamePage(MoveDetails details)
            {
                string title = String.Format ("{0} vs {1}",
                                  details.white,
                                  details.black);
                gamesStore.AppendValues (title,	// markup
                             title);

                ObservingGamePage info;
                bool myGame =
                    ObservingGamePage.IsMyGame (details.
                                    relation);
                if (myGame)
                    info = new PlayerPage (this, details);
                else
                    info = new ObservingGamePage (this,
                                      details);

                currentGames[details.gameNumber] = info;

                Label label = new Label (title);
                gamesBook.AppendPage (info, label);
                gamesBook.Page = gamesBook.NPages - 1;
                if (GamePageAddedEvent != null)
                    GamePageAddedEvent (this,
                                new
                                GamePageAddedEventArgs
                                (myGame));
                AdjustCursorForCurrentPage ();
                MovesGetter.GetMovesAsync (client,
                               details.gameNumber,
                               info.OnGetMoves);
            }
Example #9
0
    public IEnumerator Start()
    {
        // wait until display has initialized
        while (!Display.IsInitialized())
        {
            yield return(null);
        }

        // output red hello world at 10,5 on layer 0
        string  menuStr   = "Menu:";
        Vector2 menuStart = new Vector2(0, 0);

        renderText(
            str: menuStr,
            x: (int)menuStart.x,
            y: (int)menuStart.y,
            fgColor: Color.red,
            clickable: true,
            hoverable: true
            );
        renderText(
            str: "?",
            x: (int)menuStart.x + menuStr.Length,
            y: (int)menuStart.y,
            fgColor: Color.yellow,
            clickable: true,
            hoverable: true
            );

        menus = new ButtonList[] {
            new ButtonList(
                new Button[] {
                new Button(
                    text: "clear",
                    mouseDown: delegate {
                    Debug.Log("clear");
                    this.renderPage = "";
                    this.clearLayer = 1;
                }
                    ),
                new Button(
                    text: "Description",
                    mouseDown: delegate {
                    Debug.Log("DescriptionPage");
                    this.renderPage = "DescriptionPage";
                    this.clearLayer = 1;
                }
                    ),
                new Button(
                    text: "Button",
                    mouseDown: delegate {
                    Debug.Log("ButtonPage");
                    this.renderPage = "ButtonPage";
                    this.clearLayer = 1;
                }
                    ),
                new Button(
                    text: "ButtonList",
                    mouseDown: delegate {
                    Debug.Log("ButtonListPage");
                    this.renderPage = "ButtonListPage";
                    this.clearLayer = 1;
                }
                    ),
                new Button(
                    text: "Player",
                    mouseDown: delegate {
                    Debug.Log("PlayerPage");
                    this.renderPage = "PlayerPage";
                    this.clearLayer = 1;
                }
                    ),
                new Button(
                    text: "Map",
                    mouseDown: delegate {
                    Debug.Log("MapPage");
                    this.renderPage = "MapPage";
                    this.clearLayer = 1;
                }
                    ),
                new Button(
                    text: "Container",
                    mouseDown: delegate {
                    Debug.Log("ContainerPage");
                    this.renderPage = "ContainerPage";
                    this.clearLayer = 1;
                }
                    )
            },
                x: 1,
                y: 1,
                layer: 0
                )
        };

        buttonPage      = new ButtonPage(x: 20, y: 1);
        buttonListPage  = new ButtonListPage(x: 20, y: 1);
        descriptionPage = new DescriptionPage(x: 20, y: 1);
        playerPage      = new PlayerPage(x: 20, y: 1);
        mapPage         = new MapPage(x: 20, y: 1);
        containerPage   = new ContainerPage(x: 20, y: 1);

        /*
         * menuButtons[0] = new Button(
         *  text: "a Room",
         *  x: 0,
         *  y: 1
         * );
         *
         * menuButtons[1] = new Button(
         *  text: "@ Walking",
         *  x: 0,
         *  y: 2
         * );
         */

        /*for (int x = 0; x < menu.Length; x++)
         * {
         *  Cell cell = Display.CellAt(0, 0 + x, 0);
         *  cell.SetContent(
         *      menu.Substring(x, 1),
         *      Color.clear,
         *      Color.red);
         * }*/

        /*
         * // add clickable cell text on layer 2
         * string clickableText = "Click->";
         * for (int x = 0; x < clickableText.Length; x++)
         * {
         *  Cell cell = Display.CellAt(2, x, 17);
         *  cell.SetContent(
         *      clickableText.Substring(x, 1),
         *      Color.clear,
         *      Color.yellow);
         * }
         */

        // add clickable cell on layer 0

        /*
         * Cell clickable = Display.CellAt(0, 0 + menu.Length, 0);
         * clickable.SetContent(
         *  "?",
         *  Color.black,
         *  Color.yellow);
         * clickable.clickAction = this;
         * clickable.hoverAction = this;
         */
        /*
         * Cell clickable2 = Display.CellAt(0, 0 + menu.Length, 1);
         * clickable2.SetContent(
         *  "#",
         *  Color.black,
         *  Color.yellow);
         * clickable2.clickAction = this;
         * clickable2.hoverAction = this;
         */
        //StartCoroutine(RandomGrid());
        //StartCoroutine(Transition());
    }