public async Task <ActionResult> Edit([Bind(Include = "Id,DateTime,G1P1Score,G1P2Score,G2P1Score,G2P2Score,G3P1Score,G3P2Score,PlayerId1,PlayerId2")] MatchViewModel viewmodel)
        {
            if (ModelState.IsValid)
            {
                MatchDTO matchDTO = new MatchDTO
                {
                    Id        = viewmodel.Id,
                    DateTime  = viewmodel.DateTime,
                    G1P1Score = viewmodel.G1P1Score,
                    G1P2Score = viewmodel.G1P2Score,
                    G2P1Score = viewmodel.G2P1Score,
                    G2P2Score = viewmodel.G2P2Score,
                    G3P1Score = viewmodel.G3P1Score,
                    G3P2Score = viewmodel.G3P2Score,
                    PlayerId1 = viewmodel.PlayerId1,
                    PlayerId2 = viewmodel.PlayerId2
                };

                await service.UpdateMatch(matchDTO);

                return(RedirectToAction("Index"));
            }

            var players = await playerService.GetPlayersAsync();

            viewmodel.LoadPlayersIntoSelectList(players);

            return(View(viewmodel));
        }