private OdooRpcRequest CreateUpdateRequest <T>(OdooSessionInfo sessionInfo, OdooUpdateParameters <T> parameters) { return(new OdooRpcRequest() { service = "object", method = "execute_kw", args = new object[] { sessionInfo.Database, sessionInfo.UserId, sessionInfo.Password, parameters.Model, "write", new object[] { parameters.Ids.ToArray(), parameters.UpdateValues } }, context = sessionInfo.UserContext }); }
public async Task Update_ShouldCallRpcWithCorrectParameters() { var updateValues = new { name = "New Partner" }; var requestParams = new OdooUpdateParameters <object>("res.partner", new long[] { 6, 7 }, updateValues); var response = new JsonRpcResponse <object>(); response.Id = 1; response.Result = null; await TestOdooRpcCall(new OdooRpcCallTestParameters <object>() { Model = "res.partner", Method = "write", Validator = (p) => { Assert.Equal(6, p.args.Length); dynamic args = p.args[5]; Assert.Equal(2, args.Length); Assert.Equal( new long[] { 6, 7 }, args[0] ); Assert.Equal( updateValues, args[1] ); }, ExecuteRpcCall = async() => { await RpcClient.Update <object>(requestParams); return(null); }, TestResponse = response }); }
public Task Execute <T>(OdooSessionInfo sessionInfo, OdooUpdateParameters <T> parameters) { return(InvokeRpc <object>(sessionInfo, CreateUpdateRequest(sessionInfo, parameters))); }
public Task Update <T>(OdooUpdateParameters <T> parameters) { var updateCommand = new OdooUpdateCommand(CreateRpcClient()); return(updateCommand.Execute <T>(this.SessionInfo, parameters)); }