Esempio n. 1
0
 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
     });
 }
Esempio n. 2
0
        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
            });
        }
Esempio n. 3
0
 public Task Execute <T>(OdooSessionInfo sessionInfo, OdooUpdateParameters <T> parameters)
 {
     return(InvokeRpc <object>(sessionInfo, CreateUpdateRequest(sessionInfo, parameters)));
 }
Esempio n. 4
0
        public Task Update <T>(OdooUpdateParameters <T> parameters)
        {
            var updateCommand = new OdooUpdateCommand(CreateRpcClient());

            return(updateCommand.Execute <T>(this.SessionInfo, parameters));
        }