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>();
 }
Exemple #3
0
 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
     });
 }
Exemple #7
0
 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);
 }