예제 #1
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="requestClient"></param>
 /// <param name="databaseQueryBuilder"></param>
 /// <param name="databaseResponseParser"></param>
 public DatabaseClientModule(IInfluxDbRequestClient requestClient,
                             IDatabaseQueryBuilder databaseQueryBuilder, IDatabaseResponseParser databaseResponseParser)
     : base(requestClient)
 {
     _databaseQueryBuilder   = databaseQueryBuilder;
     _databaseResponseParser = databaseResponseParser;
 }
예제 #2
0
            private static void BuildWhereClauseForItemIdBarcodeSerialNumber(SalesOrderSearchCriteria criteria, SqlPagedQuery query, IList <string> whereClauses, IDatabaseQueryBuilder databaseQueryBuilder)
            {
                // If an ItemId, Barcode or SerialNumber was specified we need to check whether a Sales Line exists that meets the criteria
                if (!string.IsNullOrEmpty(criteria.ItemId) || !string.IsNullOrEmpty(criteria.Barcode) || !string.IsNullOrEmpty(criteria.SerialNumber))
                {
                    if (!string.IsNullOrEmpty(criteria.ItemId))
                    {
                        whereClauses.Add(string.Format("{0} = @itemId", ItemIdColumn));
                        query.Parameters["@itemId"] = criteria.ItemId.Trim();
                    }

                    if (!string.IsNullOrEmpty(criteria.Barcode))
                    {
                        whereClauses.Add(string.Format("{0} = @barcode", BarcodeColumn));
                        query.Parameters["@barcode"] = criteria.Barcode.Trim();
                    }

                    if (!string.IsNullOrEmpty(criteria.SerialNumber))
                    {
                        whereClauses.Add(string.Format("{0} = @serial", InventSerialIdColumn));
                        query.Parameters["@serial"] = criteria.SerialNumber.Trim();
                    }

                    var salesLineClause = string.Join(" AND ", whereClauses);
                    whereClauses.Clear();

                    var existsQuery = new SqlPagedQuery(QueryResultSettings.AllRecords)
                    {
                        Select = new ColumnSet(TransactionIdColumn),
                        From   = RetailTransactionSalesTransView,
                        Where  = salesLineClause
                    };

                    string existsQuerySql = existsQuery.BuildQuery(databaseQueryBuilder);

                    whereClauses.Add(string.Format("{0} IN ({1})", TransactionIdColumn, existsQuerySql));
                }
            }