This commit is contained in:
2018-09-20 18:32:45 +00:00
parent 1aa10dcb3b
commit bbed6233cd

View File

@@ -201,7 +201,8 @@ namespace AyaNova.Biz
if (string.IsNullOrWhiteSpace(searchParameters.Phrase))
{
//TAGS ONLY SEARCH (NO PHRASE) ALL FULL MATCHES ARE INCLUSIVE
#region TAGS ONLY SEARCH (NO PHRASE) ALL FULL MATCHES ARE INCLUSIVE
Dictionary<long, long> TagCounts = new Dictionary<long, long>();
//QUERY FOR ALL TAGMAPS THAT MATCH OBJECT TYPE AND ID FOR EVERY TAG SPECIFIED (UNION)
@@ -243,7 +244,7 @@ namespace AyaNova.Biz
if (TagId != ShortestMatchingTag)
{
//Ok, does this object have this tag?
bool HasTag = await ct.TagMap.Where(x => x.TagToObjectId == t.TagToObjectId && x.TagId == TagId).AnyAsync();
bool HasTag = await ct.TagMap.Where(x => x.TagToObjectId == t.TagToObjectId && x.TagToObjectType == t.TagToObjectType && x.TagId == TagId).AnyAsync();
if (HasTag)
matchCount++;
}
@@ -255,17 +256,28 @@ namespace AyaNova.Biz
MatchingObjects.Add(new AyaTypeId(t.TagToObjectType, t.TagToObjectId));
}
}
#endregion
}
else
{
//It's a tags plus search phrase search so tags are exclusive
//LOOP THROUGH SEARCHKEY MATCHES
//FOREACH OBJECT SEARCH TAGMAP FOR MATCHING OBJECTTYPE AND ID
#region TAGS PLUS PHRASE SEARCH NONE MATCHING TAGS ARE EXCLUSIVE
//list to hold temporary matches
List<AyaTypeId> TagMatchingObjects = new List<AyaTypeId>();
//LOOP THROUGH MATCHING OBJECTS LIST
foreach (AyaTypeId i in MatchingObjects)
{
var matchCount = await ct.TagMap.Where(x => x.TagToObjectId == i.ObjectId && x.TagToObjectType == i.ObjectType && searchParameters.Tags.Contains(x.TagId)).LongCountAsync();
}
//FOREACH OBJECT SEARCH TAGMAP FOR MATCHING ALL TAGS FOR OBJECTTYPE AND ID
//IF NOT MATCH THEN REMOVE
//REMOVE RESULTS FROM SEARCH PHRASE PHASE THAT ARE NOT MATCHING
//TODO: this
#endregion
}
}