public async Task <IActionResult> EditGetBasicTeam(AdminTeamEditView model)
        {
            try
            {
                var accountService = _logicFactory.GetAccountService();
                //create the view model
                AdminBasicTeamEditView editTeamView = new AdminBasicTeamEditView
                {
                    TeamID        = model.TeamID,
                    TeamName      = model.TeamName,
                    TeamCaptainID = model.TeamCaptainID,
                    //convert image
                    TeamLogoString64 = model.TeamLogoFile != null?ImageProcessing.ByteArrayToString64(await ImageProcessing.FormFileToResizedByteArrayAsync(model.TeamLogoFile)) : model.TeamLogoString64,
                                           TeamLogoFile = model.TeamLogoFile,
                                           CaptainsList = accountService.GetAll().Select(a => new SelectListItem
                    {
                        Value = a.AccountPlayer.PlayerID.ToString(), Text = a.AccountName
                    }).ToList(),
                };



                return(PartialView("Team/_EditBasicTeamFormPartial", editTeamView));
            }
            catch (Exception ex)
            {
                _logger.LogError($"Something went wrong trying to get a team to edit. |Message: {ex.Message} |Stacktrace: {ex.StackTrace}");
                //notfound will result in a ajax error result. this will show a message to the user.
                return(NotFound());
            }
        }
        public IActionResult EditGetTeam(int id)
        {
            try
            {
                var teamService    = _logicFactory.GetTeamService();
                var accountService = _logicFactory.GetAccountService();
                //get the team
                Team t = teamService.GetByID(id);
                //create the view model
                AdminBasicTeamEditView editTeamView = new AdminBasicTeamEditView
                {
                    TeamID        = t.TeamID,
                    TeamName      = t.TeamName,
                    TeamCaptainID = t.TeamCaptain?.PlayerID,
                    //convert image
                    TeamLogoString64 = ImageProcessing.ByteArrayToString64(t.TeamLogo),
                    CaptainsList     = accountService.GetAll().Select(a => new SelectListItem
                    {
                        Value = a.AccountPlayer.PlayerID.ToString(), Text = a.AccountName
                    }).ToList(),
                };



                return(PartialView("Team/_EditBasicTeamFormPartial", editTeamView));
            }
            catch (Exception ex)
            {
                _logger.LogError($"Something went wrong trying to get a team to edit. |Message: {ex.Message} |Stacktrace: {ex.StackTrace}");
                //notfound will result in a ajax error result. this will show a message to the user.
                return(NotFound());
            }
        }
        public async Task <IActionResult> EditBasicTeam(AdminBasicTeamEditView model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var    teamService = _logicFactory.GetTeamService();
                    byte[] img         = await ImageProcessing.FormFileToResizedByteArrayAsync(model.TeamLogoFile);

                    teamService.Update(new Team
                    {
                        TeamID      = model.TeamID,
                        TeamName    = model.TeamName,
                        TeamCaptain = new Player {
                            PlayerID = model.TeamCaptainID,
                        },
                        TeamLogo    = img == default ? teamService.GetByID(model.TeamID).TeamLogo : img,
                        TeamMembers = teamService.GetByID(model.TeamID)?.TeamMembers
                    });
                }