예제 #1
0
        public Task <T> Get <T>(OdooSearchParameters getParams, OdooFieldParameters fieldParams, OdooPaginationParameters pagParams)
        {
            var searchReadCommand = new OdooSearchCommand(CreateRpcClient());

            return(searchReadCommand.Execute <T>(this.SessionInfo, getParams, fieldParams, pagParams));
        }
예제 #2
0
 public Task <T> Get <T>(OdooSearchParameters getParams, OdooPaginationParameters pagParams)
 {
     return(Get <T>(getParams, new OdooFieldParameters(), pagParams));
 }
예제 #3
0
        public Task <T> Search <T>(OdooSearchParameters searchParams, OdooPaginationParameters pagParams)
        {
            var searchCommand = new OdooSearchCommand(CreateRpcClient());

            return(searchCommand.Execute <T>(this.SessionInfo, searchParams, pagParams));
        }
예제 #4
0
 public Task <T> GetAll <T>(string model, OdooFieldParameters fieldParameters, OdooPaginationParameters pagParameters)
 {
     return(Get <T>(new OdooSearchParameters(model), fieldParameters, pagParameters));
 }
예제 #5
0
        private OdooRpcRequest CreateSearchRequest(OdooSessionInfo sessionInfo, string method, OdooSearchParameters searchParams, OdooFieldParameters fieldParams, OdooPaginationParameters pagParams)
        {
            List <object> requestArgs = new List <object>(
                new object[]
            {
                sessionInfo.Database,
                sessionInfo.UserId,
                sessionInfo.Password,
                searchParams.Model,
                method,
                new object[]
                {
                    searchParams.DomainFilter.ToFilterArray()
                }
            }
                );

            dynamic searchOptions    = new ExpandoObject();
            bool    useSearchOptions = false;

            if (fieldParams != null && fieldParams.Count > 0)
            {
                searchOptions.fields = fieldParams.ToArray();
                useSearchOptions     = true;
            }

            if (pagParams != null && pagParams.IsDefined())
            {
                pagParams.AddToParameters(searchOptions);
                useSearchOptions = true;
            }

            if (useSearchOptions)
            {
                requestArgs.Add(searchOptions);
            }

            return(new OdooRpcRequest()
            {
                service = "object",
                method = "execute_kw",
                args = requestArgs.ToArray(),
                context = sessionInfo.UserContext
            });
        }
예제 #6
0
 public Task <T> Execute <T>(OdooSessionInfo sessionInfo, OdooSearchParameters searchParams, OdooFieldParameters fieldParams, OdooPaginationParameters pagParams)
 {
     return(InvokeRpc <T>(sessionInfo, CreateSearchRequest(sessionInfo, "search_read", searchParams, fieldParams, pagParams)));
 }