public async Task <IHttpActionResult> PutAsync(int id, [FromBody] BusinessTagItemDto model, CancellationToken cancellationToken) { if (model == null || !ModelState.IsValid) { return(BadRequest()); } var businessTag = await _projectManager.GetBusinessTagByIdAsync(id, cancellationToken); if (businessTag == null) { return(NotFound()); } var project = await _projectManager.FindByIdAsync(businessTag.Project.Id, cancellationToken); await ApiSecurity.AuthorizeAsync(project, AccessPermission.CanEdit, cancellationToken); businessTag.Name = model.Name; businessTag.Color = model.Color; var validationResult = await _projectManager.ReplaceBusinessTagAsync(project, businessTag, businessTag, cancellationToken); if (!validationResult.Succeeded) { return(this.ValidationContent(validationResult)); } return(new BusinessTagContentResult(HttpStatusCode.OK, businessTag, this)); }
public async Task <IHttpActionResult> PostAsync(int projectId, [FromBody] BusinessTagItemDto model, CancellationToken cancellationToken) { if (model == null || !ModelState.IsValid) { return(BadRequest()); } var project = await _projectManager.FindByIdAsync(projectId, cancellationToken); await ApiSecurity.AuthorizeAsync(project, AccessPermission.CanEdit, cancellationToken); var businessTag = new BusinessTagItem { Name = model.Name, Color = model.Color }; var validationResult = await _projectManager.AddBusinessTagAsync(project, businessTag, cancellationToken); if (!validationResult.Succeeded) { return(this.ValidationContent(validationResult)); } return(new BusinessTagContentResult(HttpStatusCode.Created, businessTag, this)); }