public async Task GetAllDepartments() { try { var fieldParams = new OdooFieldParameters(); fieldParams.Add("name"); fieldParams.Add("company_id"); fieldParams.Add("color"); var departments = await this.OdooRpcClient.GetAll <JObject[]>("hr.department", fieldParams, new OdooPaginationParameters().OrderByDescending("name")); Console.WriteLine(departments.FirstOrDefault()); } catch (Exception ex) { Console.WriteLine("Error getting departments from Odoo: {0}", ex.Message); } }
public async Task GetDepartments() { try { var reqParams = new OdooGetParameters("hr.department"); reqParams.Ids.Add(6); //reqParams.Ids.Add(7); var fieldParams = new OdooFieldParameters(); fieldParams.Add("name"); fieldParams.Add("company_id"); var departments = await this.OdooRpcClient.Get <JObject[]>(reqParams, fieldParams); Console.WriteLine(departments.FirstOrDefault()); } catch (Exception ex) { Console.WriteLine("Error getting departments from Odoo: {0}", ex.Message); } }
static async System.Threading.Tasks.Task Main(string[] args) { Console.WriteLine("Iniciando..."); //Creo objeto OdooConnectionInfo con información de conección OdooConnectionInfo ConnectionInfo = new OdooConnectionInfo() { IsSSL = false, Host = "localhost", Port = 8069, Database = "db", Username = "******", Password = "******" }; //Me conecto a Odoo IOdooRpcClient RpcClient = new OdooRpcClient(ConnectionInfo); //Obtengo la versión de Odoo y la muestro por consola var odooVersion = await RpcClient.GetOdooVersion(); Console.WriteLine("Odoo Version: {0} - {1}", odooVersion.ServerVersion, odooVersion.ProtocolVersion); //Login await RpcClient.Authenticate(); if (RpcClient.SessionInfo.IsLoggedIn) { Console.WriteLine("Login correcto => Usuario Id: {0}", RpcClient.SessionInfo.UserId); } else { Console.WriteLine("Login incorrecto"); } //Actualizo los conductores de un vehículo - many2many campo custom Object[] obj = new Object[] { new Object[] { 6, 0, new Object[] { 2, 7 } } }; try { await RpcClient.Update <dynamic>("fleet.vehicle", 4, new { x_conductor = obj }); Console.WriteLine("OK - Actualizado"); } catch (Exception ex) { Console.WriteLine("Error getting partners from Odoo: {0}", ex.Message); } //Obtengo datos de los autos try { var fieldParams = new OdooFieldParameters(); fieldParams.Add("model_id"); fieldParams.Add("display_name"); fieldParams.Add("x_conductor"); var autos = await RpcClient.GetAll <JObject[]>("fleet.vehicle", fieldParams, new OdooPaginationParameters().OrderByDescending("name")); foreach (var auto in autos) { Console.WriteLine(auto); } //Console.WriteLine(autos.FirstOrDefault()); } catch (Exception ex) { Console.WriteLine("Error recuperando los autos desde Odoo: {0}", ex.Message); } }
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)); }
public Task <T> Get <T>(OdooGetParameters getParams, OdooFieldParameters fieldParams) { var readCommand = new OdooReadCommand(CreateRpcClient()); return(readCommand.Execute <T>(this.SessionInfo, getParams, fieldParams)); }
public Task <T> Get <T>(OdooSearchParameters getParams, OdooFieldParameters fieldParams) { return(Get <T>(getParams, fieldParams, new OdooPaginationParameters())); }
public Task <T> GetAll <T>(string model, OdooFieldParameters fieldParameters, OdooPaginationParameters pagParameters) { return(Get <T>(new OdooSearchParameters(model), fieldParameters, pagParameters)); }
private OdooRpcRequest CreateReadRequest(OdooSessionInfo sessionInfo, OdooGetParameters getParams, OdooFieldParameters fieldParams) { List <object> requestArgs = new List <object>( new object[] { sessionInfo.Database, sessionInfo.UserId, sessionInfo.Password, getParams.Model, "read", new object[] { getParams.Ids } } ); if (fieldParams != null && fieldParams.Count > 0) { dynamic getOptions = new ExpandoObject(); getOptions.fields = fieldParams.ToArray(); requestArgs.Add(getOptions); } return(new OdooRpcRequest() { service = "object", method = "execute_kw", args = requestArgs.ToArray(), context = sessionInfo.UserContext }); }
public Task <T> Execute <T>(OdooSessionInfo sessionInfo, OdooGetParameters getParams, OdooFieldParameters fieldParams) { return(InvokeRpc <T>(sessionInfo, CreateReadRequest(sessionInfo, getParams, fieldParams))); }
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 }); }
public Task <T> Execute <T>(OdooSessionInfo sessionInfo, OdooSearchParameters searchParams, OdooFieldParameters fieldParams, OdooPaginationParameters pagParams) { return(InvokeRpc <T>(sessionInfo, CreateSearchRequest(sessionInfo, "search_read", searchParams, fieldParams, pagParams))); }