public async Task <Exercise> CloneAsync(Guid idToBeCloned, CancellationToken ct) { if (!(await _authorizationService.AuthorizeAsync(_user, null, new ExerciseCreationRequirement())).Succeeded) { throw new ForbiddenException(); } var exercise = await _context.Exercises .Include(o => o.Teams) .ThenInclude(o => o.Applications) .Include(o => o.Teams) .ThenInclude(o => o.Permissions) .Include(o => o.Applications) .SingleOrDefaultAsync(o => o.Id == idToBeCloned, ct); var newExercise = exercise.Clone(); newExercise.Name = $"Clone of {newExercise.Name}"; //copy exercise applications foreach (var application in exercise.Applications) { var newApplication = application.Clone(); newExercise.Applications.Add(newApplication); } //copy teams foreach (var team in exercise.Teams) { var newTeam = team.Clone(); //copy team applications foreach (var applicationInstance in team.Applications) { var newApplicationInstance = applicationInstance.Clone(); var application = exercise.Applications.FirstOrDefault(o => o.Id == applicationInstance.ApplicationId); var newApplication = newExercise.Applications.FirstOrDefault(o => application != null && o.Name == application.Name); newApplicationInstance.Application = newApplication; newTeam.Applications.Add(newApplicationInstance); } //copy team permissions foreach (var permission in team.Permissions) { var newPermission = new TeamPermissionEntity(newTeam.Id, permission.PermissionId); newTeam.Permissions.Add(newPermission); } newExercise.Teams.Add(newTeam); } _context.Add(newExercise); await _context.SaveChangesAsync(ct); return(_mapper.Map <Exercise>(newExercise)); }
public async Task <IActionResult> Create([Bind("Id,Name,ExperiencePoints,StartingDate")] Player player) { if (ModelState.IsValid) { _context.Add(player); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(player)); }
public async Task <IActionResult> Create([Bind("Id,Savings,Health,Equipment")] Player player) { if (ModelState.IsValid) { _context.Add(player); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(player)); }
public async Task <IActionResult> Create([Bind("PlayerID,ChatName,PlayerName,LeagueID,StatusID")] Player player) { if (ModelState.IsValid) { _context.Add(player); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(player)); }
public async Task <IActionResult> Create([Bind("PlayerID,FirstName,LastName,Country,Position,JerseyNumber,ManagerID")] Player player) { if (ModelState.IsValid) { _context.Add(player); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(player)); }
public async Task <IActionResult> Create([Bind("CharacterID,Name,Age")] Character character) { if (ModelState.IsValid) { _context.Add(character); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(character)); }
public async Task <IActionResult> Create([Bind("id,Name,DOB,Country,HighestScore,Type,Average,Matches")] Player player) { if (ModelState.IsValid) { _context.Add(player); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(player)); }
public async Task <IActionResult> AdicionarPlayer(string _nome) { Player Jexistente = Context.Players.Where(x => x.Nome == _nome).FirstOrDefault(); if (Jexistente == null) { Player Jogador = new Player { Nome = _nome, vitorias = 0, empates = 0, derrotas = 0 }; Context.Add(Jogador); await Context.SaveChangesAsync(); return(RedirectToAction("Jogar")); } return(RedirectToAction("Jogar")); }
public override async Task <EnviarDados> Nome(EnviarNome Dados, ServerCallContext context) { Player Jogador = Context.Players.Where(x => x.Nome == Dados.Nome).FirstOrDefault(); if (Jogador == null) { Jogador = new Player(); Jogador.Nome = Dados.Nome; Jogador.vitorias = 0; Jogador.empates = 0; Jogador.derrotas = 0; Context.Add(Jogador); Context.SaveChanges(); } return(await Task.FromResult(new EnviarDados { Nome = Jogador.Nome, Vitorias = Jogador.vitorias, Empates = Jogador.empates, Derrotas = Jogador.derrotas })); }
public void InsertPlayer(Player player) { _dbContext.Add(player); save(); }
public async Task <View> CloneAsync(Guid idToBeCloned, CancellationToken ct) { if (!(await _authorizationService.AuthorizeAsync(_user, null, new ViewCreationRequirement())).Succeeded) { throw new ForbiddenException(); } var view = await _context.Views .Include(o => o.Teams) .ThenInclude(o => o.Applications) .Include(o => o.Teams) .ThenInclude(o => o.Permissions) .Include(o => o.Applications) .ThenInclude(o => o.Template) .Include(o => o.Files) .SingleOrDefaultAsync(o => o.Id == idToBeCloned, ct); var newView = view.Clone(); newView.Name = $"Clone of {newView.Name}"; newView.Status = ViewStatus.Active; //copy view applications foreach (var application in view.Applications) { var newApplication = application.Clone(); newView.Applications.Add(newApplication); } //copy teams foreach (var team in view.Teams) { var newTeam = team.Clone(); //copy team applications foreach (var applicationInstance in team.Applications) { var newApplicationInstance = applicationInstance.Clone(); var application = view.Applications.FirstOrDefault(o => o.Id == applicationInstance.ApplicationId); var newApplication = newView.Applications.FirstOrDefault(o => application != null && o.GetName() == application.GetName()); newApplicationInstance.Application = newApplication; newTeam.Applications.Add(newApplicationInstance); } //copy team permissions foreach (var permission in team.Permissions) { var newPermission = new TeamPermissionEntity(newTeam.Id, permission.PermissionId); newTeam.Permissions.Add(newPermission); } newView.Teams.Add(newTeam); } // Copy files - note that the files themselves are not being copied, just the pointers foreach (var file in view.Files) { var cloned = file.Clone(); cloned.View = newView; newView.Files.Add(cloned); } _context.Add(newView); await _context.SaveChangesAsync(ct); // SaveChanges is called twice because we need the new IDs for each time. // Should figure out a better way to do it. foreach (var file in newView.Files) { List <Guid> newTeamIds = new List <Guid>(); foreach (var team in file.TeamIds) { var teamName = view.Teams.FirstOrDefault(t => t.Id == team).Name; var newId = file.View.Teams.FirstOrDefault(t => t.Name == teamName).Id; newTeamIds.Add(newId); } file.TeamIds = newTeamIds; } await _context.SaveChangesAsync(ct); return(_mapper.Map <View>(newView)); }