public static ObservableCollection<Child> SearchArena() { var result = new ObservableCollection<Child>(); EnterToBigArenaResponse response = new EnterToBigArenaService().ExecuteSerialize<EnterToBigArenaResponse>(); if (response != null && response.success) { result.AddRange(response.children.Where(x => x.arenaStatus == 1)); } return result; }
public bool Action() { long countPVP = 0L; EnterToBigArenaResponse enterToBigArenaResponse = this.ExecuteSerialize<EnterToBigArenaResponse>(); bool result; if (enterToBigArenaResponse == null) { this.logger.Add("Big arena response is empty", LogType.Information); result = false; } else { List<Child> childActive = (from x in enterToBigArenaResponse.children where x.arenaStatus == 1 select x).ToList<Child>(); foreach (Child child in childActive) { this.logger.Add(string.Format("Arena name: {0}, id: {1}", child.name, child.childId), LogType.Information); } Console.Write("Enter child arena id: "); int childId = int.Parse(Console.ReadLine()); Console.Write("Enter desired points: "); int maxPoints = int.Parse(Console.ReadLine()); this.user.ChildArena = childId; while (true) { enterToBigArenaResponse = new EnterToBigArenaService(this.user, this.logger).ExecuteSerialize<EnterToBigArenaResponse>(); EnterToChildArenaResponse enterToChildArenaResponse = new EnterToChildArenaService(this.user, this.logger).ExecuteSerialize<EnterToChildArenaResponse>(); if (enterToChildArenaResponse == null) { goto IL_2F3; } if (enterToChildArenaResponse.smallArena.points >= maxPoints) { break; } List<Rival> rivals = (from x in enterToChildArenaResponse.rivals where x.status == 0 orderby x.winPoint descending select x).ToList<Rival>(); this.logger.Add("Current points: " + enterToBigArenaResponse.children.FirstOrDefault((Child x) => x.childId == this.user.ChildArena).points, LogType.Information); foreach (Rival rival in rivals) { string uid = rival.uid.ToString(CultureInfo.InvariantCulture); ArenaBattleResponse arenaBattleResult = new ArenaBattleService(this.user, this.logger, uid).ExecuteSerialize<ArenaBattleResponse>(); countPVP += 1L; this.logger.Add(string.Format("PVP with UID: {0} Name: {1} ended, you {2}. {3}", new object[] { uid, rival.name, arenaBattleResult.winner, countPVP }), LogType.Information); if (rivals.LastOrDefault<Rival>() != rival) { new EnterToChildArenaService(this.user, this.logger).ExecuteSerialize<EnterToChildArenaResponse>(); } } } Console.WriteLine(string.Format("Desired {0} points are achieved. exiting", maxPoints)); goto IL_311; IL_2F3: this.logger.Add("Arena: result for enter to arena is empty", LogType.Information); IL_311: result = false; } return result; }