public async Task GetAssignedPlayers_TwoPlayers_OnePlayerAssignedToEachTeam() { var match = new Match { Id = "M1" }; match.PlayerResults.Add(new MatchStatistics { SteamID = 1, Id = "1", Kills = 1, Deaths = 1 }); match.PlayerResults.Add(new MatchStatistics { SteamID = 2, Id = "2", Kills = 2, Deaths = 2 }); myMatchRepository.Add(match); myMatchRepository.SaveChanges(); var skillBasedAssigner = new SkillBasedAssigner(myMatchRepository, new SteamworksApi()); (var t, var ct) = await skillBasedAssigner.GetAssignedPlayers(new List <Player> { new Player { SteamID = "1" }, new Player { SteamID = "2" } }); Assert.Single(t.Players); Assert.Single(ct.Players); }
private Match SaveMatch(XElement element, MatchRepository matchRepo) { var sportName = (string)element.Parent.Parent.Attribute("Name"); var eventName = (string)element.Parent.Attribute("Name"); var number = (string)element.Attribute("ID"); var name = (string)element.Attribute("Name"); var startDate = DateTime.Parse((string)element.Attribute("StartDate"), CultureInfo.InvariantCulture); var matchType = (string)element.Attribute("MatchType"); var match = matchRepo.GetByNumber(number); if (match != null) { bool hasUpdates = false; if (match.Name != name || match.StartDate != startDate || match.MatchType != matchType) { match.Name = name; match.StartDate = startDate; match.MatchType = matchType; } var currentMatchBets = match.Bets.Where(x => !x.IsDeleted).ToList(); var bets = element.Descendants("Bet").Attributes("ID").Select(x => (string)x); for (int i = 0; i < currentMatchBets.Count; i++) { var item = currentMatchBets[i]; if (!bets.Contains(item.Number)) { item.IsDeleted = true; item.DeletedOn = DateTime.Now; hasUpdates = true; } } if (hasUpdates) { match.ModifiedOn = DateTime.Now; } } else { match = new Match(); match.Number = number; match.Name = name; match.Sport = sportName; match.Event = eventName; match.StartDate = startDate; match.MatchType = matchType; matchRepo.Add(match); } return(match); }
public PatternBoard(IBoard board, PositionManager positions, PatternMatcher matcher) { this.board = board; this.positions = positions; this.matcher = matcher; this.matches = new MatchRepository(); foreach (var match in GetAllMatches()) { matches.Add(match.Pattern.Player, match.Pattern.PatternType, match); } }
public ActionResult Add(MatchViewModel viewModel) { if (viewModel.AwayTeamId == viewModel.HomeTeamId) { return(View(viewModel)); } MatchRepository repository = new MatchRepository(); repository.Add(viewModel); return(RedirectToAction("Index")); }
//enklare variant , Lägger till deltagare, om man har tillgång till alla id:n i db. internal static void AddContestantToMatch()//KLAR { var arena = "Forest lane"; var date = new DateTime(2018, 2, 19); var contestId = 3; var contestantId = 42; // var sportId = 111; var mRep = new MatchRepository(); mRep.Add(new Domain.Match { DateTime = date, Arena = arena, ContestId = contestId, ContestantId = contestantId, RefereeId = 5 }); mRep.Save(); }
public ActionResult Create(ModelViewMatch match) { if (ModelState.IsValid) { try { var newMatch = Mapper.Map <ModelViewMatch, Match>(match); _repo.Add(newMatch); return(RedirectToAction("Index")); } catch { return(View(match)); } } return(View(match)); }
//Lägger till flera deltagare till samma match. internal static void AddManyToMatch()//KLAR { int sportId = 6; string gender = "female"; var mRep = new MatchRepository(); var coRep = new ContestantRepository(); var participants = coRep.FindBy(m => m.SportId.Equals(sportId) && m.Gender.Equals(gender)); foreach (var competer in participants) { mRep.Add(new Domain.Match { DateTime = new DateTime(2018, 2, 16), Arena = "summer ", ContestId = 5, ContestantId = competer.Id, RefereeId = 6 }); } mRep.Save(); }
public double GetScore(IBoard board, PieceType player) { MatchRepository matchRepository; PatternBoard patternBoard = board as PatternBoard; if (patternBoard != null) { matchRepository = patternBoard.Matches; } else { var matches = this.matcher.MatchPatterns(board, positions.Lines); matchRepository = new MatchRepository(); foreach (var match in matches) { matchRepository.Add(match.Pattern.Player, match.Pattern.PatternType, match); } } double myScore = GetScore(player, matchRepository); double oScore = GetScore(player.GetOther(), matchRepository); var nextPlayer = board.Count % 2 == 0 ? PieceType.P1 : PieceType.P2; bool isMyTurn = player == nextPlayer; if (isMyTurn) { myScore *= 1.2; } else { oScore *= 1.2; } return(myScore - oScore); }
public void Add(Match match) { _matchRepository.Add(match); }
private void CreateMatch(Match match) { var matchRepo = new MatchRepository(); matchRepo.Add(match); }
//Lägger till many to many baserat på tänkt input från Gui, i detta fall manuell input från Program. //i verkligt scenario skulle jag valt dropdowns från UI/Web som hämtar querys från db baserat på tidigare dropdown val // så att användaren aldrig kan välja alternativ som inte finns/uppfyller db-kriterier. // i detta exempel blir minsta felstavning fel och har varit väldigt tröttsamt att testa igenom, då jag inte har alla id:n i huvudet..... internal static void AddManyToMany(string contestantFirst, string contestantLast, string contest, string refereeName, string arena, DateTime dateTime, string country) { int refereeID = 0; int contestantID = 0; int contestID = 0; int sportId = 0; int sportID = 0; var refRep = new RefereeRepository(); var coRep = new ContestantRepository(); var conRep = new ContestRepository(); var mRep = new MatchRepository(); var re = refRep.FindBy(r => r.Name.EndsWith(refereeName)); // lärdom: endswith funkar inte när man länkar hela strängen.... var refe = refRep.GetAll(); var con = conRep.FindBy(c => c.ContestName.Equals(contest)); var co = coRep.FindBy(m => m.FirstName.Equals(contestantFirst) && m.LastName.Equals(contestantLast)); foreach (var c in co) { contestantID = c.Id; sportId = c.SportId; } foreach (var c in con) { contestID = c.Id; sportID = c.SportId; } foreach (var c in re) { if (refereeName == c.Name) { refereeID = c.Id; } } var ma = mRep.GetAll(); foreach (var c in ma) { try //kollar att arenan inte dubbelbokas { if (arena == c.Arena && c.DateTime == dateTime && c.ContestId != contestID) { } } catch { Console.WriteLine("This arena is already booked for another event at this date. Please correct input."); } } if (contestantID == 0 || contestID == 0 || sportId != sportID || refereeID == 0) { Console.WriteLine("Some info didn't match.\nContestantid: {0}\nContestid: {1}\nSportidn: {2} and {3} has to be the same.\nRefereeId: {4}", contestantID, contestID, sportId, sportID, refereeID); Console.WriteLine("\n\nIf refereeId is 0, ({0}), choose a referee from below list:", refereeName); foreach (var x in refe) { Console.WriteLine(x.Name); } } else { try // lägger till en spelare till en match { var addContestantToMatch = new MatchRepository(); addContestantToMatch.Add(new Match { ContestantId = contestantID, ContestId = contestID, Arena = arena, DateTime = dateTime, RefereeId = refereeID }); addContestantToMatch.Save(); } catch { Console.WriteLine("{0} {1} is already participating in {2}.", contestantFirst, contestantLast, contest); } } }