/// <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; }
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)); } }