public async Task Store(object id, M model) { var idType = CascadeTypeUtils.GetCascadeIdType(typeof(M)); var id2 = CascadeTypeUtils.ConvertTo(idType !, id); models[id] = model; }
public async Task <object?> Get(object id) { var idType = CascadeTypeUtils.GetCascadeIdType(typeof(M)); var id2 = CascadeTypeUtils.ConvertTo(idType !, id); models.TryGetValue(id2 !, out var result); return(result); }
public async Task <IEnumerable> Query(object criteria, string key) { JsonElement?crit = criteria as JsonElement?; if (crit == null) { crit = JsonSerializer.SerializeToElement(criteria); } var enumerable1 = models.ToList().FindAll(idModel => { var model = idModel.Value !; var critList = crit !.Value.EnumerateObject().All(p => { var mv = model !.GetType().GetProperty(p.Name) !.GetValue(model); //var v = kv.Value!.GetValue<object>(); var v = GetNaturalValueFrom(p.Value); var equal = CascadeTypeUtils.IsEqual(mv, v); //(v == null && mv == null) || (v != null && v.Equals(mv)); return(equal); }); return(critList); }).ToImmutableArray(); var enumerable2 = enumerable1.Select(k => k.Value).ToImmutableArray <M>(); return(enumerable2); }