public async STT.Task <ViewModels.ScenarioTemplate> CreateAsync(ViewModels.ScenarioTemplateForm scenarioTemplateForm, CancellationToken ct) { if (!(await _authorizationService.AuthorizeAsync(_user, null, new ContentDeveloperRequirement())).Succeeded) { throw new ForbiddenException(); } var scenarioTemplateEntity = _mapper.Map <ScenarioTemplateEntity>(scenarioTemplateForm); scenarioTemplateEntity.DateCreated = DateTime.UtcNow; scenarioTemplateEntity.CreatedBy = _user.GetId(); //TODO: add permissions // var scenarioTemplateAdminPermission = await _context.Permissions // .Where(p => p.Key == PlayerClaimTypes.ScenarioTemplateAdmin.ToString()) // .FirstOrDefaultAsync(); // if (scenarioTemplateAdminPermission == null) // throw new EntityNotFoundException<Permission>($"{PlayerClaimTypes.ScenarioTemplateAdmin.ToString()} Permission not found."); _context.ScenarioTemplates.Add(scenarioTemplateEntity); await _context.SaveChangesAsync(ct); var scenarioTemplate = await GetAsync(scenarioTemplateEntity.Id, ct); return(scenarioTemplate); }
public async STT.Task <ViewModels.ScenarioTemplate> UpdateAsync(Guid id, ViewModels.ScenarioTemplateForm scenarioTemplateForm, CancellationToken ct) { if (!(await _authorizationService.AuthorizeAsync(_user, null, new ContentDeveloperRequirement())).Succeeded) { throw new ForbiddenException(); } var scenarioTemplateToUpdate = await _context.ScenarioTemplates.SingleOrDefaultAsync(v => v.Id == id, ct); if (scenarioTemplateToUpdate == null) { throw new EntityNotFoundException <SAVM.ScenarioTemplate>(); } _mapper.Map(scenarioTemplateForm, scenarioTemplateToUpdate); scenarioTemplateToUpdate.DateModified = DateTime.UtcNow; scenarioTemplateToUpdate.ModifiedBy = _user.GetId(); _context.ScenarioTemplates.Update(scenarioTemplateToUpdate); await _context.SaveChangesAsync(ct); var scenarioTemplate = await GetAsync(scenarioTemplateToUpdate.Id, ct); return(scenarioTemplate); }