DeliveryAdminWindow filter time
This commit is contained in:
@ -170,6 +170,8 @@ namespace Elwig.Windows {
|
||||
var filterMgNr = new List<int>();
|
||||
var filterDate = new List<string>();
|
||||
var filterPartDate = new List<string>();
|
||||
string? filterTimeGt = null;
|
||||
string? filterTimeLt = null;
|
||||
int filterYearGt = 0;
|
||||
int filterYearLt = 0;
|
||||
double filterKmwGt = 0;
|
||||
@ -205,6 +207,12 @@ namespace Elwig.Windows {
|
||||
case ('<', _): filterOeLt = num; break;
|
||||
}
|
||||
filter.RemoveAt(i--);
|
||||
} else if (TimeOnly.TryParse(e[1..], out var time)) {
|
||||
switch ((e[0], time)) {
|
||||
case ('>', _): filterTimeGt = $"{time:HH:mm}"; break;
|
||||
case ('<', _): filterTimeLt = $"{time:HH:mm}"; break;
|
||||
}
|
||||
filter.RemoveAt(i--);
|
||||
}
|
||||
if (e.Length == 1) filter.RemoveAt(i--);
|
||||
} else if (e.Length > 1 && Utils.FromToRegex.IsMatch(e)) {
|
||||
@ -230,6 +238,11 @@ namespace Elwig.Windows {
|
||||
break;
|
||||
}
|
||||
filter.RemoveAt(i--);
|
||||
} else if (e.Length > 1 && Utils.FromToTimeRegex.IsMatch(e)) {
|
||||
var parts = e.Split("-");
|
||||
filterTimeGt = TimeOnly.TryParse(parts[0], out var from) ? $"{from:HH:mm}" : null;
|
||||
filterTimeLt = TimeOnly.TryParse(parts[1], out var to) ? $"{to:HH:mm}" : null;
|
||||
filter.RemoveAt(i--);
|
||||
} else if (DateOnly.TryParse(e, out var date)) {
|
||||
filterDate.Add($"{date:yyyy-MM-dd}");
|
||||
filter.RemoveAt(i--);
|
||||
@ -247,6 +260,8 @@ namespace Elwig.Windows {
|
||||
if (filterPartDate.Count > 0) deliveryQuery = deliveryQuery.Where(d => filterPartDate.Contains(d.DateString.Substring(4)));
|
||||
if (filterYearGt > 0) deliveryQuery = deliveryQuery.Where(d => d.Year >= filterYearGt);
|
||||
if (filterYearLt > 0) deliveryQuery = deliveryQuery.Where(d => d.Year < filterYearLt);
|
||||
if (filterTimeGt != null) deliveryQuery = deliveryQuery.Where(d => filterTimeGt.CompareTo(d.TimeString) <= 0);
|
||||
if (filterTimeLt != null) deliveryQuery = deliveryQuery.Where(d => filterTimeLt.CompareTo(d.TimeString) > 0);
|
||||
if (filterVar.Count > 0) deliveryQuery = deliveryQuery.Where(d => d.Parts.Any(p => filterVar.Contains(p.SortId)));
|
||||
if (filterQual.Count > 0) deliveryQuery = deliveryQuery.Where(d => d.Parts.Any(p => filterQual.Contains(p.QualId)));
|
||||
if (filterKmwGt > 0) deliveryQuery = deliveryQuery.Where(d => d.Parts.Any(p => p.Kmw >= filterKmwGt));
|
||||
|
Reference in New Issue
Block a user