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.DocumentSet;
using Microsoft.Online.SharePoint.TenantAdministration;
using Microsoft.PowerPlatform.Dataverse.Client;
using System;
using System.Collections.Concurrent;
using System.Net;
@@ -69,10 +70,10 @@ namespace SharePointOnlineUtils
using (var authMgr = new AuthenticationManager())
using (var ctx = authMgr.GetContext(site, user, psw))
{
if (SharePointCustomOperation.SiteExist(ctx) == false)
{
SharePointCustomOperation.ProjectsYSite(year, site, user, psw);
SharePointCustomOperation.OnenoteSPFeature(ctx, "", "");
SharePointCustomOperation.ProjectsYField(ctx);
SharePointCustomOperation.ProjectsYList(listTitle, ctx);
SharePointCustomOperation.ProjectsYListView(listTitle, ctx);
@@ -85,7 +86,7 @@ namespace SharePointOnlineUtils
string year = DateTime.Now.Year.ToString();
string projectsYear = $"Commesse{year}";
string listTitle = $"Lista Commesse {year}";
string ssProjectTitle = "CT0001";
string ssProjectTitle = "CT0002";
Uri site = new Uri($"{siteCollection}/sites/{projectsYear}");
Uri subSite = new Uri($"{siteCollection}/sites/{projectsYear}/{ssProjectTitle}");
@@ -98,6 +99,7 @@ namespace SharePointOnlineUtils
{
#region Site Context
SharePointCustomOperation.ProjectSubSite(ssProjectTitle, projectsYear, ctx);
SharePointCustomOperation.OnenoteSPFeature(ctx, year, ssProjectTitle);
SharePointCustomOperation.ProjectListEntry(ssProjectTitle, listTitle, projectsYear, ctx);
#endregion
@@ -206,6 +208,27 @@ namespace SharePointOnlineUtils
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
#region Projects Years
@@ -248,7 +271,7 @@ namespace SharePointOnlineUtils
}
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();
}
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)
@@ -321,7 +344,7 @@ namespace SharePointOnlineUtils
}
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)
{
Console.WriteLine($"> Qualcosa è andato storto nella creazione della ListView. ( {ex.Message} )");
Console.WriteLine($"?> Qualcosa è andato storto nella creazione della ListView. ( {ex.Message} )");
}
}
#endregion
@@ -477,7 +500,7 @@ namespace SharePointOnlineUtils
}
catch (Exception ex)
{
Console.WriteLine($"> Qualcosa è andato storto... {ex.Message}");
Console.WriteLine($"?> Qualcosa è andato storto... {ex.Message}");
}
#endregion
@@ -514,7 +537,7 @@ namespace SharePointOnlineUtils
}
catch (Exception ex)
{
Console.WriteLine($"> Qualcosa è andato storto... ( {ex.Message} )");
Console.WriteLine($"?> Qualcosa è andato storto... ( {ex.Message} )");
}
#endregion
}
@@ -580,7 +603,7 @@ namespace SharePointOnlineUtils
}
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}");
}
catch (Exception ex)
{ Console.WriteLine($"> Qualcosa è andato storto... ( {ex.Message} )"); }
{ Console.WriteLine($"?> Qualcosa è andato storto... ( {ex.Message} )"); }
}
}
#endregion
@@ -704,7 +727,47 @@ namespace SharePointOnlineUtils
}
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
File diff suppressed because it is too large Load Diff
@@ -8,6 +8,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.PowerPlatform.Dataverse.Client" Version="1.0.9" />
<PackageReference Include="Microsoft.SharePoint.Client" Version="14.0.4762.1000" />
<PackageReference Include="Microsoft.SharePointOnline.CSOM" Version="16.1.22615.12000" />
<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\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\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": {
"targetAlias": "net6.0",
"dependencies": {
"Microsoft.PowerPlatform.Dataverse.Client": {
"target": "Package",
"version": "[1.0.9, )"
},
"Microsoft.SharePoint.Client": {
"target": "Package",
"version": "[14.0.4762.1000, )"
@@ -82,7 +86,7 @@
"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"?>
<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