/// <summary>
 /// Store the events in Elasticsearch indexes.
 /// </summary>
 /// <param name="configurator">The Audit.NET configurator object</param>
 /// <param name="settings">The Elasticsearch connection settings</param>
 /// <param name="idBuilder">The builder to get the id to use for an audit event. NULL to use a server generated id</param>
 /// <param name="indexBuilder">The builder to get the index to use for an audit event. NULL to use the default index name</param>
 /// <param name="typeNameBuilder">The builder to get the type to use for an audit event</param>
 public static ICreationPolicyConfigurator UseElasticsearch(this IConfigurator configurator, AuditConnectionSettings settings,
                                                            Func <AuditEvent, Id> idBuilder = null, Func <AuditEvent, IndexName> indexBuilder = null, Func <AuditEvent, TypeName> typeNameBuilder = null)
 {
     Configuration.DataProvider = new ElasticsearchDataProvider()
     {
         ConnectionSettings = settings,
         IdBuilder          = idBuilder,
         IndexBuilder       = indexBuilder,
         TypeNameBuilder    = typeNameBuilder
     };
     return(new CreationPolicyConfigurator());
 }
 public IElasticsearchProviderConfigurator ConnectionSettings(AuditConnectionSettings connectionSettings)
 {
     _connectionSettings = connectionSettings;
     return(this);
 }