public async Task ExecuteEvent(SlackEvent slackEvent)
        {
            GetNotesQueryResult results = await _mediator.Send(new GetNotesQuery(slackEvent.Event.User, null, null, GetNotesQueryType.GetUserNotes));

            if (results.Result == QueryResult.NotFound)
            {
                await _disappearingSlackMessageProvider.SendDisappearingSlackMessage(
                    text : Constants.Constants.MessageNoUserNotesFound,
                    channel : slackEvent.Event.Channel,
                    attachment : "");

                return;
            }

            string cacheId = Guid.NewGuid().ToString();

            await _mediator.Send(new SetCacheItem(cacheId, results.Documents));

            dynamic notesAttachment = _attachmentGenerator.GenerateAttachment(results.Documents, cacheId, 1);

            await _disappearingSlackMessageProvider.SendDisappearingSlackMessage(
                text : Constants.Constants.MessageUserNotesFound,
                channel : slackEvent.Event.Channel,
                attachment : (string)notesAttachment);
        }
        public async Task ExecuteEvent(SlackEvent slackEvent)
        {
            string textToSearch = GetEventKeywords(slackEvent.Event.Text);

            GetAuthorQueryResult authorResult = await _mediator.Send(new GetAuthorQuery(slackEvent.Event.User));

            if (authorResult.Result == QueryResult.NotFound)
            {
                await _disappearingSlackMessageProvider.SendDisappearingSlackMessage(
                    text : Constants.Constants.GetCannotSaveMessage("search"),
                    channel : slackEvent.Event.Channel,
                    attachment : "");

                return;
            }

            GetNotesQueryResult userNotes = await _mediator.Send(
                new GetNotesQuery(
                    slackEvent.Event.User,
                    authorResult.Document.Team,
                    textToSearch,
                    GetNotesQueryType.SearchUserNotes));

            GetNotesQueryResult teamNotes = await _mediator.Send(
                new GetNotesQuery(
                    slackEvent.Event.User,
                    authorResult.Document.Team,
                    textToSearch,
                    GetNotesQueryType.SearchTeamNotes));

            if (userNotes.Result == QueryResult.NotFound && teamNotes.Result == QueryResult.NotFound)
            {
                await _disappearingSlackMessageProvider.SendDisappearingSlackMessage(
                    text : Constants.Constants.MessageSearchNoNotes,
                    channel : slackEvent.Event.Channel,
                    attachment : "");

                return;
            }

            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.Append(_attachmentGenerator.GenerateAttachment(userNotes.Documents));
            stringBuilder.Append(_attachmentGenerator.GenerateAttachment(teamNotes.Documents));

            string notesAttachment = stringBuilder.ToString();

            await _disappearingSlackMessageProvider.SendDisappearingSlackMessage(
                text : Constants.Constants.MessageSearchFoundNotes,
                channel : slackEvent.Event.Channel,
                attachment : notesAttachment);
        }