public ActionResult Create(int? competitionId, int? replacePlayerId, string idNumber, CompetitionPlayerSource? source, CompetitionSection? section, CompetitionPlayerStatus? status, string reason) { var player = new Player(); var model = new CreatePlayerModel { Player = player }; if (competitionId.HasValue) { var competitionRepository = ServiceProvider.Get<ICompetitionRepository>(); model.Competition = competitionRepository.GetCompetition(competitionId.Value); model.Source = source.GetValueOrDefault(CompetitionPlayerSource.Regular); model.Section = section.GetValueOrDefault(CompetitionSection.Final); model.Status = status.GetValueOrDefault(CompetitionPlayerStatus.Active); model.Reason = reason; if (replacePlayerId.HasValue) { var playersRepository = ServiceProvider.Get<IPlayersRepository>(); model.ReplacedPlayer = playersRepository.Get(replacePlayerId.Value); } } if (idNumber.NotNullOrEmpty()) { model.Player.IdNumber = idNumber; } return View(model); }
public ActionResult Create(int? competitionId, int? replacedPlayerId, Player player, CompetitionPlayerSource? competitionPlayerSource, CompetitionSection? competitionSection, CompetitionPlayerStatus? status, string reason) { var playersRepository = ServiceProvider.Get<IPlayersRepository>(); var newPlayerId = playersRepository.Add(player); if (competitionId.HasValue) { var manager = ServiceProvider.Get<ICompetitionsManager>(); if (replacedPlayerId.HasValue) { manager.ReplacePlayer(competitionId.Value, replacedPlayerId.Value, newPlayerId, competitionPlayerSource.GetValueOrDefault(CompetitionPlayerSource.Regular), status.GetValueOrDefault(CompetitionPlayerStatus.Active), reason); } else { manager.AddPlayerToCompetition(competitionId.Value, newPlayerId, competitionPlayerSource.GetValueOrDefault(CompetitionPlayerSource.Regular), competitionSection.GetValueOrDefault(CompetitionSection.Final)); } return RedirectToAction("Details", "Competitions", new { id = competitionId.Value }); } else { return RedirectToAction("Index"); } }