public void QueueDelete(SearchIndexDocumentModel document)
        {
            var request = new SearchIndexQueueRequestModel
            {
                Verb     = SearchIndexingVerbs.Delete,
                Index    = _searchConfiguration.AWSESIndex,
                Document = document
            };

            QueueRequest(request);
        }
        private async Task QueueRequestAsync(SearchIndexQueueRequestModel request)
        {
            var message = JsonConvert.SerializeObject(request, Formatting.None, _jsonSettings);

            var response = await _sqsExtendedClient.SendMessageAsync(_searchConfiguration.AWSSQSEndpoint, message);

            if (response.HttpStatusCode != System.Net.HttpStatusCode.OK)
            {
                LogHelper.Warn <SearchIndexingQueueService>("[Failure] Document Request (ID: {0}, Title: {1}) has not been pushed up to SQS. Response HTTP Status Code: {2}. MD5 of message attributes: {3}. MD5 of message body: {4}.", () => request.Document.NodeId, () => request.Document.Title, () => response.HttpStatusCode, () => response.MD5OfMessageAttributes, () => response.MD5OfMessageBody);
            }
            else
            {
                LogHelper.Info <SearchIndexingQueueService>("[Success] Document Request (ID: {0}, Title: {1}) has been pushed up to SQS.", () => request.Document.NodeId, () => request.Document.Title);
            }
        }
        public void QueueUpsert(SearchIndexDocumentModel document)
        {
            if (string.IsNullOrWhiteSpace(document.Content))
            {
                LogHelper.Info <SearchIndexingQueueService>("Skipping Queue Upsert for node (ID: {0}, Title: {1}). Reason: Content is Null or WhiteSpace.", () => document.NodeId, () => document.Title);
                return;
            }

            var request = new SearchIndexQueueRequestModel
            {
                Verb     = SearchIndexingVerbs.Upsert,
                Index    = _searchConfiguration.AWSESIndex,
                Document = document
            };

            QueueRequest(request);
        }