public virtual Task <Dictionary <string, Map> > GetMaps(List <string> filterKeys = null) { List <string> matchingKeys = ComputeMathingKeys(filterKeys); if (matchingKeys.Any()) { Dictionary <Guid, string> internalMapping = ComputeInternalMapping(matchingKeys); Dictionary <Guid, object> dictArgs = ComputeDictArgs(matchingKeys); return(_jsObjectRef.InvokeMultipleAsync <Map>( "getMap", dictArgs).ContinueWith(e => e.Result.ToDictionary(r => internalMapping[new Guid(r.Key)], r => r.Value))); } else { return(ComputeEmptyResult <Map>()); } }