/// <summary> /// Deletes the entity serverside /// </summary> /// <typeparam name="T"></typeparam> /// <param name="entity"></param> /// <param name="callback"></param> /// <returns></returns> public void Delete <T>(T entity, Action <Response> callback) where T : class { if (!IsAuthenticated) { callback(new Response(new Exception("Not authenticated"))); return; } var meta = StorageMetadata.GetMetadata <T>(); HttpPostAsync("Delete", meta.GetId(entity), callback); }
/// <summary> /// Saves an existing object set server side /// </summary> /// <typeparam name="T"></typeparam> /// <param name="entities"></param> /// <param name="callback"></param> /// <returns></returns> public void UpdateSet <T>(T[] entities, Action <Response> callback) where T : class { if (!IsAuthenticated) { callback(new Response(new Exception("Not authenticated"))); return; } var meta = StorageMetadata.GetMetadata <T>(); var model = entities.Select(o => new StorageRequest { ObjectId = meta.GetId(o), ObjectScore = float.Parse(meta.GetScore(o)), ObjectType = meta.TableName, ObjectData = JsonSerializer.Serialize(o), }).ToArray(); HttpPostAsync("UpdateSet", model, callback); }
/// <summary> /// Saves an existing object server side /// </summary> /// <typeparam name="T"></typeparam> /// <param name="entity"></param> /// <param name="callback"></param> /// <returns></returns> public void Update <T>(T entity, Action <Response> callback) where T : class { if (!IsAuthenticated) { callback(new Response(new Exception("Not authenticated"))); return; } var meta = StorageMetadata.GetMetadata <T>(); var model = new StorageRequest { ObjectId = meta.GetId(entity), ObjectScore = float.Parse(meta.GetScore(entity)), ObjectType = meta.TableName, ObjectData = JsonSerializer.Serialize(entity), ModifiedOn = meta.GetModified(entity), }; HttpPostAsync("Update", model, callback); }
/// <summary> /// Reads a collection of objects which match a cloud query. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="query"></param> /// <param name="callback"></param> /// <returns></returns> public void Query <T>(ODataQuery <T> query, Action <Response <T[]> > callback) where T : class { var meta = StorageMetadata.GetMetadata <T>(); HttpPostAsync(meta.TableName, query, callback); }