Skip to content

Commit

Permalink
bug fix for list of objects
Browse files Browse the repository at this point in the history
  • Loading branch information
damienbod committed May 20, 2016
1 parent afb131f commit 3d86f58
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 83 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -141,29 +141,29 @@ public void Dispose()
{
using (var context = new ElasticsearchContext(ConnectionString, _elasticsearchMappingResolver))
{
if (context.IndexExists<ClassWithListOfStrings>())
{
context.AllowDeleteForIndex = true;
context.DeleteIndex<ClassWithListOfStrings>();
}

if (context.IndexExists<ClassWithArrayOfStrings>())
{
context.AllowDeleteForIndex = true;
context.DeleteIndex<ClassWithArrayOfStrings>();
}

if (context.IndexExists<ClassWithListOfObjects>())
{
context.AllowDeleteForIndex = true;
context.DeleteIndex<ClassWithListOfObjects>();
}

if (context.IndexExists<ClassWithArrayOfObjects>())
{
context.AllowDeleteForIndex = true;
context.DeleteIndex<ClassWithArrayOfObjects>();
}
//if (context.IndexExists<ClassWithListOfStrings>())
//{
// context.AllowDeleteForIndex = true;
// context.DeleteIndex<ClassWithListOfStrings>();
//}

//if (context.IndexExists<ClassWithArrayOfStrings>())
//{
// context.AllowDeleteForIndex = true;
// context.DeleteIndex<ClassWithArrayOfStrings>();
//}

//if (context.IndexExists<ClassWithListOfObjects>())
//{
// context.AllowDeleteForIndex = true;
// context.DeleteIndex<ClassWithListOfObjects>();
//}

//if (context.IndexExists<ClassWithArrayOfObjects>())
//{
// context.AllowDeleteForIndex = true;
// context.DeleteIndex<ClassWithArrayOfObjects>();
//}


}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,24 +49,6 @@ public virtual void MapEntityValues(EntityContextInfo entityInfo, ElasticsearchC
var propertyInfo = entityInfo.Document.GetType().GetProperties();
foreach (var prop in propertyInfo)
{
#if NET451 || NET46
if (!Attribute.IsDefined(prop, typeof (JsonIgnoreAttribute)))
{
if (Attribute.IsDefined(prop, typeof (ElasticsearchGeoTypeAttribute)))
{
var obj = prop.Name.ToLower();
// process GeoTypes
if (createPropertyMappings)
{
object[] attrs = prop.GetCustomAttributes(typeof (ElasticsearchCoreTypes), true);

if ((attrs[0] as ElasticsearchCoreTypes) != null)
{
elasticsearchCrudJsonWriter.JsonWriter.WritePropertyName(obj);
elasticsearchCrudJsonWriter.JsonWriter.WriteRawValue((attrs[0] as ElasticsearchCoreTypes).JsonString());
}
}
#else
if (prop.GetCustomAttribute(typeof(JsonIgnoreAttribute)) == null)
{
if (prop.GetCustomAttribute(typeof(ElasticsearchGeoTypeAttribute)) != null)
Expand All @@ -83,7 +65,6 @@ public virtual void MapEntityValues(EntityContextInfo entityInfo, ElasticsearchC
elasticsearchCrudJsonWriter.JsonWriter.WriteRawValue((attrs.FirstOrDefault() as ElasticsearchCoreTypes).JsonString());
}
}
#endif
else
{
var data = prop.GetValue(entityInfo.Document) as IGeoType;
Expand Down Expand Up @@ -111,20 +92,6 @@ public virtual void MapEntityValues(EntityContextInfo entityInfo, ElasticsearchC
if (createPropertyMappings)
{
var obj = prop.Name.ToLower();

#if NET451 || NET46
if (Attribute.IsDefined(prop, typeof (ElasticsearchCoreTypes)))
{
object[] attrs = prop.GetCustomAttributes(typeof (ElasticsearchCoreTypes), true);

if ((attrs[0] as ElasticsearchCoreTypes) != null)
{
elasticsearchCrudJsonWriter.JsonWriter.WritePropertyName(obj);
elasticsearchCrudJsonWriter.JsonWriter.WriteRawValue((attrs[0] as ElasticsearchCoreTypes).JsonString());
}

}
#else
if (prop.GetCustomAttribute(typeof(ElasticsearchCoreTypes)) != null)
{
IEnumerable<Attribute> attrs = prop.GetCustomAttributes(typeof(ElasticsearchCoreTypes), true);
Expand All @@ -136,7 +103,6 @@ public virtual void MapEntityValues(EntityContextInfo entityInfo, ElasticsearchC
}

}
#endif
else
{
// no elasticsearch property defined
Expand Down Expand Up @@ -274,13 +240,8 @@ private void CreateChildEntityForDocumentIndex(EntityContextInfo parentEntityInf
var propertyInfo = entity.GetType().GetProperties();
foreach (var property in propertyInfo)
{
#if NET451 || NET46
if (Attribute.IsDefined(property, typeof(KeyAttribute)) || Attribute.IsDefined(property, typeof(ElasticsearchIdAttribute)))
{
#else
if (property.GetCustomAttribute(typeof(KeyAttribute)) != null || property.GetCustomAttribute(typeof(ElasticsearchIdAttribute)) != null )
{
#endif
var obj = property.GetValue(entity);

if (obj == null && createPropertyMappings)
Expand Down Expand Up @@ -486,20 +447,6 @@ private void MapIEnumerableEntitiesForMapping(ElasticsearchCrudJsonWriter elasti
// collection of Objects
elasticsearchCrudJsonWriter.JsonWriter.WriteStartObject();

#if NET451 || NET46
if (Attribute.IsDefined(prop, typeof(ElasticsearchNestedAttribute)))
{
elasticsearchCrudJsonWriter.JsonWriter.WritePropertyName("type");
elasticsearchCrudJsonWriter.JsonWriter.WriteValue("nested");

object[] attrs = prop.GetCustomAttributes(typeof(ElasticsearchNestedAttribute), true);

if ((attrs[0] as ElasticsearchNestedAttribute) != null)
{
(attrs[0] as ElasticsearchNestedAttribute).WriteJson(elasticsearchCrudJsonWriter);
}
}
#else
//if (property.GetCustomAttribute(typeof(ElasticsearchCoreTypes)) != null)
//{
// var propertyName = property.Name.ToLower();
Expand All @@ -525,8 +472,6 @@ private void MapIEnumerableEntitiesForMapping(ElasticsearchCrudJsonWriter elasti
(attrs.FirstOrDefault() as ElasticsearchNestedAttribute).WriteJson(elasticsearchCrudJsonWriter);
}
}
#endif


// "properties": {
elasticsearchCrudJsonWriter.JsonWriter.WritePropertyName("properties");
Expand Down Expand Up @@ -636,12 +581,15 @@ protected bool IsPropertyACollection(PropertyInfo property)
{
return false;
}
#if NET451 || NET46DNX451
return property.PropertyType.GetInterface(typeof(IEnumerable<>).FullName) != null;
#else
return property.PropertyType.GetInterfaces().Contains(typeof(IEnumerable<>));
#endif

if(property.PropertyType.GetInterfaces().Contains(typeof(IEnumerable)) ||
property.PropertyType.GetInterfaces().Contains(typeof(ICollection)) ||
property.PropertyType.GetInterfaces().Contains(typeof(IList)))
{
return true;
}

return false;
}


Expand Down

0 comments on commit 3d86f58

Please sign in to comment.