public partial class FlightStatusService {
public class QueryFilter {
public string Airline = null;
public string FlightNumber = null;
public string Aircraft = null;
public string DepartureAirport = null;
public string ArrivalAirport = null;
public int MinMinutesToArrival = -1;
public int MaxMinutesToArrival = -1;
public int MinGroundSpeed = -1;
public int MaxGroundSpeed = -1;
public int MinAltitude = -1;
public int MaxAltitude = -1;

public override string ToString() {
StringBuilder sb = new StringBuilder();
sb.AppendLine("Vpis FlightStatus.QueryParameters");
DumpEqualCondition(sb, "Airline", this.Airline);
DumpEqualCondition(sb, "FlightNumber", this.FlightNumber);
DumpEqualCondition(sb, "DepartureAirport", this.DepartureAirport);
DumpEqualCondition(sb, "ArrivalAirport", this.ArrivalAirport);
DumpBetweenCondition(sb, "MinutesToArrival",
this.MinMinutesToArrival,
this.MaxMinutesToArrival);
DumpBetweenCondition(sb, "GroundSpeed",
this.MinGroundSpeed,
this.MaxGroundSpeed);
DumpBetweenCondition(sb, "Altitude",
this.MinAltitude,
this.MaxAltitude);
sb.AppendLine("------------------------");
return sb.ToString();
}
internal void DumpEqualCondition( StringBuilder sb,
string fieldName, string value) {
if (value != null) {
sb.Append(fieldName);
sb.Append(" = ");
sb.AppendLine(value.ToString());
}
}
internal void DumpBetweenCondition( StringBuilder sb,
string fieldName,
int limitMin, int limitMax) {
if ((limitMin >= 0) && (limitMax >= 0)) {
sb.Append(fieldName);
sb.Append(" BETWEEN ");
sb.Append(limitMin.ToString());
sb.Append(" AND ");
sb.AppendLine(limitMax.ToString());
}
else if (limitMin >= 0) {
sb.Append(fieldName);
sb.Append(" >= ");
sb.AppendLine(limitMin.ToString());
}
else if (limitMax >= 0) {
sb.Append(fieldName);
sb.Append(" <= ");
sb.AppendLine(limitMax.ToString());
}
}
}
}
