using System; namespace ScreenConnect; public class SessionRequest { public Guid RequestID { get; init; } public Guid CredentialProviderInstanceID { get; init; } public CredentialProviderScenarioType CredentialProviderScenarioType { get; init; } public Utf8String RequestData { get; init; } public SessionConnectionInfoAttributes RequiredConnectionAttributesToRespond { get; init; } public override bool Equals(object obj) { if (obj is SessionRequest sessionRequest && sessionRequest.RequestID == RequestID && sessionRequest.CredentialProviderInstanceID == CredentialProviderInstanceID && sessionRequest.CredentialProviderScenarioType == CredentialProviderScenarioType && sessionRequest.RequestData == RequestData) { return sessionRequest.RequiredConnectionAttributesToRespond == RequiredConnectionAttributesToRespond; } return false; } public override int GetHashCode() { return HashCode.Seed.And(RequestID).And(CredentialProviderInstanceID).And(CredentialProviderScenarioType) .And(RequestData) .And(RequiredConnectionAttributesToRespond); } }