Esempio n. 1
0
        internal static ChatParticipantInternal DeserializeChatParticipantInternal(JsonElement element)
        {
            CommunicationIdentifierModel communicationIdentifier = default;
            Optional <string>            displayName             = default;
            Optional <DateTimeOffset>    shareHistoryTime        = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("communicationIdentifier"))
                {
                    communicationIdentifier = CommunicationIdentifierModel.DeserializeCommunicationIdentifierModel(property.Value);
                    continue;
                }
                if (property.NameEquals("displayName"))
                {
                    displayName = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("shareHistoryTime"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    shareHistoryTime = property.Value.GetDateTimeOffset("O");
                    continue;
                }
            }
            return(new ChatParticipantInternal(communicationIdentifier, displayName.Value, Optional.ToNullable(shareHistoryTime)));
        }
Esempio n. 2
0
        internal static ParticipantInput DeserializeParticipantInput(JsonElement element)
        {
            CommunicationIdentifierModel id = default;
            Optional <string>            placeholderImageUri = default;
            string call = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("id"))
                {
                    id = CommunicationIdentifierModel.DeserializeCommunicationIdentifierModel(property.Value);
                    continue;
                }
                if (property.NameEquals("placeholderImageUri"))
                {
                    placeholderImageUri = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("call"))
                {
                    call = property.Value.GetString();
                    continue;
                }
            }
            return(new ParticipantInput(id, placeholderImageUri.Value, call));
        }
Esempio n. 3
0
        internal static ChatMessageReadReceiptInternal DeserializeChatMessageReadReceiptInternal(JsonElement element)
        {
            CommunicationIdentifierModel senderCommunicationIdentifier = default;
            string         chatMessageId = default;
            DateTimeOffset readOn        = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("senderCommunicationIdentifier"))
                {
                    senderCommunicationIdentifier = CommunicationIdentifierModel.DeserializeCommunicationIdentifierModel(property.Value);
                    continue;
                }
                if (property.NameEquals("chatMessageId"))
                {
                    chatMessageId = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("readOn"))
                {
                    readOn = property.Value.GetDateTimeOffset("O");
                    continue;
                }
            }
            return(new ChatMessageReadReceiptInternal(senderCommunicationIdentifier, chatMessageId, readOn));
        }
Esempio n. 4
0
        internal static CallParticipantInternal DeserializeCallParticipantInternal(JsonElement element)
        {
            Optional <CommunicationIdentifierModel> identifier = default;
            Optional <string> participantId = default;
            bool isMuted = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("identifier"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    identifier = CommunicationIdentifierModel.DeserializeCommunicationIdentifierModel(property.Value);
                    continue;
                }
                if (property.NameEquals("participantId"))
                {
                    participantId = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("isMuted"))
                {
                    isMuted = property.Value.GetBoolean();
                    continue;
                }
            }
            return(new CallParticipantInternal(identifier.Value, participantId.Value, isMuted));
        }
Esempio n. 5
0
        internal static ChatMessageContentInternal DeserializeChatMessageContentInternal(JsonElement element)
        {
            Optional <string> message = default;
            Optional <string> topic   = default;
            Optional <IReadOnlyList <ChatParticipantInternal> > participants = default;
            Optional <CommunicationIdentifierModel>             initiatorCommunicationIdentifier = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("message"))
                {
                    message = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("topic"))
                {
                    topic = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("participants"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    List <ChatParticipantInternal> array = new List <ChatParticipantInternal>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(ChatParticipantInternal.DeserializeChatParticipantInternal(item));
                    }
                    participants = array;
                    continue;
                }
                if (property.NameEquals("initiatorCommunicationIdentifier"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    initiatorCommunicationIdentifier = CommunicationIdentifierModel.DeserializeCommunicationIdentifierModel(property.Value);
                    continue;
                }
            }
            return(new ChatMessageContentInternal(message.Value, topic.Value, Optional.ToList(participants), initiatorCommunicationIdentifier.Value));
        }
Esempio n. 6
0
        internal static ChatThreadPropertiesInternal DeserializeChatThreadPropertiesInternal(JsonElement element)
        {
            string         id        = default;
            string         topic     = default;
            DateTimeOffset createdOn = default;
            CommunicationIdentifierModel createdByCommunicationIdentifier = default;
            Optional <DateTimeOffset>    deletedOn = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("id"))
                {
                    id = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("topic"))
                {
                    topic = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("createdOn"))
                {
                    createdOn = property.Value.GetDateTimeOffset("O");
                    continue;
                }
                if (property.NameEquals("createdByCommunicationIdentifier"))
                {
                    createdByCommunicationIdentifier = CommunicationIdentifierModel.DeserializeCommunicationIdentifierModel(property.Value);
                    continue;
                }
                if (property.NameEquals("deletedOn"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    deletedOn = property.Value.GetDateTimeOffset("O");
                    continue;
                }
            }
            return(new ChatThreadPropertiesInternal(id, topic, createdOn, createdByCommunicationIdentifier, Optional.ToNullable(deletedOn)));
        }
        internal static ChatMessageInternal DeserializeChatMessageInternal(JsonElement element)
        {
            string          id         = default;
            ChatMessageType type       = default;
            string          sequenceId = default;
            string          version    = default;
            Optional <ChatMessageContentInternal> content = default;
            Optional <string> senderDisplayName           = default;
            DateTimeOffset    createdOn = default;
            Optional <CommunicationIdentifierModel> senderCommunicationIdentifier = default;
            Optional <DateTimeOffset> deletedOn = default;
            Optional <DateTimeOffset> editedOn  = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("id"))
                {
                    id = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("type"))
                {
                    type = new ChatMessageType(property.Value.GetString());
                    continue;
                }
                if (property.NameEquals("sequenceId"))
                {
                    sequenceId = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("version"))
                {
                    version = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("content"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    content = ChatMessageContentInternal.DeserializeChatMessageContentInternal(property.Value);
                    continue;
                }
                if (property.NameEquals("senderDisplayName"))
                {
                    senderDisplayName = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("createdOn"))
                {
                    createdOn = property.Value.GetDateTimeOffset("O");
                    continue;
                }
                if (property.NameEquals("senderCommunicationIdentifier"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    senderCommunicationIdentifier = CommunicationIdentifierModel.DeserializeCommunicationIdentifierModel(property.Value);
                    continue;
                }
                if (property.NameEquals("deletedOn"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    deletedOn = property.Value.GetDateTimeOffset("O");
                    continue;
                }
                if (property.NameEquals("editedOn"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    editedOn = property.Value.GetDateTimeOffset("O");
                    continue;
                }
            }
            return(new ChatMessageInternal(id, type, sequenceId, version, content.Value, senderDisplayName.Value, createdOn, senderCommunicationIdentifier.Value, Optional.ToNullable(deletedOn), Optional.ToNullable(editedOn)));
        }