コード例 #1
0
        /// <summary>
        /// update the Definition
        /// </summary>
        /// <param name="id">Guid</param>
        /// <param name="definition">the new information</param>
        /// <param name="ct"></param>
        /// <returns></returns>
        public async Task <ViewModels.Definition> UpdateAsync(Guid id, ViewModels.Definition definition, CancellationToken ct)
        {
            var user = await _claimsService.GetClaimsPrincipal(_user.GetId(), true);

            var definitionEntity = await GetTheDefinitionAsync(id, true, true, ct);

            definition.ModifiedBy = user.GetId();
            Mapper.Map(definition, definitionEntity);

            _context.Definitions.Update(definitionEntity);
            await _context.SaveChangesAsync(ct);

            return(_mapper.Map(definitionEntity, definition));
        }
コード例 #2
0
        /// <summary>
        /// Create a Definition
        /// </summary>
        /// <param name="definition"></param>
        /// <param name="ct"></param>
        /// <returns></returns>
        public async Task <ViewModels.Definition> CreateAsync(ViewModels.Definition definition, CancellationToken ct)
        {
            var user = await _claimsService.GetClaimsPrincipal(_user.GetId(), true);

            if (!(await _authorizationService.AuthorizeAsync(user, null, new ContentDeveloperRightsRequirement())).Succeeded &&
                !(await _authorizationService.AuthorizeAsync(user, null, new SystemAdminRightsRequirement())).Succeeded)
            {
                throw new ForbiddenException();
            }

            definition.CreatedBy = user.GetId();
            var definitionEntity = Mapper.Map <DefinitionEntity>(definition);

            _context.Definitions.Add(definitionEntity);
            await _context.SaveChangesAsync(ct);

            return(await GetAsync(definitionEntity.Id, ct));
        }