public JsonResult Create(TeamViewModel teamViewModel) { JsonResult result = null; if (!ModelState.IsValid) { result = Json(ModelState); } else { try { var roster = teamViewModel.Roster.Select(t => t.ToDomain()).ToList(); _playerService.Create(roster); var domainTeam = teamViewModel.ToDomain(); domainTeam.CaptainId = roster[0].Id; _teamService.Create(domainTeam); if (teamViewModel.Roster != null) { _teamService.UpdateRosterTeamId(roster, domainTeam.Id); } teamViewModel.Id = domainTeam.Id; result = Json(teamViewModel, JsonRequestBehavior.AllowGet); } catch (ArgumentException ex) { result = Json(new { Success = "False", ex.Message }); } catch (MissingEntityException ex) { result = Json(new { Success = "False", ex.Message }); } catch (ValidationException ex) { result = Json(new { Success = "False", ex.Message }); } } return(result); }
/// <summary> /// Creates Team /// </summary> /// <param name="team"> The team as ViewModel. </param> /// <returns> Has been saved successfully - Created OData result /// unsuccessfully - Bad request </returns> public IHttpActionResult Post(TeamViewModel team) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var teamToCreate = team.ToDomain(); try { _teamService.Create(teamToCreate); } catch (MissingEntityException ex) { ModelState.AddModelError(string.Format("{0}.{1}", CONTROLLER_NAME, ex.Source), ex.Message); return(BadRequest(ModelState)); } team.Id = teamToCreate.Id; return(Ok(team)); }
public JsonResult Edit(TeamViewModel teamViewModel) { JsonResult result = null; if (!ModelState.IsValid) { result = Json(ModelState); } else { try { var playersIdsToAddToTeam = teamViewModel.AddedPlayers .Where(x => x.Id > 0) .Select(x => new PlayerId(x.Id)) .ToList(); var playersToAddToTeam = teamViewModel.AddedPlayers .Where(x => x.Id == 0) .Select(x => x.ToCreatePlayerDto()) .ToList(); if (playersToAddToTeam.Count != 0) { playersIdsToAddToTeam.AddRange(_playerService.CreateBulk(playersToAddToTeam) .Select(x => new PlayerId(x.Id))); } if (playersIdsToAddToTeam.Count != 0) { _teamService.AddPlayers(new TeamId(teamViewModel.Id), playersIdsToAddToTeam); } ChangeCaptain(teamViewModel); if (teamViewModel.DeletedPlayers.Count > 0) { _teamService.RemovePlayers(new TeamId(teamViewModel.Id), teamViewModel.DeletedPlayers.Select(x => new PlayerId(x))); } var domainTeam = teamViewModel.ToDomain(); _teamService.Edit(domainTeam); result = Json(teamViewModel, JsonRequestBehavior.AllowGet); } catch (ArgumentException ex) { result = Json(new { Success = "False", ex.Message }); } catch (MissingEntityException ex) { result = Json(new { Success = "False", ex.Message }); } catch (ValidationException ex) { result = Json(new { Success = "False", ex.Message }); } } return(result); }