Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
 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"));
        }
Exemple #5
0
        //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();
        }
Exemple #6
0
        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));
        }
Exemple #7
0
        //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);
 }
Exemple #10
0
        private void CreateMatch(Match match)
        {
            var matchRepo = new MatchRepository();

            matchRepo.Add(match);
        }
Exemple #11
0
        //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);
                }
            }
        }