Inheritance: TableauServerSignedInRequestBase
Ejemplo n.º 1
0
    /// <summary>
    /// Attempts to create a project
    /// </summary>
    /// <param name="onlineLogin"></param>
    /// <param name="projectName"></param>
    private void Execute_CreateProjectWithName(TableauServerSignIn onlineLogin, string projectName)
    {
        var onlineUrls = _onlineUrls;

        _statusLog.AddStatusHeader("Create project: " + projectName);
        try
        {
            var createProject = new SendCreateProject(onlineUrls, onlineLogin, projectName);
            createProject.ExecuteRequest();
        }
        catch (Exception ex)
        {
            _statusLog.AddError("Error during project create, " + ex.Message);
        }
    }
Ejemplo n.º 2
0
 /// <summary>
 /// Attempts to create a project
 /// </summary>
 /// <param name="onlineLogin"></param>
 /// <param name="projectName"></param>
 private void Execute_CreateProjectWithName(TableauServerSignIn onlineLogin, string projectName)
 {
     var onlineUrls = _onlineUrls;
     _statusLog.AddStatusHeader("Create project: " + projectName);
     try
     {
         var createProject = new SendCreateProject(onlineUrls, onlineLogin, projectName);
         createProject.ExecuteRequest();
     }
     catch (Exception ex)
     {
         _statusLog.AddError("Error during project create, " + ex.Message);
     }
 }
    /// <summary>
    /// Looks up the default project ID
    /// </summary>
    /// <returns></returns>
    public string GetProjectIdForUploads(string projectName)
    {
        //If the project name is empty - look for the default project
        if (string.IsNullOrEmpty(projectName))
        {
            goto find_default_project;
        }

        //Look for the matching project
        var project = _projectsList.FindProjectWithName(projectName);

        if (project != null)
        {
            return(project.Id);
        }

        //If the option is specified; attempt to create the project
        if (_uploadProjectBehavior.AttemptProjectCreate)
        {
            //Create the project name
            var createProject = new SendCreateProject(_onlineUrls, _onlineSession, projectName);
            try
            {
                var newProject = createProject.ExecuteRequest();
                _projectsList.AddProject(newProject);
                return(newProject.Id);
            }
            catch (Exception exCreateProject)
            {
                this.StatusLog.AddError("Failed attempting to create project '" + projectName + "', " + exCreateProject.Message);
            }
        }

        //If we are not allowed to fall back the default project then error
        if (!_uploadProjectBehavior.UseDefaultProjectIfNeeded)
        {
            throw new Exception("Not allowed to use default project");
        }

        this.StatusLog.AddStatus("Project name not found '" + projectName + "'. Reverting to default project", -10);

find_default_project:
        //If all else fails, fall back to using the default project
        var defaultProject = _projectsList.FindProjectWithName("default"); //Find the default project

        if (defaultProject != null)
        {
            return(defaultProject.Id);
        }

        defaultProject = _projectsList.FindProjectWithName("Default");
        if (defaultProject != null)
        {
            return(defaultProject.Id);
        }

        defaultProject = _projectsList.FindProjectWithName(""); //Try empty
        if (defaultProject != null)
        {
            return(defaultProject.Id);
        }

        //Default project not found. Choosing any project
        this.StatusLog.AddError("Default project not found. Reverting to any project");
        foreach (var thisProj in _projectsList.Projects)
        {
            return(thisProj.Id);
        }

        StatusLog.AddError("Upload could not find a project ID to use");
        throw new Exception("Aborting. Upload Datasources could not find a project ID to use");
    }