Files
console_spo_utils/library_spo_utils/Services/PurchasingPackingSlipBuildService.cs
T
2023-06-21 10:38:57 +02:00

62 lines
2.7 KiB
C#

using library_spo_utils.Enums;
using library_spo_utils.Interfaces.Services;
using Microsoft.Extensions.Logging;
namespace library_spo_utils.Services;
internal class PurchasingPackingSlipBuildService : IPurchasingPackingSlipBuildService
{
private readonly ISiteOptions _siteOptions;
private readonly ISharePointAuthenticationManager _sharePointAuthenticationManager;
private readonly ISharePointCustomOperation _spc;
private readonly IPurchasingPackingSlipDocLibraryService _purchasingPackingSlipDocLibraryService;
private readonly IPurchasingPackingSlipDocSetService _purchasingPackingSlipDocSetService;
private readonly IFieldEntryDataUpdate _fieldEntryDataUpdate;
private readonly ILogger<PurchasingOrderBuildService> _logger;
public PurchasingPackingSlipBuildService(
ISiteOptions siteOptions,
ISharePointAuthenticationManager sharePointAuthenticationManager,
ISharePointCustomOperation spc,
IPurchasingPackingSlipDocLibraryService purchasingPackingSlipDocLibraryService,
IPurchasingPackingSlipDocSetService purchasingPackingSlipDocSetService,
IFieldEntryDataUpdate fieldEntryDataUpdate,
ILogger<PurchasingOrderBuildService> logger)
{
_siteOptions = siteOptions;
_sharePointAuthenticationManager = sharePointAuthenticationManager;
_spc = spc;
_purchasingPackingSlipDocLibraryService = purchasingPackingSlipDocLibraryService;
_purchasingPackingSlipDocSetService = purchasingPackingSlipDocSetService;
_fieldEntryDataUpdate = fieldEntryDataUpdate;
_logger = logger;
}
public void CreateIfNotExists(string purchasingPackingSlipName)
{
var site = _siteOptions.GetPurchasingPackingSlipSite();
var ctx = _sharePointAuthenticationManager.GetContext(site);
var list = _siteOptions.GetPurchasingPackingSlipLibrary(purchasingPackingSlipName);
var tenant = _siteOptions.GetPurchasingPackingSlipTenat();
if (!_spc.SiteExist(ctx))
{
throw new Exception($"Impossibile to build site it don't exist");
}
if (!_spc.ListExist(ctx, list))
{
_purchasingPackingSlipDocLibraryService.Create(list, ctx);
}
if (!_spc.FolderExistsInsideList(ctx, list, purchasingPackingSlipName))
{
_purchasingPackingSlipDocSetService.Create(purchasingPackingSlipName, list, tenant, ctx);
}
else
{
_logger.LogInformation($"Quotation with {purchasingPackingSlipName} already exist");
_fieldEntryDataUpdate.FieldUpdate(ctx, list, purchasingPackingSlipName, FieldUpdateType.PurchasingPackingSlip);
}
}
}