using System;
using System.Collections.Generic;
using System.Reflection;
using System.Xml;
using Newtonsoft.Json;
using C4IT.Configuration;
using C4IT.FASD.Base;
using C4IT.Logging;
using C4IT.XML;
using static C4IT.Logging.cLogManager;
using static C4IT.Configuration.cConfigRegistryHelper;
namespace C4IT.DataHistoryProvider
{
public class cDataHistoryConfigGolabalParameters : cFasdBaseConfig
{
public const string constFileNameF4sdConfig = "F4SD-Global-Configuration.xml";
private const string constFileNameF4sdSchema = "F4SD-Global-Configuration.xsd";
private const string constConfigRootElement = "F4SD-Global-Configuration";
public cConfigHelperParameterList Parameters { get; private set; } = null;
private cDataHistoryConfigInfrastructure InfrastructureConfig = null;
internal cDataHistoryConfigGolabalParameters(cDataHistoryConfigInfrastructure configInfrastructure) :
base(constFileNameF4sdConfig, constFileNameF4sdSchema, constConfigRootElement, true)
{
InfrastructureConfig = configInfrastructure;
}
public override bool InstantiateProperties(XmlElement RootElement, cXmlParser Parser)
{
MethodBase CM = null; if (cLogManager.DefaultLogger.IsDebug) { CM = MethodBase.GetCurrentMethod(); LogMethodBegin(CM); }
try
{
Parameters = LoadParameters(RootElement, Parser );
var _s = JsonConvert.SerializeObject(Parameters, Newtonsoft.Json.Formatting.Indented);
this.IsValid = true;
return true;
}
catch (Exception E)
{
LogException(E);
}
finally
{
if (CM != null) LogMethodEnd(CM);
}
return false;
}
private cConfigHelperParameterList LoadParameters (XmlElement XRoot, cXmlParser Parser)
{
MethodBase CM = null; if (cLogManager.DefaultLogger.IsDebug) { CM = MethodBase.GetCurrentMethod(); LogMethodBegin(CM); }
try
{
return cF4sdGlobalConfigParameterParser.Parse(XRoot, Parser);
}
catch (Exception E)
{
LogException(E);
}
finally
{
if (CM != null) LogMethodEnd(CM);
}
return new cConfigHelperParameterList();
}
public override bool DoXmlUpdates(XmlElement XmlRoot, bool withM42Config = false, bool withIntuneConfig = false, bool withMobileDeviceConfig = false, bool withCitrixConfig = false)
{
MethodBase CM = null; if (cLogManager.DefaultLogger.IsDebug) { CM = MethodBase.GetCurrentMethod(); LogMethodBegin(CM); }
var RetVal = false;
try
{
RetVal |= DoXmlInsertElement(XmlRoot
, ""
, "ShouldSkipSlimView"
, ""
);
RetVal |= DoXmlInsertElement(XmlRoot
, ""
, "SmallViewAlignment"
, ""
);
RetVal |= DoXmlInsertElement(XmlRoot
, ""
, "FavouriteBarAlignment"
, ""
);
RetVal |= DoXmlInsertElement(XmlRoot
, ""
, "InformationClassSearchPriority"
, ""
);
RetVal |= DoXmlInsertElement(XmlRoot
, "InformationClassSearchPriority"
, "InformationClass[@Type='User']"
, ""
);
RetVal |= DoXmlInsertElement(XmlRoot
, "InformationClassSearchPriority"
, "InformationClass[@Type='Computer']"
, ""
);
RetVal |= DoXmlInsertElement(XmlRoot
, "InformationClassSearchPriority"
, "InformationClass[@Type='VirtualSession']"
, ""
);
RetVal |= DoXmlInsertElement(XmlRoot
, "InformationClassSearchPriority"
, "InformationClass[@Type='Ticket']"
, ""
);
RetVal |= DoXmlInsertElement(XmlRoot
, ""
, "TicketConfiguration"
, ""
);
RetVal |= DoXmlInsertElement(XmlRoot
, "TicketConfiguration"
, "NotesMandatory"
, ""
);
RetVal |= DoXmlInsertElement(XmlRoot
, "TicketConfiguration"
, "ShowOverview"
, ""
);
RetVal |= DoXmlInsertElement(XmlRoot
, "TicketConfiguration"
, "OpenActivitiesExternally"
, ""
);
RetVal |= DoXmlInsertElement(XmlRoot
, "TicketConfiguration/OpenActivitiesExternally"
, "OpenActivityOverride[@ActivityType='SPSActivityTypeTicket']"
, ""
);
RetVal |= DoXmlInsertElement(XmlRoot
, "TicketConfiguration/OpenActivitiesExternally"
, "OpenActivityOverride[@ActivityType='SPSActivityTypeServiceRequest']"
, ""
);
RetVal |= DoXmlInsertElement(XmlRoot
, "TicketConfiguration"
, "OverviewPollingPersonal"
, $""
);
RetVal |= DoXmlInsertElement(XmlRoot
, "TicketConfiguration"
, "OverviewPollingRole"
, $""
);
#pragma warning disable CS0618 // Type or member is obsolete
var oldShowDocumentCaseDialog = InfrastructureConfig?.M42Wpm?.ShowDocumentCaseDialog ?? enumShowDocumentCaseDialog.ifRequired;
var oldDisableAutomaticTimeTracking = InfrastructureConfig?.M42Wpm?.DisableAutomaticTimeTracking ?? false;
#pragma warning restore CS0618 // Type or member is obsolete
RetVal |= DoXmlInsertElement(XmlRoot
, "TicketConfiguration"
, "CompletitionPolicy"
, $""
);
RetVal |= DoXmlInsertElement(XmlRoot
, "TicketConfiguration"
, "DisableAutomaticTimeTracking"
, $""
);
}
catch (Exception E)
{
LogException(E);
}
finally
{
if (CM != null) LogMethodEnd(CM);
}
return RetVal;
}
}
}