public async Task <IActionResult> ShareMessage([FromBody] AssetsDetails assetDetails)
        {
            try
            {
                if (assetDetails != null)
                {
                    // Getting stored conversation data reference.
                    var dataToUpdate = new ConversationData();
                    _conversationDataReference.TryGetValue("conversationData", out dataToUpdate);
                    dataToUpdate.Note = assetDetails.Message;

                    foreach (var conversationReference in _conversationReferences.Values)
                    {
                        await((BotAdapter)_adapter).ContinueConversationAsync(_appId, conversationReference, BotCallback, default(CancellationToken));
                    }

                    // Let the caller know proactive messages have been sent
                    var result = new ContentResult()
                    {
                        Content     = "<html><body><h1>Proactive messages have been sent.</h1></body></html>",
                        ContentType = "text/html",
                        StatusCode  = (int)HttpStatusCode.OK,
                    };

                    return(Ok(result));
                }
                return(NotFound());
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public async Task <IActionResult> ShareMessage([FromBody] AssetsDetails assetDetails)
        {
            try
            {
                if (assetDetails != null)
                {
                    var url = blobUrl;
                    foreach (var fileName in assetDetails.Files)
                    {
                        actions.Add(new AdaptiveOpenUrlAction
                        {
                            Title = fileName,
                            Url   = new Uri(url + "/" + fileName),
                        });
                    }

                    // Getting stored conversation data reference.
                    var dataToUpdate = new ConversationData();
                    _conversationDataReference.TryGetValue(assetDetails.MeetingId, out dataToUpdate);

                    if (dataToUpdate == null)
                    {
                        throw new ArgumentNullException(nameof(dataToUpdate));
                    }

                    dataToUpdate.Note = assetDetails.Message;

                    // This code is to get user name from roster.
                    //if (dataToUpdate.Roster.Any(entity => entity.Email == assetDetails.SharedBy))
                    //{
                    //    dataToUpdate.SharedByName = dataToUpdate.Roster.Length > 0 ? dataToUpdate.Roster.Where(entity => entity.Email == assetDetails.SharedBy).FirstOrDefault().GivenName : "";
                    //}

                    dataToUpdate.SharedByName = "Hey, here is a message for you";
                    var meetingConversationReference = new ConversationReference();
                    _conversationReferences.TryGetValue(assetDetails.MeetingId, out meetingConversationReference);
                    meetingId = assetDetails.MeetingId;
                    await((BotAdapter)_adapter).ContinueConversationAsync(_appId, meetingConversationReference, BotCallback, default(CancellationToken));

                    // Let the caller know proactive messages have been sent
                    var result = new ContentResult()
                    {
                        Content     = "<html><body><h1>Proactive messages have been sent.</h1></body></html>",
                        ContentType = "text/html",
                        StatusCode  = (int)HttpStatusCode.OK,
                    };

                    return(Ok(result));
                }
                return(NotFound());
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }