public static async Task <OdooResult <long> > CreateAsync(OdooConfig odooConfig, int userUid, OdooDictionaryModel model) { var request = OdooRequestModel.Create(odooConfig, userUid, GetTableName(model), model); var result = await CallAndDeserializeAsync <long[]>(request); return(result.Succeed ? result.ToResult(result.Value.FirstOrDefault()) : OdooResult <long> .FailedResult(result)); }
public static async Task <OdooResult <bool> > UpdateRangeAsync(OdooConfig odooConfig, int userUid, IOdooCreateModel model, long[] ids) { var tableName = model.OdooTableName(); var request = OdooRequestModel.Update(odooConfig, userUid, tableName, ids, model); return(await CallAndDeserializeAsync <bool>(request)); }
public static async Task <OdooResult <long> > GetCountAsync <T>(OdooConfig odooConfig, int userUid, OdooQuery query = null) where T : IOdooModel, new() { var tableName = OdooExtensions.GetOdooTableName <T>(); var request = OdooRequestModel.SearchCount(odooConfig, userUid, tableName, query); return(await CallAndDeserializeAsync <long>(request)); }
public static async Task<HttpResponseMessage> CallAsync(OdooRequestModel requestModel) { string json = JsonConvert.SerializeObject(requestModel, new IsoDateTimeConverter { DateTimeFormat = OdooConsts.DateTimeFormat }); var data = new StringContent(json, Encoding.UTF8, "application/json"); using (var client = new HttpClient()) { client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); var result = await client.PostAsync(requestModel.Params.Url, data); return result; } }
public static async Task<OdooResult<T>> CallAndDeserializeAsync<T>(OdooRequestModel request) { try { var response = await CallAsync(request); var responseString = await response.Content.ReadAsStringAsync(); var result = JsonConvert.DeserializeObject<OdooResult<T>>(responseString); return result; } catch (Exception e) { return OdooResult<T>.FailedResult(e.ToString()); } }
//[Fact] public async Task OnChange_test() { try { var loginResult = await OdooClient.LoginAsync(Config); var param = new OdooRequestParams(Config.ApiUrlJson, "object", "execute", Config.DbName, loginResult.Value, Config.Password, "sale.order", OdooOperation.OnChage, new Dictionary <string, int>() { { "onchange_pricelist_id", 17 } }, 135); var request = new OdooRequestModel(param); var result = OdooClient.CallAsync(request); } catch (Exception e) { Console.WriteLine(e); throw; } }
public void RequestModel_should_return_request_with_corect_params_count() { var query = new OdooQuery() { ReturnFields = new HashSet <string> { "name" }, Filters = new OdooFilter { new object[] { "id", "=", 66 } } }; var request = OdooRequestModel.SearchRead(Config, 2, "table", query); request.Params.Args.Length.Should().Be(7); var query2 = new OdooQuery() { Filters = new OdooFilter { new object[] { "id", "=", 66 } } }; var request2 = OdooRequestModel.SearchRead(Config, 2, "table", query2); request2.Params.Args.Length.Should().Be(6); var query3 = new OdooQuery() { ReturnFields = new HashSet <string> { "name" } }; var request3 = OdooRequestModel.SearchRead(Config, 2, "table", query3); request3.Params.Args.Length.Should().Be(7); var request4 = OdooRequestModel.SearchRead(Config, 2, "table"); request4.Params.Args.Length.Should().Be(5); var query5 = new OdooQuery() { Offset = 10 }; var request5 = OdooRequestModel.SearchRead(Config, 2, "table", query5); request5.Params.Args.Length.Should().Be(8); var query6 = new OdooQuery() { Limit = 10 }; var request6 = OdooRequestModel.SearchRead(Config, 2, "table", query6); request6.Params.Args.Length.Should().Be(9); var query7 = new OdooQuery() { Order = "id" }; var request7 = OdooRequestModel.SearchRead(Config, 2, "table", query7); request7.Params.Args.Length.Should().Be(10); var queryTest = new OdooQuery() { ReturnFields = new HashSet <string> { "name" }, Filters = OdooFilter.Create().EqualTo("id", 66) }; var requestTest = OdooRequestModel.SearchRead(Config, 2, "table", queryTest); requestTest.Params.Args.Length.Should().Be(7); }
public static async Task <OdooResult <OdooVersion> > GetVersionAsync(OdooConfig odooConfig) { var request = OdooRequestModel.Version(odooConfig); return(await CallAndDeserializeAsync <OdooVersion>(request)); }
public static async Task <OdooResult <Dictionary <string, OdooPropertyInfo> > > GetModelAsync(OdooConfig odooConfig, int userUid, string tableName) { var request = OdooRequestModel.ModelFields(odooConfig, userUid, tableName); return(await CallAndDeserializeAsync <Dictionary <string, OdooPropertyInfo> >(request)); }
public static async Task <OdooResult <int> > LoginAsync(OdooConfig odooConfig) { var request = OdooRequestModel.Login(odooConfig); return(await CallAndDeserializeAsync <int>(request)); }
public static async Task <OdooResult <bool> > DeleteRangeAsync(OdooConfig odooConfig, int userUid, string tableName, long[] ids) { var request = OdooRequestModel.Delete(odooConfig, userUid, tableName, ids); return(await CallAndDeserializeAsync <bool>(request)); }
public static async Task <OdooResult <bool> > UpdateRangeAsync(OdooConfig odooConfig, int userUid, OdooDictionaryModel model, long[] ids) { var request = OdooRequestModel.Update(odooConfig, userUid, GetTableName(model), ids, model); return(await CallAndDeserializeAsync <bool>(request)); }
public static async Task<OdooResult<long>> CreateAsync(OdooConfig odooConfig, int userUid, IOdooCreateModel model, OdooContext context = null) { var request = OdooRequestModel.Create(odooConfig, userUid, model.OdooTableName(), model, context); var result = await CallAndDeserializeAsync<long>(request); return result.Succeed ? result.ToResult(result.Value) : OdooResult<long>.FailedResult(result); }
public static async Task<OdooResult<T[]>> GetAsync<T>(OdooConfig odooConfig, int userUid, OdooQuery query = null, OdooContext context = null) where T : IOdooModel, new() { var tableName = OdooExtensions.GetOdooTableName<T>(); var request = OdooRequestModel.SearchRead(odooConfig, userUid, tableName, query, context); return await CallAndDeserializeAsync<T[]>(request); }