using Google.Protobuf.WellKnownTypes; using ZB.MOM.WW.MxGateway.Contracts.Proto; namespace ZB.MOM.WW.MxGateway.Server.Sessions; public sealed record SessionOpenRequest( string? RequestedBackend, string? ClientSessionName, string? ClientCorrelationId, Duration? CommandTimeout) { /// Creates a SessionOpenRequest from a gRPC OpenSessionRequest contract. /// Request payload. public static SessionOpenRequest FromContract(OpenSessionRequest request) { ArgumentNullException.ThrowIfNull(request); return new SessionOpenRequest( request.RequestedBackend, request.ClientSessionName, request.ClientCorrelationId, request.CommandTimeout); } }