Ejemplo n.º 1
0
        public async Task <IActionResult> TeamEdit(int id, [Bind("Id,TeamName,TeamCode,SubDivisionId, Address,PostCode,Website,About")]
                                                   Team team)
        {
            if (id != team.Id)
            {
                return(NotFound());
            }

            //  once season is in season is in session no changes to team code
            //team.TeamCode = team.TeamCode.ToUpper();

            //  Get Team
            var thisTeam = await _wpbService.GetTeamAsync(id);

            if (thisTeam == null)
            {
                return(NotFound());
            }


            // update the premited value passed in only:
            //  Address,PostCode,Website,About
            thisTeam.About = ModelHelpers.ShortenAndFormatText(team.About, 200);
            //  because we are manually changing the values of about:
            ModelState.Remove("About");
            thisTeam.Address  = team.Address;
            thisTeam.PostCode = team.PostCode;
            thisTeam.Website  = team.Website;


            if (!ModelState.IsValid)
            {
                var divisionList = await _wpbService.GetSubDivisionDropListAsync();

                ViewData["SubDivision"] = new SelectList(divisionList, "Id", "SubDivisionTitle");
                return(View(team));
            }

            //  once season is in season is in session no changes to team code

            /*var subDivCodeExist = _wpbService.TeamCodeExist(team.TeamCode);
             * if (subDivCodeExist)
             * {
             *  var divisionList = await _wpbService.GetSubDivisionDropListAsync();
             *  ViewData["SubDivision"] = new SelectList(divisionList, "Id", "SubDivisionTitle");
             *  ModelState.AddModelError("", "$Team code: {team.TeamCode} is already in use.");
             *  return View(team);
             * }*/

            var teamCodeSanityCheck = await _wpbService.GetTeamAsync(id);

            if (teamCodeSanityCheck != null)
            {
                // no changes to team code
                if (team.TeamCode != teamCodeSanityCheck.TeamCode)
                {
                    var divisionList = await _wpbService.GetSubDivisionDropListAsync();

                    ViewData["SubDivision"] = new SelectList(divisionList, "Id", "SubDivisionTitle");
                    ModelState.AddModelError("", "Changes to team code not allow while in session!");
                    return(View(team));
                }
            }
            else
            {
                return(NotFound());
            }

            var editSuccess = await _wpbService.UpdateTeamAsync(thisTeam);

            if (editSuccess)
            {
                return(RedirectToAction(nameof(TeamsAll)));
            }

            return(NotFound());
        }