public async Task <IHttpActionResult> PutAsync(string uri, [FromBody] SetPortalHeadDto model, CancellationToken cancellationToken) { if (model == null || !ModelState.IsValid) { return(BadRequest()); } var portal = await _portalManager.FindByUriAsync(uri, cancellationToken); await ApiSecurity.AuthorizeAsync(portal, AccessPermission.CanEdit, cancellationToken); ValidationResult validationResult; if (model.Uri != null) { validationResult = await _portalManager.SetUriAsync(portal, model.Uri, cancellationToken); if (!validationResult.Succeeded) { return(this.ValidationContent(validationResult)); } } portal.Name = model.Name; portal.Description = model.Description; portal.GATrackingId = model.GATrackingId; validationResult = await _portalManager.UpdateAsync(portal, cancellationToken); if (!validationResult.Succeeded) { return(this.ValidationContent(validationResult)); } return(Ok(ModelMapper.ToPortalDto(portal))); }