private void EventServiceOnEventFired(object sender, ErtisAuthEvent ertisAuthEvent)
        {
            try
            {
                IQuery[] expressions =
                {
                    QueryBuilder.Equals("status",        "active"),
                    QueryBuilder.Equals("membership_id", ertisAuthEvent.MembershipId),
                    QueryBuilder.Equals("event",         ertisAuthEvent.EventType.ToString())
                };

                var query = QueryBuilder.Where(expressions);
                var webhooksDynamicCollection = this.Query(query.ToString());
                var webhooks = JsonConvert.DeserializeObject <PaginationCollection <Webhook> >(JsonConvert.SerializeObject(webhooksDynamicCollection));
                if (webhooks != null)
                {
                    foreach (var webhook in webhooks.Items)
                    {
                        this.ExecuteWebhookAsync(webhook, ertisAuthEvent.UtilizerId, ertisAuthEvent.MembershipId, ertisAuthEvent.Document, ertisAuthEvent.Prior);
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
        }
Example #2
0
        public async ValueTask <ErtisAuthEvent> FireEventAsync(object sender, ErtisAuthEvent ertisAuthEvent)
        {
            try
            {
                var insertedEvent = await this.SaveEventAsync(ertisAuthEvent);

                if (insertedEvent != null)
                {
                    ertisAuthEvent.Id = insertedEvent.Id;
                    this.EventFired?.Invoke(sender, ertisAuthEvent);

                    return(ertisAuthEvent);
                }
                else
                {
                    Console.WriteLine("EventService.FireEventAsync error: Event could not inserted!");
                    return(null);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("EventService.FireEventAsync exception:");
                Console.WriteLine(ex);
                return(null);
            }
        }