Initialer Status

This commit is contained in:
Meik
2026-01-28 12:27:00 +01:00
commit 4112d6019f
35 changed files with 3478 additions and 0 deletions

View File

@@ -0,0 +1,500 @@
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using static C4IT.Logging.cLogManager;
namespace C4IT.FASD.Base
{
public enum enumFasdInformationClass
{
Unknown = -1,
Main = 0,
Computer = 1,
User = 2,
Ticket = 3
}
public enum enumF4sdSearchResultClass
{
Unknown = -1,
Computer = 0,
User = 1,
Phone = 2,
Ticket = 3
}
public enum enumF4sdSearchResultStatus
{
Unknown = -1,
Inactive = 0,
Active = 1
}
public enum enumFasdValueType
{
Unknown = 0,
STRING = 1,
GUID = 2,
INT = 3,
BIGINT = 4,
FLOAT = 5,
DATETIME = 6,
VERSION = 7,
MD5 = 8,
SID = 9,
IPV4 = 10,
IPV6 = 11,
TEXT = 12,
BOOLEAN = 13,
AUTOID = 255
};
public enum enumFasdCharCaseType { none = 0, lower = 1, upper = 2 };
public enum enumFasdConfigurationType
{
unknown = 0,
commonIcons,
menuSections,
quickActions,
copyTemplates,
healthCard
}
public class cFasdApiConnectionInfo
{
public string ServerVersion { get; set; }
public string MinCockpitVersion { get; set; }
public UInt64 ConfigRevision { get; set; } = 0;
}
public class cAgentApiConfiguration
{
public string LogonUrl { get; set; }
public string ApiUrl { get; set; }
public string ClientId { get; set; }
public string ClientSecret { get; set; }
public int? OrganizationCode { get; set; }
[JsonIgnore]
public static cAgentApiConfiguration Instance { get; set; }
}
public class cFasdApiSearchResultDefault
{
public enumF4sdSearchResultClass Type { get; set; }
public string Name { get; set; }
public Guid id { get; set; }
public enumF4sdSearchResultStatus Status { get; set; } = enumF4sdSearchResultStatus.Unknown;
public Dictionary<string, string> Infos { get; set; } = null;
static public enumF4sdSearchResultClass getSearchClass(enumFasdInformationClass infoClass)
{
switch (infoClass)
{
case enumFasdInformationClass.User:
return enumF4sdSearchResultClass.User;
case enumFasdInformationClass.Computer:
return enumF4sdSearchResultClass.Computer;
default:
return enumF4sdSearchResultClass.Unknown;
}
}
}
public class cF4sdIdentityEntry
{
public enumFasdInformationClass Class { get; set; }
public Guid Id { get; set; }
public static enumFasdInformationClass GetFromSearchResult(enumF4sdSearchResultClass searchResult)
{
var infoClass = enumFasdInformationClass.Unknown;
switch (searchResult)
{
case enumF4sdSearchResultClass.Computer:
infoClass = enumFasdInformationClass.Computer;
break;
case enumF4sdSearchResultClass.User:
case enumF4sdSearchResultClass.Phone:
infoClass = enumFasdInformationClass.User;
break;
}
return infoClass;
}
}
public class cF4sdApiSearchResultRelation : cFasdApiSearchResultDefault
{
public DateTime LastUsed { get; set; }
public double UsingLevel { get; set; }
public List<cF4sdIdentityEntry> Identities { get; set; } = null;
}
public class cF4sdHealthCardRawDataRequest
{
public List<string> Tables { get; set; }
public List<cF4sdIdentityEntry> Identities { get; set; }
public int MaxAge { get; set; } = 14;
public DateTime RefTime { get; set; } = DateTime.Now.Date.ToUniversalTime();
}
public class cF4SDHealthCardRawData
{
public class cHealthCardTableColumn
{
public string ColumnName { get; set; }
public List<object> Values { get; set; } = new List<object>();
public bool IsIncomplete { get; set; } = false;
}
public class cHealthCardTable
{
public string Name { get; set; }
public int StartingIndex { get; set; } = 0;
public bool IsIncomplete { get; set; } = false;
public bool IsStatic { get; set; }
public DateTime[,] TimeFrames { get; set; }
public Dictionary<string, cHealthCardTableColumn> Columns { get; set; } = new Dictionary<string, cHealthCardTableColumn>();
}
public class cHealthCardDetailsTable
{
public string Name { get; set; }
public List<string> Columns { get; set; }
public Dictionary<int, List<object[]>> Values { get; set; }
}
public Guid Id { get; set; }
public Dictionary<string, cHealthCardTable> Tables { get; set; } = new Dictionary<string, cHealthCardTable>();
#region GetObjects
#region GetInteger
public static int? GetInteger(object Value, int? Default = null)
{
int? output = Default;
if (Value == null)
return output;
try
{
var valuetype = Value.GetType();
if (Value is int @int)
output = @int;
if (Value is Int64 @int64)
output = Convert.ToInt32(@int64);
else if (Value is double @double)
output = Convert.ToInt32(@double);
else if (Value is string @string)
{
if (int.TryParse(@string, out int parsedInt))
output = parsedInt;
else
output = Default;
}
}
catch (Exception E)
{
LogException(E);
}
return output;
}
public int? GetIntegerByAddressInfo(string TableName, string TableColumn, int index = 0, int? Default = null)
{
int? output = Default;
try
{
if (Tables.TryGetValue(TableName, out var selectedTable))
if (selectedTable.Columns.TryGetValue(TableColumn, out var selectedColumn))
output = GetInteger(selectedColumn.Values[index], Default);
}
catch (Exception E)
{
LogException(E);
}
return output;
}
#endregion
#region GetString
public static string GetString(object Value, string Default = null)
{
string output = Default;
try
{
if (Value is int @int)
output = Convert.ToString(@int);
else if (Value is double @double)
output = Convert.ToString(@double);
else if (Value is string @string)
output = @string;
}
catch (Exception E)
{
LogException(E);
}
return output?.ToString();
}
public string GetStringByAddressInfo(string TableName, string TableColumn, int index = 0, string Default = null)
{
string output = Default;
try
{
if (Tables.TryGetValue(TableName, out var selectedTable))
if (selectedTable.Columns.TryGetValue(TableColumn, out var selectedColumn))
output = GetString(selectedColumn.Values[index], Default);
}
catch (Exception E)
{
LogException(E);
}
return output;
}
#endregion
#region GetVersion
public static Version GetVersion(object Value, Version Default = null)
{
Version output = Default;
if (Value == null)
return output;
try
{
if (Value is string @string)
{
if (Version.TryParse(@string, out var tempVersionFromString))
output = tempVersionFromString;
}
}
catch (Exception E)
{
LogException(E);
}
return output;
}
public Version GetVersionByAddressInfo(string TableName, string TableColumn, int index = 0, Version Default = null)
{
Version output = Default;
try
{
if (Tables.TryGetValue(TableName, out var selectedTable))
if (selectedTable.Columns.TryGetValue(TableColumn, out var selectedColumn))
output = GetVersion(selectedColumn.Values[index], Default);
}
catch (Exception E)
{
LogException(E);
}
return output;
}
#endregion
#region GetDateTime
public static DateTime? GetDateTime(object Value, DateTime? Default = null)
{
DateTime? output = Default;
if (Value == null)
return output;
try
{
if (Value is DateTime time)
output = time;
else if (Value is string @string)
{
var tempOutput = Convert.ToDateTime(@string);
DateTime.SpecifyKind(tempOutput, DateTimeKind.Utc);
if (tempOutput != null)
output = tempOutput;
else
output = Default;
}
}
catch (Exception E)
{
LogException(E);
}
return output;
}
public DateTime? GetDateTimeByAddressInfo(string TableName, string TableColumn, int index = 0, DateTime? Default = null)
{
DateTime? output = Default;
try
{
if (Tables.TryGetValue(TableName, out var selectedTable))
if (selectedTable.Columns.TryGetValue(TableColumn, out var selectedColumn))
output = GetDateTime(selectedColumn.Values[index], Default);
}
catch (Exception E)
{
LogException(E);
}
return output;
}
#endregion
#region GetDouble
public static double? GetDouble(object Value, double? Default = null)
{
double? output = Default;
try
{
if (Value is int @int)
output = Convert.ToDouble(@int);
else if (Value is Int64 @int64)
output = Convert.ToDouble(@int64);
else if (Value is double @double)
output = @double;
else if (Value is string @string)
{
if (double.TryParse(@string, System.Globalization.NumberStyles.Any, System.Globalization.CultureInfo.GetCultureInfo("en-US").NumberFormat, out double tempOutput))
output = tempOutput;
else
output = Default;
}
}
catch (Exception E)
{
LogException(E);
}
return output;
}
public double? GetDoubleByAddressInfo(string TableName, string TableColumn, int index = 0, double? Default = null)
{
double? output = Default;
try
{
if (Tables.TryGetValue(TableName, out var selectedTable))
if (selectedTable.Columns.TryGetValue(TableColumn, out var selectedColumn))
output = GetDouble(selectedColumn.Values[index], Default);
}
catch (Exception E)
{
LogException(E);
}
return output;
}
#endregion
#endregion
}
public class cApiM42TicketQueueInfo
{
public string QueueName { get; set; }
public Guid QueueID { get; set; }
}
public class cF4SDTicketSummary
{
public Guid TicketObjectId { get; set; }
public string Name { get; set; }
public string ActivityType { get; set; }
public string Summary { get; set; }
public string Sid { get; set; }
public string Status { get; set; }
public int StatusId { get; set; }
public string Urgency { get; set; }
public int UrgencyId { get; set; }
public string Impact { get; set; }
public int ImpactId { get; set; }
public string AssetCIName { get; set; }
public string AssetName { get; set; }
public string ServiceName { get; set; }
public Guid ServiceId { get; set; }
public bool IsPrimaryAccount { get; set; }
}
public class cF4SDTicket : cF4SDTicketSummary
{
public enum enumTicketCreationSource
{
Unknown = 0,
Mail = 1,
Phone = 2,
F4SD = 3
}
public class cTicketJournalItem
{
public DateTime CreationDate { get; set; }
public string Header { get; set; }
public string CreatedBy { get; set; }
public string DescriptionHtml { get; set; }
public string Description { get; set; }
public bool IsVisibleForUser { get; set; }
public Guid ActivityObjectId { get; set; }
public Guid JournalId { get; set; }
}
public Guid AffectedUserId { get; set; }
public Guid AssetId { get; set; }
public DateTime CreationDate { get; set; }
public DateTime? ClosingDate { get; set; }
public int CreationSourceId { get; set; }
public string CreationSource { get; set; }
public string Description { get; set; }
public string DescriptionHtml { get; set; }
public int PriorityId { get; set; }
public string Priority { get; set; }
public Guid CategoryId { get; set; }
public string Category { get; set; }
public string CategoryHierarchical { get; set; }
public string CIName { get; set; }
public string DirectLinkEdit { get; set; }
public Guid AssetCIId { get; set; }
public int AssetSKUAssetGroupId { get; set; }
public string AssetSKUAssetGroup { get; set; }
public int AssetSKUTypeId { get; set; }
public string AssetSKUType { get; set; }
public string DirectLinkPreview { get; set; }
public string DirectLinkClose { get; set; }
public string AffectedUser { get; set; }
public string SolutionHtml { get; set; }
public string Solution { get; set; }
public string AssetDomain { get; set; }
}
}