예제 #1
0
        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));
        }
예제 #2
0
        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));
        }