483 lines
14 KiB
C#
483 lines
14 KiB
C#
using Disco.Services.Logging;
|
|
using Disco.Services.Logging.Models;
|
|
using Disco.Models.ClientServices;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Diagnostics;
|
|
namespace Disco.BI.DeviceBI
|
|
{
|
|
public class EnrolmentLog : LogBase
|
|
{
|
|
public enum EventTypeIds
|
|
{
|
|
SessionStarting = 10,
|
|
SessionProgress,
|
|
SessionDevice,
|
|
SessionDeviceInfo,
|
|
SessionFinished = 20,
|
|
SessionDiagnosticInformation,
|
|
SessionWarning,
|
|
SessionError,
|
|
SessionErrorWithInner,
|
|
SessionClientError,
|
|
SessionTaskAddedDevice = 50,
|
|
SessionTaskUpdatingDevice,
|
|
SessionTaskCreatedDeviceModel = 56,
|
|
SessionTaskProvisioningADAccount = 58,
|
|
SessionTaskAssigningUser = 60,
|
|
SessionTaskProvisioningWirelessCertificate = 62,
|
|
SessionTaskRenamingDevice = 64,
|
|
SessionTaskMovingDeviceOrganisationUnit = 66,
|
|
ClientError = 400
|
|
}
|
|
private const int _ModuleId = 50;
|
|
public static EnrolmentLog Current
|
|
{
|
|
get
|
|
{
|
|
return (EnrolmentLog)LogContext.LogModules[50];
|
|
}
|
|
}
|
|
public override string ModuleDescription
|
|
{
|
|
get
|
|
{
|
|
return "Device Enrolment";
|
|
}
|
|
}
|
|
public override int ModuleId
|
|
{
|
|
get
|
|
{
|
|
return 50;
|
|
}
|
|
}
|
|
public override string ModuleName
|
|
{
|
|
get
|
|
{
|
|
return "DeviceEnrolment";
|
|
}
|
|
}
|
|
[System.Diagnostics.DebuggerNonUserCode]
|
|
public EnrolmentLog()
|
|
{
|
|
}
|
|
private static void Log(EnrolmentLog.EventTypeIds EventTypeId, params object[] Args)
|
|
{
|
|
EnrolmentLog.Current.Log((int)EventTypeId, Args);
|
|
}
|
|
public static void LogSessionStarting(string SessionId, string HostId, DeviceEnrol.EnrolmentTypes EnrolmentType)
|
|
{
|
|
EnrolmentLog.Log(EnrolmentLog.EventTypeIds.SessionStarting, new object[]
|
|
{
|
|
SessionId,
|
|
HostId,
|
|
System.Enum.GetName(EnrolmentType.GetType(), EnrolmentType)
|
|
});
|
|
}
|
|
public static void LogSessionDevice(string SessionId, string DeviceSerialNumber, int? DeviceModelId)
|
|
{
|
|
EnrolmentLog.Log(EnrolmentLog.EventTypeIds.SessionDevice, new object[]
|
|
{
|
|
SessionId,
|
|
DeviceSerialNumber,
|
|
DeviceModelId
|
|
});
|
|
}
|
|
public static void LogSessionDeviceInfo(string SessionId, string SerialNumber, string UUID, string ComputerName, string LanMacAddress, string WlanMacAddress, string Manufacturer, string Model, string ModelType)
|
|
{
|
|
EnrolmentLog.Log(EnrolmentLog.EventTypeIds.SessionDeviceInfo, new object[]
|
|
{
|
|
SessionId,
|
|
SerialNumber,
|
|
UUID,
|
|
ComputerName,
|
|
LanMacAddress,
|
|
WlanMacAddress,
|
|
Manufacturer,
|
|
Model,
|
|
ModelType
|
|
});
|
|
}
|
|
public static void LogSessionDeviceInfo(string SessionId, MacEnrol Request)
|
|
{
|
|
EnrolmentLog.LogSessionDeviceInfo(SessionId, Request.DeviceSerialNumber, Request.DeviceUUID, Request.DeviceComputerName, Request.DeviceLanMacAddress, Request.DeviceWlanMacAddress, Request.DeviceManufacturer, Request.DeviceModel, Request.DeviceModelType);
|
|
}
|
|
public static void LogSessionDeviceInfo(string SessionId, Models.ClientServices.Enrol Request)
|
|
{
|
|
EnrolmentLog.LogSessionDeviceInfo(SessionId, Request.DeviceSerialNumber, Request.DeviceUUID, Request.DeviceComputerName, Request.DeviceLanMacAddress, Request.DeviceWlanMacAddress, Request.DeviceManufacturer, Request.DeviceModel, Request.DeviceModelType);
|
|
}
|
|
public static void LogSessionProgress(string SessionId, int Progress, string Status)
|
|
{
|
|
EnrolmentLog.Log(EnrolmentLog.EventTypeIds.SessionProgress, new object[]
|
|
{
|
|
SessionId,
|
|
Progress,
|
|
Status
|
|
});
|
|
}
|
|
public static void LogSessionFinished(string SessionId)
|
|
{
|
|
EnrolmentLog.Log(EnrolmentLog.EventTypeIds.SessionFinished, new object[]
|
|
{
|
|
SessionId
|
|
});
|
|
}
|
|
public static void LogSessionDiagnosticInformation(string SessionId, string Message)
|
|
{
|
|
EnrolmentLog.Log(EnrolmentLog.EventTypeIds.SessionDiagnosticInformation, new object[]
|
|
{
|
|
SessionId,
|
|
Message
|
|
});
|
|
}
|
|
public static void LogSessionWarning(string SessionId, string Message)
|
|
{
|
|
EnrolmentLog.Log(EnrolmentLog.EventTypeIds.SessionWarning, new object[]
|
|
{
|
|
SessionId,
|
|
Message
|
|
});
|
|
}
|
|
public static void LogSessionError(string SessionId, System.Exception Ex)
|
|
{
|
|
if (Ex.InnerException == null)
|
|
{
|
|
EnrolmentLog.Log(EnrolmentLog.EventTypeIds.SessionError, new object[]
|
|
{
|
|
SessionId,
|
|
Ex.GetType().Name,
|
|
Ex.Message,
|
|
Ex.StackTrace
|
|
});
|
|
}
|
|
else
|
|
{
|
|
EnrolmentLog.Log(EnrolmentLog.EventTypeIds.SessionErrorWithInner, new object[]
|
|
{
|
|
SessionId,
|
|
Ex.GetType().Name,
|
|
Ex.Message,
|
|
Ex.InnerException.GetType().Name,
|
|
Ex.InnerException.Message,
|
|
Ex.StackTrace,
|
|
Ex.InnerException.StackTrace
|
|
});
|
|
}
|
|
}
|
|
public static void LogSessionClientError(string SessionId, string ClientIP, string ClientIdentifier, string ClientVersion, string Error, string RawError)
|
|
{
|
|
EnrolmentLog.Log(EnrolmentLog.EventTypeIds.SessionClientError, new object[]
|
|
{
|
|
SessionId,
|
|
ClientIP,
|
|
ClientIdentifier,
|
|
ClientVersion,
|
|
Error,
|
|
RawError
|
|
});
|
|
}
|
|
public static void LogSessionTaskAddedDevice(string SessionId, string DeviceSerialNumber)
|
|
{
|
|
EnrolmentLog.Log(EnrolmentLog.EventTypeIds.SessionTaskAddedDevice, new object[]
|
|
{
|
|
SessionId,
|
|
DeviceSerialNumber
|
|
});
|
|
}
|
|
public static void LogSessionTaskUpdatingDevice(string SessionId, string DeviceSerialNumber)
|
|
{
|
|
EnrolmentLog.Log(EnrolmentLog.EventTypeIds.SessionTaskUpdatingDevice, new object[]
|
|
{
|
|
SessionId,
|
|
DeviceSerialNumber
|
|
});
|
|
}
|
|
public static void LogSessionTaskCreatedDeviceModel(string SessionId, string DeviceSerialNumber, string Manufacturer, string Model)
|
|
{
|
|
EnrolmentLog.Log(EnrolmentLog.EventTypeIds.SessionTaskCreatedDeviceModel, new object[]
|
|
{
|
|
SessionId,
|
|
DeviceSerialNumber,
|
|
Manufacturer,
|
|
Model
|
|
});
|
|
}
|
|
public static void LogSessionTaskProvisioningADAccount(string SessionId, string DeviceSerialNumber, string ADAccountName)
|
|
{
|
|
EnrolmentLog.Log(EnrolmentLog.EventTypeIds.SessionTaskProvisioningADAccount, new object[]
|
|
{
|
|
SessionId,
|
|
DeviceSerialNumber,
|
|
ADAccountName
|
|
});
|
|
}
|
|
public static void LogSessionTaskAssigningUser(string SessionId, string DeviceSerialNumber, string UserDisplayName, string UserUsername, string UserDomain, string UserSID)
|
|
{
|
|
EnrolmentLog.Log(EnrolmentLog.EventTypeIds.SessionTaskAssigningUser, new object[]
|
|
{
|
|
SessionId,
|
|
DeviceSerialNumber,
|
|
UserDisplayName,
|
|
UserUsername,
|
|
UserDomain,
|
|
UserSID
|
|
});
|
|
}
|
|
public static void LogSessionTaskProvisioningWirelessCertificate(string SessionId, string DeviceSerialNumber, string CertificateName)
|
|
{
|
|
EnrolmentLog.Log(EnrolmentLog.EventTypeIds.SessionTaskProvisioningWirelessCertificate, new object[]
|
|
{
|
|
SessionId,
|
|
DeviceSerialNumber,
|
|
CertificateName
|
|
});
|
|
}
|
|
public static void LogSessionTaskRenamingDevice(string SessionId, string OldComputerName, string NewComputerName)
|
|
{
|
|
EnrolmentLog.Log(EnrolmentLog.EventTypeIds.SessionTaskRenamingDevice, new object[]
|
|
{
|
|
SessionId,
|
|
OldComputerName,
|
|
NewComputerName
|
|
});
|
|
}
|
|
public static void LogSessionTaskMovingDeviceOrganisationUnit(string SessionId, string OldOrganisationUnit, string NewOrganisationUnit)
|
|
{
|
|
EnrolmentLog.Log(EnrolmentLog.EventTypeIds.SessionTaskMovingDeviceOrganisationUnit, new object[]
|
|
{
|
|
SessionId,
|
|
OldOrganisationUnit,
|
|
NewOrganisationUnit
|
|
});
|
|
}
|
|
public static void LogClientError(string ClientIP, string ClientIdentifier, string ClientVersion, string Error, string RawError)
|
|
{
|
|
EnrolmentLog.Log(EnrolmentLog.EventTypeIds.ClientError, new object[]
|
|
{
|
|
ClientIP,
|
|
ClientIdentifier,
|
|
ClientVersion,
|
|
Error,
|
|
RawError
|
|
});
|
|
}
|
|
protected override System.Collections.Generic.List<LogEventType> LoadEventTypes()
|
|
{
|
|
return new System.Collections.Generic.List<LogEventType>
|
|
{
|
|
new LogEventType
|
|
{
|
|
Id = 10,
|
|
ModuleId = 50,
|
|
Name = "Session Starting",
|
|
Format = "Starting '{2}' Enrolment for {1} (Session# {0})",
|
|
Severity = 0,
|
|
UseLive = true,
|
|
UsePersist = true,
|
|
UseDisplay = true
|
|
},
|
|
new LogEventType
|
|
{
|
|
Id = 12,
|
|
ModuleId = 50,
|
|
Name = "Session Device",
|
|
Format = null,
|
|
Severity = 0,
|
|
UseLive = true,
|
|
UsePersist = true,
|
|
UseDisplay = false
|
|
},
|
|
new LogEventType
|
|
{
|
|
Id = 11,
|
|
ModuleId = 50,
|
|
Name = "Session Progress",
|
|
Format = "Processing Session# {0}; {1}% Complete; Status: {2}",
|
|
Severity = 0,
|
|
UseLive = true,
|
|
UsePersist = false,
|
|
UseDisplay = false
|
|
},
|
|
new LogEventType
|
|
{
|
|
Id = 13,
|
|
ModuleId = 50,
|
|
Name = "Session Device Info",
|
|
Format = null,
|
|
Severity = 0,
|
|
UseLive = true,
|
|
UsePersist = true,
|
|
UseDisplay = true
|
|
},
|
|
new LogEventType
|
|
{
|
|
Id = 20,
|
|
ModuleId = 50,
|
|
Name = "Session Finished",
|
|
Format = "Finished Session# {0}",
|
|
Severity = 0,
|
|
UseLive = true,
|
|
UsePersist = true,
|
|
UseDisplay = true
|
|
},
|
|
new LogEventType
|
|
{
|
|
Id = 21,
|
|
ModuleId = 50,
|
|
Name = "Session Diagnostic Information",
|
|
Format = null,
|
|
Severity = 0,
|
|
UseLive = true,
|
|
UsePersist = false,
|
|
UseDisplay = false
|
|
},
|
|
new LogEventType
|
|
{
|
|
Id = 22,
|
|
ModuleId = 50,
|
|
Name = "Session Warning",
|
|
Format = null,
|
|
Severity = 1,
|
|
UseLive = true,
|
|
UsePersist = true,
|
|
UseDisplay = true
|
|
},
|
|
new LogEventType
|
|
{
|
|
Id = 23,
|
|
ModuleId = 50,
|
|
Name = "Session Error",
|
|
Format = "An Error Occurred: [{1}] {2}",
|
|
Severity = 2,
|
|
UseLive = true,
|
|
UsePersist = true,
|
|
UseDisplay = true
|
|
},
|
|
new LogEventType
|
|
{
|
|
Id = 24,
|
|
ModuleId = 50,
|
|
Name = "Session Error with Internal",
|
|
Format = "An Error Occurred: [{1}] {2}; Internal Error: [{3}] {4}",
|
|
Severity = 2,
|
|
UseLive = true,
|
|
UsePersist = true,
|
|
UseDisplay = true
|
|
},
|
|
new LogEventType
|
|
{
|
|
Id = (int)EventTypeIds.SessionClientError,
|
|
ModuleId = _ModuleId,
|
|
Name = "Client Error",
|
|
Format = "IP: {1}; Device ID: {2}; Version: {3} Error: {4}; Session# {0}",
|
|
Severity = (int)LogEventType.Severities.Error,
|
|
UseLive = true,
|
|
UsePersist = true,
|
|
UseDisplay = true
|
|
},
|
|
new LogEventType
|
|
{
|
|
Id = 50,
|
|
ModuleId = 50,
|
|
Name = "Task - Added Device",
|
|
Format = "Creating Disco Device {1}",
|
|
Severity = 0,
|
|
UseLive = true,
|
|
UsePersist = true,
|
|
UseDisplay = true
|
|
},
|
|
new LogEventType
|
|
{
|
|
Id = 51,
|
|
ModuleId = 50,
|
|
Name = "Task - Updating Device",
|
|
Format = "Updating Disco Device {1}",
|
|
Severity = 0,
|
|
UseLive = true,
|
|
UsePersist = true,
|
|
UseDisplay = true
|
|
},
|
|
new LogEventType
|
|
{
|
|
Id = 56,
|
|
ModuleId = 50,
|
|
Name = "Task - Creating Device Model",
|
|
Format = "Creating Device Model '{2} {3}' for Device {1}",
|
|
Severity = 0,
|
|
UseLive = true,
|
|
UsePersist = true,
|
|
UseDisplay = true
|
|
},
|
|
new LogEventType
|
|
{
|
|
Id = 58,
|
|
ModuleId = 50,
|
|
Name = "Task - Provisioning Active Directory Account",
|
|
Format = "Provisioning Active Directory Account '{2}' for Device {1}",
|
|
Severity = 0,
|
|
UseLive = true,
|
|
UsePersist = true,
|
|
UseDisplay = true
|
|
},
|
|
new LogEventType
|
|
{
|
|
Id = 60,
|
|
ModuleId = 50,
|
|
Name = "Task - Assigning User",
|
|
Format = "Assigning User '{2}' ({4}\\{3} {{{5}}}) for Device {1}",
|
|
Severity = 0,
|
|
UseLive = true,
|
|
UsePersist = true,
|
|
UseDisplay = true
|
|
},
|
|
new LogEventType
|
|
{
|
|
Id = 62,
|
|
ModuleId = 50,
|
|
Name = "Task - Provisioning Wireless Certificate",
|
|
Format = "Provisioning Wireless Certificate '{2}' for Device {1}",
|
|
Severity = 0,
|
|
UseLive = true,
|
|
UsePersist = true,
|
|
UseDisplay = true
|
|
},
|
|
new LogEventType
|
|
{
|
|
Id = 64,
|
|
ModuleId = 50,
|
|
Name = "Task - Renaming Device",
|
|
Format = "Renaming Device '{1}' to '{2}'",
|
|
Severity = 0,
|
|
UseLive = true,
|
|
UsePersist = true,
|
|
UseDisplay = true
|
|
},
|
|
new LogEventType
|
|
{
|
|
Id = 66,
|
|
ModuleId = 50,
|
|
Name = "Task - Moving Device Organisation Unit",
|
|
Format = "Moving Device Organisation Unit '{1}' to '{2}'",
|
|
Severity = 0,
|
|
UseLive = true,
|
|
UsePersist = true,
|
|
UseDisplay = true
|
|
},
|
|
new LogEventType
|
|
{
|
|
Id = (int)EventTypeIds.ClientError,
|
|
ModuleId = _ModuleId,
|
|
Name = "Client Error",
|
|
Format = "IP: {0}; Device ID: {1}; Version: {2} Error: {3}",
|
|
Severity = (int)LogEventType.Severities.Error,
|
|
UseLive = true,
|
|
UsePersist = true,
|
|
UseDisplay = true
|
|
}
|
|
};
|
|
}
|
|
}
|
|
}
|