Reading et enregistrer des projets dans le serveur de projet ou le projet en ligne

Aspose.Tasks pour .NET prend en charge la création / la lecture / la mise à jour / des projets dans Project Server sur site sur site ou Project Online (version cloud de Project Server) à l’aide de l’API PWA (Project Web Access).

Gestion des projets avec Project Server

Aspose.Tasks pour .NET fournit la classe ProjectServerManager pour créer, lire et mettre à jour des projets dans l’instance de Project Server ou dans le compte de projet en ligne. La classe ProjectServerCredentials doit être utilisée pour fournir des informations d’identification utilisées pour se connecter à Project Online. Auparavant, Microsoft.SharePoint.Client.Runtime a été utilisé pour récupérer AuthToken mais Aspose.Tasks pour .NET offre une option pour spécifier SITEURL, Nom d’utilisateur et mot de passe afin de créer une connexion à Project en ligne.

Reading Project depuis Project Server

L’exemple de code suivant montre comment lire les données du projet à partir du serveur de projet.

 1const string SharepointDomainAddress = "https://contoso.sharepoint.com";
 2const string UserName = "admin@contoso.onmicrosoft.com";
 3const string Password = "MyPassword";
 4
 5ProjectServerCredentials credentials = new ProjectServerCredentials(SharepointDomainAddress, UserName, Password);
 6ProjectServerManager manager = new ProjectServerManager(credentials);
 7IEnumerable<ProjectInfo> list = manager.GetProjectList();
 8
 9foreach (var info in list)
10{
11    Project project = manager.GetProject(info.Id);
12    Console.WriteLine("{0} - {1} - {2}", info.Name, info.CreatedDate, info.LastSavedDate);
13    Console.WriteLine("Resources count: {0}", project.Resources.Count);
14
15    // an user can read the project as raw data stream
16    var stream = manager.GetProjectRawData(info.Id);
17
18    // work with raw project data
19}

Creating a Project in Project Server

The following code example demonstrates how to create a project in Project Server.

 1try
 2{
 3    const string SharepointDomainAddress = "https://contoso.sharepoint.com";
 4    const string UserName = "admin@contoso.onmicrosoft.com";
 5    const string Password = "MyPassword";
 6
 7    ProjectServerCredentials credentials = new ProjectServerCredentials(SharepointDomainAddress, UserName, Password);
 8
 9    Project project = new Project("New Project.mpp");
10
11    ProjectServerManager manager = new ProjectServerManager(credentials);
12    manager.CreateNewProject(project);
13}
14catch (ProjectOnlineException ex)
15{
16    Console.WriteLine(ex.Message);
17}

The following code example demonstrates how to create a project with predefined save options on Microsoft Project Online.

1Project project = new Project("New Project.mpp");
2ProjectServerCredentials credentials = new ProjectServerCredentials("https://contoso.sharepoint.com", "admin@contoso.onmicrosoft.com", "MyPassword");
3ProjectServerManager manager = new ProjectServerManager(credentials);
4ProjectServerSaveOptions options = new ProjectServerSaveOptions
5{
6    Timeout = TimeSpan.FromSeconds(10)
7};
8manager.CreateNewProject(project, options);

Updating a Project in Project Server

The following code example demonstrates how to update existing project in Project Server.

 1const string URL = "https://contoso.sharepoint.com";
 2const string Domain = "CONTOSO.COM";
 3const string UserName = "Administrator";
 4const string Password = "MyPassword";
 5
 6NetworkCredential windowsCredentials = new NetworkCredential(UserName, Password, Domain);
 7ProjectServerCredentials projectServerCredentials = new ProjectServerCredentials(URL, windowsCredentials);
 8try
 9{
10    ProjectServerManager manager = new ProjectServerManager(projectServerCredentials);
11
12    var projectInfo = manager.GetProjectList().FirstOrDefault(p => p.Name == "My project");
13    if (projectInfo == null)
14    {
15        Console.WriteLine("Project 'My project' not found in working store of Project Online account.");
16        return;
17    }
18
19    Project project = manager.GetProject(projectInfo.Id);
20    project.Set(Prj.FinishDate, new DateTime(2020, 03, 01));
21
22    Task task = project.RootTask.Children.Add("New task");
23    task.Set(Tsk.Start, new DateTime(2020, 02, 26));
24    task.Set(Tsk.Duration, project.GetDuration(2, TimeUnitType.Day));
25
26    manager.UpdateProject(project);
27}
28catch (ProjectOnlineException ex)
29{
30    Console.WriteLine("Failed to update the project. Error: " + ex);
31}

The following code example demonstrates how to update a project in Project Server with save options.

 1const string SharepointDomainAddress = "https://contoso.sharepoint.com";
 2const string UserName = "admin@contoso.onmicrosoft.com";
 3const string Password = "MyPassword";
 4
 5ProjectServerCredentials credentials = new ProjectServerCredentials(SharepointDomainAddress, UserName, Password);
 6
 7try
 8{
 9    ProjectServerManager manager = new ProjectServerManager(credentials);
10
11    var projectInfo = manager.GetProjectList().FirstOrDefault(p => p.Name == "My project");
12    if (projectInfo == null)
13    {
14        Console.WriteLine("Project 'My project' not found in working store of Project Online account.");
15        return;
16    }
17
18    Project project = manager.GetProject(projectInfo.Id);
19    project.Set(Prj.FinishDate, new DateTime(2020, 03, 01));
20
21    Task task = project.RootTask.Children.Add("New task");
22    task.Set(Tsk.Start, new DateTime(2020, 02, 26));
23    task.Set(Tsk.Duration, project.GetDuration(2, TimeUnitType.Day));
24
25    ProjectServerSaveOptions options = new ProjectServerSaveOptions { Timeout = TimeSpan.FromMinutes(5) };
26
27    manager.UpdateProject(project, options);
28}
29catch (ProjectOnlineException ex)
30{
31    Console.WriteLine("Failed to update the project. Error: " + ex);
32}
Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.