public void Has_Dynamic_Details() { string mySpecialField = "special things"; var product = new Product(); product.Details.MySpecialField = mySpecialField; Assert.Equal(product.Details.MySpecialField, mySpecialField); }
public async Task IndexAsync(Product product) { Console.WriteLine(string.Format("Indexing product {0}", product.Id)); var dto = Mapper.Map<ProductDTO>(product); //Update the variants partially, using the script //This method isn't going to support n-recursive product variants foreach (var variant in dto.Variants) { var variantResponse = await _client.UpdateAsync<ProductDTO>(body => body .Id(dto.Id) .Params(pms => pms.Add("new_variant", variant)) .Script(Transactional.Scripts.update_variants) .Lang("groovy") .Index("products") .Upsert(dto) .Type<ProductDTO>() ); if (!variantResponse.ConnectionStatus.Success) { Console.WriteLine(Encoding.Default.GetString(variantResponse.ConnectionStatus.Request)); throw variantResponse.ConnectionStatus.OriginalException; } } //Update the rest of the document dto.Variants = null; var indexResponse = await _client.UpdateAsync<ProductDTO>(body => body .Id(dto.Id) .Doc(dto) .Index("products") .Type<ProductDTO>() ); if (!indexResponse.ConnectionStatus.Success) { Console.WriteLine(Encoding.Default.GetString(indexResponse.ConnectionStatus.Request)); throw indexResponse.ConnectionStatus.OriginalException; } }