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