OneNote Feature

Enable on ProgetsYear site and create section when Project create
This commit is contained in:
Kalarumeth
2022-07-28 18:05:36 +02:00
parent 60f11dd91c
commit f279977558
7 changed files with 3204 additions and 394 deletions
+74 -11
View File
@@ -2,6 +2,7 @@
using Microsoft.SharePoint.Client; using Microsoft.SharePoint.Client;
using Microsoft.SharePoint.Client.DocumentSet; using Microsoft.SharePoint.Client.DocumentSet;
using Microsoft.Online.SharePoint.TenantAdministration; using Microsoft.Online.SharePoint.TenantAdministration;
using Microsoft.PowerPlatform.Dataverse.Client;
using System; using System;
using System.Collections.Concurrent; using System.Collections.Concurrent;
using System.Net; using System.Net;
@@ -69,10 +70,10 @@ namespace SharePointOnlineUtils
using (var authMgr = new AuthenticationManager()) using (var authMgr = new AuthenticationManager())
using (var ctx = authMgr.GetContext(site, user, psw)) using (var ctx = authMgr.GetContext(site, user, psw))
{ {
if (SharePointCustomOperation.SiteExist(ctx) == false) if (SharePointCustomOperation.SiteExist(ctx) == false)
{ {
SharePointCustomOperation.ProjectsYSite(year, site, user, psw); SharePointCustomOperation.ProjectsYSite(year, site, user, psw);
SharePointCustomOperation.OnenoteSPFeature(ctx, "", "");
SharePointCustomOperation.ProjectsYField(ctx); SharePointCustomOperation.ProjectsYField(ctx);
SharePointCustomOperation.ProjectsYList(listTitle, ctx); SharePointCustomOperation.ProjectsYList(listTitle, ctx);
SharePointCustomOperation.ProjectsYListView(listTitle, ctx); SharePointCustomOperation.ProjectsYListView(listTitle, ctx);
@@ -85,7 +86,7 @@ namespace SharePointOnlineUtils
string year = DateTime.Now.Year.ToString(); string year = DateTime.Now.Year.ToString();
string projectsYear = $"Commesse{year}"; string projectsYear = $"Commesse{year}";
string listTitle = $"Lista Commesse {year}"; string listTitle = $"Lista Commesse {year}";
string ssProjectTitle = "CT0001"; string ssProjectTitle = "CT0002";
Uri site = new Uri($"{siteCollection}/sites/{projectsYear}"); Uri site = new Uri($"{siteCollection}/sites/{projectsYear}");
Uri subSite = new Uri($"{siteCollection}/sites/{projectsYear}/{ssProjectTitle}"); Uri subSite = new Uri($"{siteCollection}/sites/{projectsYear}/{ssProjectTitle}");
@@ -98,6 +99,7 @@ namespace SharePointOnlineUtils
{ {
#region Site Context #region Site Context
SharePointCustomOperation.ProjectSubSite(ssProjectTitle, projectsYear, ctx); SharePointCustomOperation.ProjectSubSite(ssProjectTitle, projectsYear, ctx);
SharePointCustomOperation.OnenoteSPFeature(ctx, year, ssProjectTitle);
SharePointCustomOperation.ProjectListEntry(ssProjectTitle, listTitle, projectsYear, ctx); SharePointCustomOperation.ProjectListEntry(ssProjectTitle, listTitle, projectsYear, ctx);
#endregion #endregion
@@ -206,6 +208,27 @@ namespace SharePointOnlineUtils
return true; return true;
} }
} }
public static bool SiteFeaturesExist(ClientContext ctx, string featureName)
{
var web = ctx.Web;
var wFeatures = web.Features;
ctx.Load(web);
ctx.Load(wFeatures);
ctx.ExecuteQuery();
foreach (var wFeature in wFeatures)
{
ctx.Load(wFeature, wf => wf.DisplayName);
ctx.ExecuteQuery();
Console.WriteLine(wFeature.DisplayName);
if (wFeature.DisplayName == featureName) return true;
}
return false;
}
#endregion #endregion
#region Projects Years #region Projects Years
@@ -248,7 +271,7 @@ namespace SharePointOnlineUtils
} }
catch (Exception ex) catch (Exception ex)
{ {
Console.WriteLine($"> Qualcosa è andato storto nella creazione della pagina. ( {ex.Message} )"); Console.WriteLine($"?> Qualcosa è andato storto nella creazione della pagina. ( {ex.Message} )");
} }
} }
} }
@@ -285,7 +308,7 @@ namespace SharePointOnlineUtils
ctx.ExecuteQuery(); ctx.ExecuteQuery();
} }
catch (Exception ex) catch (Exception ex)
{ Console.WriteLine($"> Qualcosa è andato storto... ( {ex.Message} )"); } { Console.WriteLine($"?> Qualcosa è andato storto... ( {ex.Message} )"); }
} }
public static async Task ProjectsYList(string listTitle, ClientContext ctx) public static async Task ProjectsYList(string listTitle, ClientContext ctx)
@@ -321,7 +344,7 @@ namespace SharePointOnlineUtils
} }
catch (Exception ex) catch (Exception ex)
{ {
Console.WriteLine($"> Qualcosa è andato storto nella creazione della lista. ( {ex.Message} )"); Console.WriteLine($"?> Qualcosa è andato storto nella creazione della lista. ( {ex.Message} )");
} }
} }
@@ -393,7 +416,7 @@ namespace SharePointOnlineUtils
} }
catch (Exception ex) catch (Exception ex)
{ {
Console.WriteLine($"> Qualcosa è andato storto nella creazione della ListView. ( {ex.Message} )"); Console.WriteLine($"?> Qualcosa è andato storto nella creazione della ListView. ( {ex.Message} )");
} }
} }
#endregion #endregion
@@ -477,7 +500,7 @@ namespace SharePointOnlineUtils
} }
catch (Exception ex) catch (Exception ex)
{ {
Console.WriteLine($"> Qualcosa è andato storto... {ex.Message}"); Console.WriteLine($"?> Qualcosa è andato storto... {ex.Message}");
} }
#endregion #endregion
@@ -514,7 +537,7 @@ namespace SharePointOnlineUtils
} }
catch (Exception ex) catch (Exception ex)
{ {
Console.WriteLine($"> Qualcosa è andato storto... ( {ex.Message} )"); Console.WriteLine($"?> Qualcosa è andato storto... ( {ex.Message} )");
} }
#endregion #endregion
} }
@@ -580,7 +603,7 @@ namespace SharePointOnlineUtils
} }
catch (Exception ex) catch (Exception ex)
{ {
Console.WriteLine($"> Qualcosa è andato storto... ( {ex.Message} )"); Console.WriteLine($"?> Qualcosa è andato storto... ( {ex.Message} )");
} }
} }
@@ -613,7 +636,7 @@ namespace SharePointOnlineUtils
Console.WriteLine($"> Il menu rapido è stato aggiornato in {ssProjectTitle}"); Console.WriteLine($"> Il menu rapido è stato aggiornato in {ssProjectTitle}");
} }
catch (Exception ex) catch (Exception ex)
{ Console.WriteLine($"> Qualcosa è andato storto... ( {ex.Message} )"); } { Console.WriteLine($"?> Qualcosa è andato storto... ( {ex.Message} )"); }
} }
} }
#endregion #endregion
@@ -704,7 +727,47 @@ namespace SharePointOnlineUtils
} }
catch (Exception ex) catch (Exception ex)
{ {
Console.WriteLine($"> Qualcosa è andato storto... ( {ex.Message} )"); Console.WriteLine($"?> Qualcosa è andato storto... ( {ex.Message} )");
}
}
#endregion
#region SPFeature
public static async Task OnenoteSPFeature(ClientContext ctx, string year, string ssProjectTitle)
{
var featureName = "SiteNotebook";
Guid featureId = new Guid("f151bb39-7c3b-414f-bb36-6bf18872052f");
if (string.IsNullOrEmpty(ssProjectTitle))
{
try
{
if (!SiteFeaturesExist(ctx, featureName))
{
ctx.Web.ActivateFeature(featureId);
ctx.ExecuteQuery();
Console.WriteLine($"> La Feature {featureName} è ora attiva!");
}
}
catch (Exception ex) { Console.WriteLine($"?> Qualcosa è andato storto... ( {ex.Message} )"); }
}
if (!string.IsNullOrEmpty(ssProjectTitle))
{
try
{
Console.WriteLine($"> Inizializzata la fase di creazione della sezione {ssProjectTitle} in OneNote.");
var list = ctx.Web.Lists.EnsureSiteAssetsLibrary();
ctx.Load(list, l => l.RootFolder);
ctx.ExecuteQuery();
var rPath = ResourcePath.FromDecodedUrl($"Commesse {year} Notebook/{ssProjectTitle}");
list.RootFolder.AddSubFolderUsingPath(rPath);
ctx.ExecuteQuery();
Console.WriteLine($"> Completata la fase di creazione della sezione {ssProjectTitle} in OneNote.");
}
catch (Exception ex) { Console.WriteLine($"?> Qualcosa è andato storto... ( {ex.Message} )"); }
} }
} }
#endregion #endregion
File diff suppressed because it is too large Load Diff
@@ -8,6 +8,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.PowerPlatform.Dataverse.Client" Version="1.0.9" />
<PackageReference Include="Microsoft.SharePoint.Client" Version="14.0.4762.1000" /> <PackageReference Include="Microsoft.SharePoint.Client" Version="14.0.4762.1000" />
<PackageReference Include="Microsoft.SharePointOnline.CSOM" Version="16.1.22615.12000" /> <PackageReference Include="Microsoft.SharePointOnline.CSOM" Version="16.1.22615.12000" />
<PackageReference Include="SharePointPnPCoreOnline" Version="3.28.2012" /> <PackageReference Include="SharePointPnPCoreOnline" Version="3.28.2012" />
@@ -87,3 +87,58 @@ C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\ko\System.Spa
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\ru\System.Spatial.resources.dll C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\ru\System.Spatial.resources.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\zh-Hans\System.Spatial.resources.dll C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\zh-Hans\System.Spatial.resources.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\zh-Hant\System.Spatial.resources.dll C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\zh-Hant\System.Spatial.resources.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\Microsoft.Bcl.AsyncInterfaces.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\Microsoft.Identity.Client.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\System.Text.Json.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\Microsoft.Extensions.Caching.Abstractions.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\Microsoft.Extensions.Caching.Memory.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\Microsoft.Extensions.Configuration.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\Microsoft.Extensions.Configuration.Abstractions.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\Microsoft.Extensions.Configuration.Binder.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\Microsoft.Extensions.DependencyInjection.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\Microsoft.Extensions.Http.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\Microsoft.Extensions.Logging.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\Microsoft.Extensions.Logging.Abstractions.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\Microsoft.Extensions.ObjectPool.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\Microsoft.Extensions.Options.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\Microsoft.Extensions.Primitives.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\Microsoft.Identity.Client.Extensions.Msal.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\Microsoft.Crm.Sdk.Proxy.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\Microsoft.PowerPlatform.Dataverse.Client.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\Microsoft.Xrm.Sdk.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\Microsoft.Rest.ClientRuntime.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\Microsoft.Win32.SystemEvents.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\System.Configuration.ConfigurationManager.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\System.Drawing.Common.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\System.Private.ServiceModel.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\System.Runtime.Caching.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\System.Security.Cryptography.Pkcs.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\System.Security.Cryptography.ProtectedData.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\System.Security.Cryptography.Xml.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\System.Security.Permissions.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\System.ServiceModel.Duplex.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\System.ServiceModel.Http.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\System.ServiceModel.Primitives.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\System.ServiceModel.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\System.Windows.Extensions.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\cs\System.Private.ServiceModel.resources.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\de\System.Private.ServiceModel.resources.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\es\System.Private.ServiceModel.resources.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\fr\System.Private.ServiceModel.resources.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\it\System.Private.ServiceModel.resources.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\ja\System.Private.ServiceModel.resources.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\ko\System.Private.ServiceModel.resources.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\pl\System.Private.ServiceModel.resources.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\pt-BR\System.Private.ServiceModel.resources.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\ru\System.Private.ServiceModel.resources.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\tr\System.Private.ServiceModel.resources.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\zh-Hans\System.Private.ServiceModel.resources.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\zh-Hant\System.Private.ServiceModel.resources.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\runtimes\win\lib\netcoreapp3.0\Microsoft.Win32.SystemEvents.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\runtimes\unix\lib\netcoreapp3.0\System.Drawing.Common.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\runtimes\win\lib\netcoreapp3.0\System.Drawing.Common.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\runtimes\win\lib\netstandard2.0\System.Runtime.Caching.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\runtimes\win\lib\netcoreapp3.0\System.Security.Cryptography.Pkcs.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\runtimes\win\lib\netstandard2.0\System.Security.Cryptography.ProtectedData.dll
C:\Sources\VS\console_spo_utils\console_spo_utils\bin\Debug\net6.0\runtimes\win\lib\netcoreapp3.0\System.Windows.Extensions.dll
@@ -50,6 +50,10 @@
"net6.0": { "net6.0": {
"targetAlias": "net6.0", "targetAlias": "net6.0",
"dependencies": { "dependencies": {
"Microsoft.PowerPlatform.Dataverse.Client": {
"target": "Package",
"version": "[1.0.9, )"
},
"Microsoft.SharePoint.Client": { "Microsoft.SharePoint.Client": {
"target": "Package", "target": "Package",
"version": "[14.0.4762.1000, )" "version": "[14.0.4762.1000, )"
@@ -82,7 +86,7 @@
"privateAssets": "all" "privateAssets": "all"
} }
}, },
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\6.0.301\\RuntimeIdentifierGraph.json" "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\6.0.302\\RuntimeIdentifierGraph.json"
} }
} }
} }
@@ -1,2 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?> <?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" /> <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<Import Project="$(NuGetPackageRoot)system.text.json\6.0.2\build\System.Text.Json.targets" Condition="Exists('$(NuGetPackageRoot)system.text.json\6.0.2\build\System.Text.Json.targets')" />
</ImportGroup>
</Project>
File diff suppressed because it is too large Load Diff