Initialer Status
This commit is contained in:
500
F4SDHelper/Common/C4IT.FASD.Base.cs
Normal file
500
F4SDHelper/Common/C4IT.FASD.Base.cs
Normal 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; }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user