/// <summary> /// <see cref="ITableauGroupService.CreateGroupAsync"/> /// </summary> public async Task <TableauGroup> CreateGroupAsync(string name) { _logger?.Debug($"Creating group {name}"); var url = _tableauApiService.SiteUrl.AppendUri("groups"); var group = new TableauGroup() { Name = name }; var requestJson = new JObject(); requestJson["group"] = JToken.Parse(group.ToRequestString()); var responseString = await _tableauApiService.SendPostAsync( url, requestJson.ToString() ).ConfigureAwait(false); var responseJson = JToken.Parse(responseString); group = JsonConvert.DeserializeObject <TableauGroup>( responseJson.Value <JObject>("group").ToString() ); _logger?.Debug($"Group {name} created with id {group.Id}"); return(group); }
/// <summary> /// <see cref="ITableauProjectService.CreateProjectAsync"/> /// </summary> public async Task <TableauProject> CreateProjectAsync( string name, string description = null, string parentProjectId = null ) { _logger?.Debug($"Creating project {name}"); var url = _tableauApiService.SiteUrl.AppendUri("projects"); var project = new TableauProject() { Name = name, Description = description, ParentProjectId = parentProjectId }; var requestJson = new JObject(); requestJson["project"] = JToken.Parse(project.ToRequestString()); var responseString = await _tableauApiService.SendPostAsync( url, requestJson.ToString() ).ConfigureAwait(false); var responseJson = JToken.Parse(responseString); project = JsonConvert.DeserializeObject <TableauProject>( responseJson.Value <JObject>("project").ToString() ); _logger?.Debug($"Project {name} created with id {project.Id}"); return(project); }
/// <summary> /// <see cref="ITableauUserService.AddUserToSiteAsync"/> /// </summary> public async Task <TableauUser> AddUserToSiteAsync(string name, string siteRole) { _logger?.Debug($"Adding user {name} with role {siteRole}"); var url = _tableauApiService.SiteUrl.AppendUri($"users"); var user = new TableauUser() { Name = name, SiteRole = siteRole }; var requestJson = new JObject(); requestJson["user"] = JToken.Parse(user.ToRequestString()); var responseString = await _tableauApiService.SendPostAsync(url, requestJson.ToString()).ConfigureAwait(false); var responseJson = JToken.Parse(responseString); user = JsonConvert.DeserializeObject <TableauUser>( responseJson.Value <JObject>("user").ToString() ); _logger?.Debug($"User {user.Id} added as {siteRole}"); return(user); }