Пример #1
0
        private void GameDetailItemViewsInit(
            MatchReferenceBinding dcMrb,
            ParticipantDto[] lstPart,
            UIElementCollection Children)
        {
            long allTotalDamageDealtToChampions = lstPart.Sum(part => part.Stats.TotalDamageDealtToChampions);

            for (int i = 0; i < lstPart.Length; i++)
            {
                var child = Children[i];
                var part  = lstPart[i];

                GameDetailItemView      gdiv  = (GameDetailItemView)child;
                GameDetailItemViewModel gdivm = new GameDetailItemViewModel();
                gdivm.Part = part;

                if (gdivm.Part.ChampionId == dcMrb.MatchReference.Champion)
                {
                    gdivm.IsSelfDataFlag = true;
                }
                else
                {
                    gdivm.IsSelfDataFlag = false;
                }

                gdivm.PartIdentity = dcMrb.MatchDetail.ParticipantIdentities.SingleOrDefault(partIdent => partIdent.ParticipantId == part.ParticipantId);

                gdivm.AllDamageDealtToChampions = allTotalDamageDealtToChampions;

                gdiv.DataContext = gdivm;
            }
        }
Пример #2
0
        private GameDetailView GameDetailViewInit(MatchReferenceBinding dcMrb)
        {
            GameDetailView      gdv  = new GameDetailView();
            GameDetailViewModel gdvm = new GameDetailViewModel();

            if (dcMrb.MatchDetail == null)
            {
                dcMrb.MatchDetail = MainWindow.m_RiotApi.GetMatch(MainWindow.m_Region, dcMrb.MatchReference.GameId);
            }

            gdvm.Teams        = dcMrb.MatchDetail.Teams;
            gdvm.GameCreation = dcMrb.MatchDetail.GameCreation;
            //gdvm.GameDuration = dcMrb.MatchDetail.GameDuration;

            //gdvm.Timeline = dcMrb.MatchDetail.Timeline;
            //gdvm.MapType = dcMrb.MatchDetail.MapType;
            //gdvm.MatchId = dcMrb.MatchDetail.MatchId;
            //gdvm.MatchMode = dcMrb.MatchDetail.MatchMode;
            //gdvm.MatchType = dcMrb.MatchDetail.MatchType;
            //gdvm.MatchVersion = dcMrb.MatchDetail.MatchVersion;
            //gdvm.QueueType = dcMrb.MatchDetail.QueueType;
            //gdvm.Region = dcMrb.MatchDetail.Region;
            //gdvm.Season = dcMrb.MatchDetail.Season;
            gdv.DataContext = gdvm;

            if (dcMrb.MatchDetail.Participants.Count > 10)
            {
            }
            else
            {
                ParticipantDto[] lstPart1 = dcMrb.MatchDetail.Participants.Where(part => part.TeamId == TEAM_ID_1).ToArray();
                ParticipantDto[] lstPart2 = dcMrb.MatchDetail.Participants.Where(part => part.TeamId == TEAM_ID_2).ToArray();

                GameDetailItemViewsInit(dcMrb, lstPart1, gdv.SP1.Children);
                GameDetailItemViewsInit(dcMrb, lstPart2, gdv.SP2.Children);
            }

            return(gdv);
        }
Пример #3
0
        private void Row_DoubleClick(object sender, MouseButtonEventArgs e)
        {
            // Some operations with this row
            GameDetailView gdv = new GameDetailView();
            DataGridRow    row = sender as DataGridRow;
            MainWindow     mw  = this.TryFindParent <MetroWindow>() as MainWindow;

            try
            {
                MatchReferenceBinding dcMrb = (MatchReferenceBinding)row.DataContext;
                gdv = GameDetailViewInit(dcMrb);
                mw.GameDetailChildWindow.Content = gdv;
            }
            catch (Exception ex)
            {
                ((GameDetailViewModel)gdv.DataContext).ErrorMessage = ex.Message;
            }
            finally
            {
                mw.LoLDataRefresh.IsEnabled     = false;
                mw.LoLSummonerLogin.IsEnabled   = false;
                mw.GameDetailChildWindow.IsOpen = true;
            }
        }
Пример #4
0
        // 非同期させたい(重たい)処理
        private LoginState LoginDelegatingMethod(string reg, string summName, bool loginTypeFlg)
        {
            LoginState loginStateRet = new LoginState();

            loginStateRet.LoginTypeFlg = loginTypeFlg;

            try
            {
                Region region = (Region)Enum.Parse(typeof(Region), reg);

                RiotSharp.Misc.Language language = RiotSharp.Misc.Language.en_US;
                if (region == Region.jp)
                {
                    language = RiotSharp.Misc.Language.ja_JP;
                }

                if (m_Region == region)
                {
                    if (!LoLStaticData.LoLStaticDataAlreadyLoaded())
                    {
                        //LoLStaticData.ItemsStaticData = m_StaticRiotApi.GetStaticItems(region, ItemData.all, language);
                        //LoLStaticData.ChampionsStaticData = m_StaticRiotApi.GetStaticChampions(region, ChampionData.all, language);
                        //LoLStaticData.SummonerSpellsStaticData = m_StaticRiotApi.GetStaticSummonerSpells(region, SummonerSpellData.all, language);
                    }
                }
                else
                {
                    //LoLStaticData.ItemsStaticData = m_StaticRiotApi.GetStaticItems(region, ItemData.all, language);
                    //LoLStaticData.ChampionsStaticData = m_StaticRiotApi.GetStaticChampions(region, ChampionData.all, language);
                    //LoLStaticData.SummonerSpellsStaticData = m_StaticRiotApi.GetStaticSummonerSpells(region, SummonerSpellData.all, language);
                }

                m_Region = region;

                _loginSummoner = m_RiotApi.GetSummonerByName(region, summName);

                var matches   = m_RiotApi.GetMacthAllByAccountId(region, _loginSummoner.AccountId).Matches;
                var mrbListBk = new List <MatchReferenceBinding>();
                foreach (MatchReferenceDto mr in matches)
                {
                    var mrb = new MatchReferenceBinding();
                    mrb.MatchReference = mr;
                    mrbListBk.Add(mrb);
                }
                if (_viewModel.ListMatchReference != null)
                {
                    _viewModel.ListMatchReference.Clear();
                }
                if (_viewModel.ListMatchReferenceBK != null)
                {
                    _viewModel.ListMatchReferenceBK.Clear();
                }

                _viewModel.ListMatchReferenceBK = mrbListBk;
                _viewModel.ListMatchReference   = mrbListBk;

                var championMasteries = m_RiotApi.GetChampionMasteries(region, _loginSummoner.Id);
                var cmbList           = new List <ChampionMasteryBinding>();
                foreach (ChampionMasteryDTO cmDto in championMasteries)
                {
                    var cmb = new ChampionMasteryBinding(cmDto);
                    cmbList.Add(cmb);
                }

                for (int i = cmbList.Count - 1; i >= 0; i--)
                {
                    var existDto = _viewModel.ListMatchReferenceBK.Where(lmrBk => lmrBk.MatchReference.Champion == cmbList[i].ChampionMastery.ChampionId);

                    if (existDto == null || existDto.ToArray().Length == 0)
                    {
                        cmbList.RemoveAt(i);
                    }
                }
                if (_viewModel.ListChampionMasteries != null)
                {
                    _viewModel.ListChampionMasteries.Clear();
                }

                var cmbEmpty = new ChampionMasteryBinding(new ChampionMasteryDTO());
                cmbEmpty.ChampionMastery.ChampionId = -1;
                cmbList.Insert(0, cmbEmpty);

                _viewModel.ListChampionMasteries = cmbList;

                loginStateRet.LoginErrorFlg     = false;
                loginStateRet.LoginErrorMessage = string.Empty;
            }
            catch (RiotSharpException rsEx)
            {
                _viewModel.ListMatchReference = null;

                loginStateRet.LoginErrorFlg     = true;
                loginStateRet.LoginErrorMessage = rsEx.Message;
            }
            catch (Exception ex)
            {
                _viewModel.ListMatchReference = null;

                if (ex.InnerException != null && ex.InnerException is RiotSharpException)
                {
                    loginStateRet.LoginErrorMessage = ex.InnerException.Message;
                }
                else
                {
                    loginStateRet.LoginErrorMessage = ex.Message;
                }

                loginStateRet.LoginErrorFlg = true;
            }

            return(loginStateRet);
        }