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; } }
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); }
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; } }
// 非同期させたい(重たい)処理 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); }