# Class JoinOutcome | EchoHub Documentation
Result of joining a channel: decrypted history plus, for end-to-end encrypted channels, the key envelope needed to unlock the room content key.

# Class JoinOutcome

Namespace
  EchoHub.Client.Services

Assembly
  EchoHub.Client.dll

Result of joining a channel: decrypted history plus, for end-to-end encrypted channels, the key envelope needed to unlock the room content key.

    public sealed record JoinOutcome : IEquatable<JoinOutcome>

Inheritance
  object
  JoinOutcome

Implements
  IEquatable<JoinOutcome>

Inherited Members
  object.GetType()
  object.Equals(object, object)
  object.ReferenceEquals(object, object)

## Constructors

### JoinOutcome(List<MessageDto>, string?, string?)

Result of joining a channel: decrypted history plus, for end-to-end encrypted channels, the key envelope needed to unlock the room content key.

    public JoinOutcome(List<MessageDto> History, string? EncryptionSalt, string? WrappedRoomKey)

#### Parameters

`History` List<MessageDto>
`EncryptionSalt` string
`WrappedRoomKey` string

## Properties

### EncryptionSalt

    public string? EncryptionSalt { get; init; }

#### Property Value

string

### History

    public List<MessageDto> History { get; init; }

#### Property Value

List<MessageDto>

### WrappedRoomKey

    public string? WrappedRoomKey { get; init; }

#### Property Value

string

## Methods

### Deconstruct(out List<MessageDto>, out string?, out string?)

    public void Deconstruct(out List<MessageDto> History, out string? EncryptionSalt, out string? WrappedRoomKey)

#### Parameters

`History` List<MessageDto>
`EncryptionSalt` string
`WrappedRoomKey` string

### Equals(JoinOutcome?)

    public bool Equals(JoinOutcome? other)

#### Parameters

`other` JoinOutcome

#### Returns

bool

### Equals(object?)

    public override bool Equals(object? obj)

#### Parameters

`obj` object

#### Returns

bool

### GetHashCode()

    public override int GetHashCode()

#### Returns

int

### ToString()

    public override string ToString()

#### Returns

string

## Operators

### operator ==(JoinOutcome?, JoinOutcome?)

    public static bool operator ==(JoinOutcome? left, JoinOutcome? right)

#### Parameters

`left` JoinOutcome
`right` JoinOutcome

#### Returns

bool

### operator !=(JoinOutcome?, JoinOutcome?)

    public static bool operator !=(JoinOutcome? left, JoinOutcome? right)

#### Parameters

`left` JoinOutcome
`right` JoinOutcome

#### Returns

bool