Service update, import changes from web_portal
This commit is contained in:
@@ -1,11 +1,12 @@
|
||||
using console_spo_utils.Constants;
|
||||
using console_spo_utils.Interfaces.Repositories;
|
||||
using console_spo_utils.Interfaces.Services;
|
||||
using library_spo_utils.Constants;
|
||||
using library_spo_utils.Enums;
|
||||
using library_spo_utils.Interfaces.Repositories;
|
||||
using library_spo_utils.Interfaces.Services;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Microsoft.SharePoint.Client.DocumentSet;
|
||||
using Microsoft.SharePoint.Client;
|
||||
using Microsoft.SharePoint.Client.DocumentSet;
|
||||
|
||||
namespace console_spo_utils.Services;
|
||||
namespace library_spo_utils.Services;
|
||||
|
||||
internal class SubProjectBuilderService : ISubProjectBuilderService
|
||||
{
|
||||
@@ -13,23 +14,26 @@ internal class SubProjectBuilderService : ISubProjectBuilderService
|
||||
private readonly ISharePointCustomOperation cpt;
|
||||
private readonly ISharePointAuthenticationManager authMgr;
|
||||
private readonly ISubProjectRepository subProjectRepository;
|
||||
private readonly IFieldEntryDataUpdate _fieldEntryDataUpdate;
|
||||
private readonly ILogger<SubProjectBuilderService> logger;
|
||||
|
||||
public SubProjectBuilderService(ISiteOptions siteOptions,
|
||||
ISharePointCustomOperation cpt,
|
||||
ISharePointAuthenticationManager authMgr,
|
||||
ISubProjectRepository subProjectRepository,
|
||||
IFieldEntryDataUpdate fieldEntryDataUpdate,
|
||||
ILogger<SubProjectBuilderService> logger)
|
||||
{
|
||||
this.siteOptions = siteOptions;
|
||||
this.cpt = cpt;
|
||||
this.authMgr = authMgr;
|
||||
this.subProjectRepository = subProjectRepository;
|
||||
_fieldEntryDataUpdate = fieldEntryDataUpdate;
|
||||
this.logger = logger;
|
||||
}
|
||||
|
||||
|
||||
public bool SubProjectDocSet(string projName, List<string> subProjTitle)
|
||||
public bool SubProjectDocSet(string projName, List<string> listOfSubProjIds)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -70,51 +74,56 @@ internal class SubProjectBuilderService : ISubProjectBuilderService
|
||||
|
||||
#endregion
|
||||
|
||||
foreach (var spt in subProjTitle)
|
||||
foreach (var subProjId in listOfSubProjIds)
|
||||
{
|
||||
if (cpt.FolderExistsInsideList(ctx, listTitle, spt) == false)
|
||||
if (cpt.FolderExistsInsideList(ctx, listTitle, subProjId))
|
||||
{
|
||||
Console.WriteLine($"> Inizializzata la fase di creazione per {spt}.");
|
||||
|
||||
#region DocSet Field Entry
|
||||
|
||||
DocumentSet.Create(ctx, list.RootFolder, spt, contentType.Id);
|
||||
ctx.ExecuteQuery();
|
||||
|
||||
Console.WriteLine($"> DocumentSet {spt} creata.");
|
||||
|
||||
var dsItem = list.RootFolder.Folders.GetByUrl(spt).ListItemAllFields;
|
||||
|
||||
dsItem["_ExtendedDescription"] = subProjectRepository.DefaultDescription(projName);
|
||||
dsItem["PAL_Item"] = subProjectRepository.DefaultItem(projName);
|
||||
dsItem["PAL_ItemCode"] = subProjectRepository.DefaultItemCode(projName);
|
||||
dsItem["PAL_ItemDescription"] = subProjectRepository.DefaultItemDescription(projName);
|
||||
dsItem["PAL_SerialNumber"] = subProjectRepository.DefaultSerialNumber(projName);
|
||||
|
||||
dsItem.Update();
|
||||
ctx.ExecuteQuery();
|
||||
|
||||
Console.WriteLine($"> Field value update.");
|
||||
|
||||
#endregion
|
||||
|
||||
#region SubProject Folder
|
||||
|
||||
foreach (var name in Folders.SubProjectDocSet)
|
||||
{
|
||||
Console.WriteLine($"La sotto cartella {name} verrà creata in {spt}");
|
||||
var rPath = ResourcePath.FromDecodedUrl($"{spt}/{name}");
|
||||
list.RootFolder.AddSubFolderUsingPath(rPath);
|
||||
}
|
||||
|
||||
ctx.ExecuteQuery();
|
||||
|
||||
Console.WriteLine($"Le sotto cartelle sono state create con successo in {spt}");
|
||||
|
||||
#endregion
|
||||
|
||||
Console.WriteLine($"> {spt} creato con successo in SottoCommesse {projName}.");
|
||||
_fieldEntryDataUpdate.FieldUpdate(ctx, listTitle, projName, FieldUpdateType.SubProject);
|
||||
continue;
|
||||
}
|
||||
Console.WriteLine($"> Inizializzata la fase di creazione per {subProjId}.");
|
||||
|
||||
#region DocSet Field Entry
|
||||
|
||||
DocumentSet.Create(ctx, list.RootFolder, subProjId, contentType.Id);
|
||||
ctx.ExecuteQuery();
|
||||
|
||||
Console.WriteLine($"> DocumentSet {subProjId} creata.");
|
||||
|
||||
//var dsItem = list.RootFolder.Folders.GetByUrl(subProjId).ListItemAllFields;
|
||||
|
||||
//dsItem["_ExtendedDescription"] = subProjectRepository.DefaultDescription(projName);
|
||||
//dsItem["PAL_Item"] = subProjectRepository.DefaultItem(projName);
|
||||
//dsItem["PAL_ItemCode"] = subProjectRepository.DefaultItemCode(projName);
|
||||
//dsItem["PAL_ItemDescription"] = subProjectRepository.DefaultItemDescription(projName);
|
||||
//dsItem["PAL_SerialNumber"] = subProjectRepository.DefaultSerialNumber(projName);
|
||||
//dsItem["PAL_Status"] = subProjectRepository.DefaultState(projName);
|
||||
|
||||
//dsItem.Update();
|
||||
//ctx.ExecuteQuery();
|
||||
|
||||
_fieldEntryDataUpdate.FieldUpdate(ctx, listTitle, subProjId, FieldUpdateType.SubProject);
|
||||
|
||||
Console.WriteLine($"> Field value update.");
|
||||
|
||||
#endregion
|
||||
|
||||
#region SubProject Folder
|
||||
|
||||
foreach (var name in Folders.SubProjectDocSet)
|
||||
{
|
||||
Console.WriteLine($"La sotto cartella {name} verrà creata in {subProjId}");
|
||||
var rPath = ResourcePath.FromDecodedUrl($"{subProjId}/{name}");
|
||||
list.RootFolder.AddSubFolderUsingPath(rPath);
|
||||
}
|
||||
|
||||
ctx.ExecuteQuery();
|
||||
|
||||
Console.WriteLine($"Le sotto cartelle sono state create con successo in {subProjId}");
|
||||
|
||||
#endregion
|
||||
|
||||
Console.WriteLine($"> {subProjId} creato con successo in SottoCommesse {projName}.");
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
||||
Reference in New Issue
Block a user