Files
DP44/Common/DTS.Common.Import/.svn/pristine/e6/e64f97cea3261ec2a24b3864a7a65d244628ad61.svn-base

47 lines
1.8 KiB
Plaintext
Raw Permalink Normal View History

2026-04-17 14:55:32 -04:00
using DTS.Slice.Users;
using System;
using System.Collections.Generic;
using System.Linq;
namespace DTS.Common.Import
{
public class DTSXMLParseImport : IParseImport
{
private ImportObject _importObject;
private readonly Func<bool> _isCancelled;
private readonly IImportNotification _importNotification;
private readonly bool _skipNormalizing;
public List<IUIItems> UIItems { get; set; }
public DTSXMLParseImport(ImportObject importObject, IImportNotification importNotification, Func<bool> isCancelled = null, bool skipNormalizing = false)
{
_isCancelled = isCancelled;
_importObject = importObject;
_importNotification = importNotification;
_skipNormalizing = skipNormalizing;
}
public ImportObject Parse(IEnumerable<string> importFiles)
{
XMLParseProcessor parseProcesser = new XMLParseProcessor(_importObject, _importNotification, importFiles, _isCancelled, _skipNormalizing);
parseProcesser.UIItems = UIItems;
_importObject = parseProcesser.Process();
AssignLinkedDASSerials(ref _importObject);
return _importObject;
}
private void AssignLinkedDASSerials(ref ImportObject importObject)
{
foreach (var h in importObject.Hardware())
{
if (!h.IsPseudoRack()) continue;
var matches = from hw in importObject.Hardware() where hw.ParentDAS == h.SerialNumber select hw.SerialNumber;
var enumerable = matches as string[] ?? matches.ToArray();
if (enumerable.Any())
{
h.LinkedDASSerials = enumerable.ToArray();
}
}
}
}
}