예제 #1
0
        /// <summary>
        /// Creates a media attachment.
        /// </summary>
        /// <param name="type">The media type.</param>
        /// <param name="identifier">The media identifier to specify the media source.</param>
        /// <returns></returns>
        public MessageOptionalElementSetter CreateMediaAttachment(MediaAttachmentType type, MediaIdentifier identifier)
        {
            CheckIfAttachmentAlreadyBuilt();

            TemplateBuilding = true;

            var payload = new MediaPayloadEntity();

            identifier.AddValuesToPayloadEntity(payload);

            IMessageAttachmentEntity attachment;

            switch (type)
            {
            case MediaAttachmentType.Audio:
                attachment = new AudioAttachmentEntity
                {
                    Payload = payload
                };
                break;

            case MediaAttachmentType.Image:
                attachment = new ImageAttachmentEntity
                {
                    Payload = payload
                };
                break;

            case MediaAttachmentType.Video:
                attachment = new VideoAttachmentEntity
                {
                    Payload = payload
                };
                break;

            case MediaAttachmentType.File:
                attachment = new FileAttachmentEntity
                {
                    Payload = payload
                };
                break;

            default:
                throw new MediaAttachmentTypeNotSupportedException(type);
            }

            MessageEntity.Attachment = attachment;
            TemplateBuilding         = false;

            return(new MessageOptionalElementSetter(this));
        }
예제 #2
0
 /// <summary>
 /// Adds URL and IsReusable value to the payload.
 /// </summary>
 /// <param name="payload">The media payload.</param>
 internal override void AddValuesToPayloadEntity(MediaPayloadEntity payload)
 {
     payload.MediaUrl   = _url.ToString();
     payload.IsReusable = _isReusable;
 }
 /// <summary>
 /// Adds the attachment ID to the payload.
 /// </summary>
 /// <param name="payload">The media payload.</param>
 internal override void AddValuesToPayloadEntity(MediaPayloadEntity payload)
 {
     payload.AttachmentId = _attachmentId;
 }
예제 #4
0
 /// <summary>
 /// Adds any identfier related values to the payload.
 /// </summary>
 /// <param name="payload"></param>
 internal abstract void AddValuesToPayloadEntity(MediaPayloadEntity payload);