Exemple #1
0
        public async STT.Task <ViewModels.ScenarioTemplate> CreateAsync(ViewModels.ScenarioTemplate scenarioTemplate, CancellationToken ct)
        {
            if (!(await _authorizationService.AuthorizeAsync(_user, null, new ContentDeveloperRequirement())).Succeeded)
            {
                throw new ForbiddenException();
            }

            scenarioTemplate.DateCreated = DateTime.UtcNow;
            var scenarioTemplateEntity = _mapper.Map <ScenarioTemplateEntity>(scenarioTemplate);

            //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);

            scenarioTemplate = await GetAsync(scenarioTemplateEntity.Id, ct);

            _engineHub.Clients.All.SendAsync(EngineMethods.ScenarioTemplateCreated, scenarioTemplate);

            return(scenarioTemplate);
        }
Exemple #2
0
        public async STT.Task <ViewModels.ScenarioTemplate> UpdateAsync(Guid id, ViewModels.ScenarioTemplate scenarioTemplate, 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>();
            }

            scenarioTemplate.CreatedBy    = scenarioTemplateToUpdate.CreatedBy;
            scenarioTemplate.DateCreated  = scenarioTemplateToUpdate.DateCreated;
            scenarioTemplate.DateModified = DateTime.UtcNow;
            _mapper.Map(scenarioTemplate, scenarioTemplateToUpdate);

            _context.ScenarioTemplates.Update(scenarioTemplateToUpdate);
            await _context.SaveChangesAsync(ct);

            scenarioTemplate = await GetAsync(scenarioTemplateToUpdate.Id, ct);

            _engineHub.Clients.All.SendAsync(EngineMethods.ScenarioTemplateUpdated, scenarioTemplate);

            return(scenarioTemplate);
        }