Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        /// <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);
        }
Exemplo n.º 3
0
        /// <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);
        }