public OdooQuery <T> Where <TForeignKeyLevel1, TForeignKeyLevel2>(Expression <Func <T, long?> > expression, Expression <Func <TForeignKeyLevel1, long> > expressionForeignKeyLevel1, Expression <Func <TForeignKeyLevel2, object> > expressionForeignKeyLevel2, OdooOperator odooOperator, object value) where TForeignKeyLevel1 : IOdooModel, new() where TForeignKeyLevel2 : IOdooModel, new() { var fields = OdooExtensions.GetOdooPropertyName <T>(OdooExpresionMapper.GetPropertyName(expression)) + '.' + OdooExtensions.GetOdooPropertyName <TForeignKeyLevel1>(OdooExpresionMapper.GetPropertyName(expressionForeignKeyLevel1)) + '.' + OdooExtensions.GetOdooPropertyName <TForeignKeyLevel2>(OdooExpresionMapper.GetPropertyName(expressionForeignKeyLevel2)); Filters.Add(new OdooFilter { fields, odooOperator.Description(), value }); return(this); }
public OdooRepository(OdooConfig config) { OdooClient = new OdooClient(config); TableName = OdooExtensions.GetOdooTableName <T>(); }
internal static string GetOdooPropertyName <T>(Expression <Func <T, object> > expression) where T : IOdooAtributtesModel { return(OdooExtensions.GetOdooPropertyName <T>(GetPropertyName(expression))); }
public OdooQuery <T> SelectSimplifiedModel() { PropertyInfo[] modelProps = typeof(T).GetProperties(); return(Select(modelProps.Select(x => OdooExtensions.GetOdooPropertyName <T>(x.Name)).ToArray())); }
public OdooQuery <T> ById(long id) { Filters.EqualTo(OdooExtensions.GetOdooPropertyName <T>(nameof(IOdooModel.Id)), id); return(this); }
public static OdooFilter ToOdooExpresion <T>(string propertyname, OdooOperator odooOperator, object value) where T : IOdooModel, new() { return(new OdooFilter { OdooExtensions.GetOdooPropertyName <T>(propertyname), odooOperator.Description(), value }); }
public OdooDictionaryModel() { TableName = OdooExtensions.GetOdooTableName <T>(); }
public static async Task<OdooResult<long>> GetCountAsync<T>(OdooConfig odooConfig, int userUid, OdooQuery query = null, OdooContext context = null) where T : IOdooModel, new() { var tableName = OdooExtensions.GetOdooTableName<T>(); var request = OdooRequestModel.SearchCount(odooConfig, userUid, tableName, query, context); return await CallAndDeserializeAsync<long>(request); }