public async Task <bool> LoadThread(string token) { IWindowManager wm = IoC.Get <IWindowManager>(); wm.ShowBusyView("Loading Feedbacks..."); try { this.FeedbackThread = await HockeyClientWPF.Instance.OpenFeedbackThreadAsync(token); this.FeedbackMessages.Clear(); if (this.FeedbackThread != null) { this.FeedbackThread.Messages.ForEach(p => FeedbackMessages.Add(new FeedbackMessageViewModel(p))); this.FeedbackMessages.Add(new NewFeedbackMessage(this)); } else { FeedbackToken.DeleteToken(token); raiseDeletedOnServer(); } } catch (Exception ex) { wm.ShowBusyView("An error ocurred:\n" + ex.Message); } finally { wm.HideBusyView(); } return(this.FeedbackThread != null); }
async public Task SpeelWedstrijdAsync(Wedstrijd currentWedstrijd) { await StartWedstrijdAsync(currentWedstrijd); Message.SetMessageHeader(FeedbackMessages.GetWedstrijdWordtGespeeld(currentWedstrijd)); await SimuleerAanvallenAsync(currentWedstrijd); //return await BeeindigWedstrijd(currentWedstrijd); //return t; }
async private Task SimuleerAanvallenAsync(Wedstrijd currentWedstrijd) { //Zoveel aanvallen als er speler zijn for (int i = 0; i < currentWedstrijd.ThuisTeam.TeamLeden.Count + currentWedstrijd.UitTeam.TeamLeden.Count; i++) { Random rand = new Random(); // bepaal welk team aanvalt int kiesTeam = rand.Next(201); VoetbalTeam teamAanval = kiesTeam % 2 == 0 ? currentWedstrijd.ThuisTeam : currentWedstrijd.UitTeam; VoetbalTeam teamVerdedig = kiesTeam % 2 == 0 ? currentWedstrijd.UitTeam : currentWedstrijd.ThuisTeam; //kies aanvaller en verdediger Speler aanvaller = teamAanval.TeamLeden[rand.Next(teamAanval.TeamLeden.Count)]; Speler verdediger = teamVerdedig.TeamLeden[rand.Next(teamVerdedig.TeamLeden.Count)]; //Doe aanval if (await AanvalAsync(aanvaller, verdediger)) { //Als aanval succesvol => registreer dan doelpunt en pas ervaring nieveau betrokken spelers aan WedstrijdSecretariaat.RegistreerDoelpunt(aanvaller, teamAanval, verdediger, currentWedstrijd); currentWedstrijd.Uitslag = "updatePropertyChanged"; // Slaat nergens op maar triggert wel het PropertyChanged event Message.SetMessageBody($"{aanvaller.NaamToString} scoorde een doelpunt voor {teamAanval.NaamToString}"); Message.AddLineToMessageBody(FeedbackMessages.GetWedstrijdTussenStand(currentWedstrijd.Uitslag)); } else { //Als aanval niet succesvol => pas ervaring niveau betrokken spelers aan WedstrijdSecretariaat.RegistreerRedding(aanvaller, verdediger); Message.SetMessageBody($"{verdediger.NaamToString}({teamVerdedig.NaamToString}) stopte een aanval van {aanvaller.NaamToString}({teamAanval.NaamToString})"); Message.AddLineToMessageBody(FeedbackMessages.GetWedstrijdTussenStand(currentWedstrijd.Uitslag)); } await Task.Delay(1500); } }