Пример #1
0
        /// <inheritdoc />
        public async Task <InsightsResponse> SendEventAsync(InsightsEvent insightEvent,
                                                            RequestOptions requestOptions = null, CancellationToken ct = default)
        {
            if (insightEvent == null)
            {
                throw new ArgumentNullException(nameof(insightEvent));
            }

            return(await SendEventsAsync(new List <InsightsEvent> {
                insightEvent
            }, requestOptions, ct));
        }
        /// <summary>
        /// Send events when filters are clicked
        /// </summary>
        /// <param name="eventName">User defined string, format: any ascii char except control points with length between 1 and 64.</param>
        /// <param name="indexName">Index name, format, same as the engine.</param>
        /// <param name="filters">A filter is defined by the ${attr}${op}${value} string e.g. brand:apple. Limited to 10 filters.</param>
        /// <param name="requestOptions">Add extra http header or query parameters to Algolia</param>
        /// <param name="ct">The cancellation token</param>
        /// <returns></returns>
        public async Task <InsightsResponse> ClickedFiltersAsync(string eventName, string indexName,
                                                                 IEnumerable <string> filters, RequestOptions requestOptions = null,
                                                                 CancellationToken ct = default)
        {
            var insightEvent = new InsightsEvent
            {
                EventType = EventType.Click,
                UserToken = _userToken,
                EventName = eventName,
                Index     = indexName,
                Filters   = filters
            };

            return(await _insightsClient.SendEventAsync(insightEvent, requestOptions, ct).ConfigureAwait(false));
        }
        /// <summary>
        /// Send events of converted objectIDs after a search
        /// </summary>
        /// <param name="eventName">User defined string, format: any ascii char except control points with length between 1 and 64.</param>
        /// <param name="indexName">Index name, format, same as the engine.</param>
        /// <param name="objectIDs">Array of index objectIDs. Limited to 20 objects</param>
        /// <param name="queryID">Algolia queryID, format: [a-z1-9]{32}.</param>
        /// <param name="requestOptions">Add extra http header or query parameters to Algolia</param>
        /// <param name="ct">The cancellation token</param>
        /// <returns></returns>
        public async Task <InsightsResponse> ConvertedObjectIDsAfterSearchAsync(string eventName, string indexName,
                                                                                IEnumerable <string> objectIDs, string queryID, RequestOptions requestOptions = null,
                                                                                CancellationToken ct = default)
        {
            var insightEvent = new InsightsEvent
            {
                EventType = EventType.Conversion,
                UserToken = _userToken,
                EventName = eventName,
                Index     = indexName,
                ObjectIDs = objectIDs,
                QueryID   = queryID
            };

            return(await _insightsClient.SendEventAsync(insightEvent, requestOptions, ct).ConfigureAwait(false));
        }
Пример #4
0
 /// <inheritdoc />
 public InsightsResponse SendEvent(InsightsEvent insightEvent, RequestOptions requestOptions = null) =>
 AsyncHelper.RunSync(() => SendEventAsync(insightEvent, requestOptions));