Example #1
0
        public async Task Consume(ConsumeContext <UserPersisted> context)
        {
            var alias = await _elasticClient.AliasExistsAsync(new AliasExistsDescriptor().Name(context.Message.Id.ToString()));

            if (alias.Exists)
            {
                await _elasticClient.AliasAsync(a => a
                                                .Remove(r => r.Index("records").Alias(context.Message.Id.ToString()))
                                                .Remove(r => r.Index("folders").Alias(context.Message.Id.ToString()))
                                                .Remove(r => r.Index("files").Alias(context.Message.Id.ToString()))
                                                .Remove(r => r.Index("models").Alias(context.Message.Id.ToString())));
            }

            try
            {
                await _elasticClient.AliasAsync(a => a
                                                .Add(add => add.Index("files").Alias(context.Message.Id.ToString())
                                                     .Filter <dynamic>(qc => qc.Bool(b => b.Should(s => s.Term("OwnedBy", context.Message.Id.ToString()), s => s.Term("IsPublic", true)))))
                                                .Add(add => add.Index("folders").Alias(context.Message.Id.ToString())
                                                     .Filter <dynamic>(qc => qc.Bool(b => b.Should(s => s.Term("OwnedBy", context.Message.Id.ToString()), s => s.Term("IsPublic", true)))))
                                                .Add(add => add.Index("records").Alias(context.Message.Id.ToString())
                                                     .Filter <dynamic>(qc => qc.Bool(b => b.Should(s => s.Term("OwnedBy", context.Message.Id.ToString()), s => s.Term("IsPublic", true)))))
                                                .Add(add => add.Index("models").Alias(context.Message.Id.ToString())
                                                     .Filter <dynamic>(qc => qc.Bool(b => b.Should(s => s.Term("OwnedBy", context.Message.Id.ToString()), s => s.Term("IsPublic", true)))))
                                                );

                Log.Information($"Alias {context.Message.Id} successfully created");
            }
            catch (ElasticsearchClientException e)
            {
                Log.Error($"Creating alias server error: {e.Response.ServerError}");
            }
        }
		public override async Task ProfileAsync(IElasticClient client, ColoredConsoleWriter output)
		{
			for (int i = 0; i < _iterations; i++)
			{
				var aliasResponse = await client.AliasExistsAsync(a => a
					.Index(typeof(Developer))
					.Name(i % 2 == 0 ? _aliasName : "non-existent-alias")
				).ConfigureAwait(false);

				if (!aliasResponse.IsValid)
					output.WriteOrange($"Invalid response from {nameof(AliasExistsAsyncOperation)} operation");
			}
		}
Example #3
0
        public override async Task ProfileAsync(IElasticClient client, ColoredConsoleWriter output)
        {
            for (int i = 0; i < _iterations; i++)
            {
                var aliasResponse = await client.AliasExistsAsync(a => a
                                                                  .Index(typeof(Developer))
                                                                  .Name(i % 2 == 0 ? _aliasName : "non-existent-alias")
                                                                  ).ConfigureAwait(false);

                if (!aliasResponse.IsValid)
                {
                    output.WriteOrange($"Invalid response from {nameof(AliasExistsAsyncOperation)} operation");
                }
            }
        }
Example #4
0
        public async Task IndexEntityAsync(string indexName, string typeName, Guid id)
        {
            dynamic entity = await GetEntityFromDatabase(id);

            try
            {
                var indexingResult = await _elasticClient.IndexAsync <object>(new IndexRequest <object>(entity, indexName, typeName, id));

                Guid userId = entity.OwnedBy;

                var alias = await _elasticClient.AliasExistsAsync(new AliasExistsDescriptor().Name(userId.ToString()).Index(Indices.Parse(indexName)));

                if (!alias.Exists)
                {
                    await _elasticClient.AliasAsync(a => a
                                                    .Add(add => add.Index(indexName).Alias(userId.ToString())
                                                         .Filter <dynamic>(qc => qc.Bool(b => b.Should(s => s.Term("OwnedBy", userId.ToString()), s => s.Term("IsPublic", true))))));
                }
            }
            catch (ElasticsearchClientException e)
            {
                Log.Error($"{e.Response.ServerError}");
            }
        }
Example #5
0
 public static Task <IExistsResponse> AliasExistsAsync(this IElasticClient client, string aliasName, string indexName = null)
 {
     return(client.AliasExistsAsync(new AliasExistsRequest(indexName, aliasName)));
 }