Add some util functions
This commit is contained in:
@ -246,5 +246,50 @@ namespace Elwig.Helpers {
|
|||||||
}
|
}
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static object? GetItemFromSource(IEnumerable source, Func<object?, object?> getId, object? id) {
|
||||||
|
if (source == null)
|
||||||
|
return null;
|
||||||
|
var items = source.Cast<object>();
|
||||||
|
var item = items.Where(i => getId(i)?.Equals(id) ?? false).FirstOrDefault();
|
||||||
|
if (item == null && items.Any(i => i is NullItem))
|
||||||
|
return items.Where(i => i is NullItem).First();
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static object? GetItemFromSource(IEnumerable source, object? item, Func<object?, object?> getId) {
|
||||||
|
return GetItemFromSource(source, getId, getId(item));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void SelectComboBoxItem(ComboBox cb, Func<object?, object?> getId, object? id) {
|
||||||
|
cb.SelectedItem = GetItemFromSource(cb.ItemsSource, getId, id);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void SelectComboBoxItem(ComboBox cb, object? item, Func<object?, object?> getId) {
|
||||||
|
SelectComboBoxItem(cb, getId, getId(item));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IEnumerable<object?> GetItemsFromSource(IEnumerable source, Func<object?, object?> getId, IEnumerable<object?> id) {
|
||||||
|
if (source == null)
|
||||||
|
return Array.Empty<object>();
|
||||||
|
return source.Cast<object>().Where(i => getId(i)?.Equals(id) ?? false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IEnumerable<object?> GetItemsFromSource(IEnumerable source, IEnumerable<object?>? items, Func<object?, object?> getId) {
|
||||||
|
if (items == null)
|
||||||
|
return Array.Empty<object>();
|
||||||
|
return GetItemsFromSource(source, getId, items.Select(i => getId(i)));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void SelectCheckComboBoxItems(Xceed.Wpf.Toolkit.CheckComboBox ccb, Func<object?, object?> getId, IEnumerable<object?>? ids) {
|
||||||
|
ccb.SelectedItems.Clear();
|
||||||
|
if (ids == null) return;
|
||||||
|
foreach (var id in ids)
|
||||||
|
ccb.SelectedItems.Add(Utils.GetItemFromSource(ccb.SelectedItems, getId, id));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void SelectCheckComboBoxItems(Xceed.Wpf.Toolkit.CheckComboBox ccb, IEnumerable<object>? items, Func<object?, object?> getId) {
|
||||||
|
SelectCheckComboBoxItems(ccb, getId, GetItemsFromSource(ccb.ItemsSource, items, getId));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -128,7 +128,7 @@ namespace Elwig.Windows {
|
|||||||
var y = (d?.Year ?? Utils.CurrentLastSeason);
|
var y = (d?.Year ?? Utils.CurrentLastSeason);
|
||||||
Utils.RenewItemsSource(MemberInput, await Context.Members.OrderBy(m => m.FamilyName).ThenBy(m => m.GivenName).ToListAsync(), i => (i as Member)?.MgNr);
|
Utils.RenewItemsSource(MemberInput, await Context.Members.OrderBy(m => m.FamilyName).ThenBy(m => m.GivenName).ToListAsync(), i => (i as Member)?.MgNr);
|
||||||
Utils.RenewItemsSource(BranchInput, await Context.Branches.OrderBy(b => b.Name).ToListAsync(), i => (i as Branch)?.ZwstId);
|
Utils.RenewItemsSource(BranchInput, await Context.Branches.OrderBy(b => b.Name).ToListAsync(), i => (i as Branch)?.ZwstId);
|
||||||
BranchInput.SelectedItem = BranchInput.ItemsSource.Cast<Branch>().First(b => b.ZwstId == App.ZwstId);
|
Utils.SelectComboBoxItem(BranchInput, i => (i as Branch)?.ZwstId, App.ZwstId);
|
||||||
Utils.RenewItemsSource(WineVarietyInput, await Context.WineVarieties.OrderBy(v => v.Name).ToListAsync(), i => (i as WineVar)?.SortId);
|
Utils.RenewItemsSource(WineVarietyInput, await Context.WineVarieties.OrderBy(v => v.Name).ToListAsync(), i => (i as WineVar)?.SortId);
|
||||||
Utils.RenewItemsSource(AttributesInput, await Context.WineAttributes.OrderBy(a => a.Name).ToListAsync(), i => (i as WineAttr)?.AttrId);
|
Utils.RenewItemsSource(AttributesInput, await Context.WineAttributes.OrderBy(a => a.Name).ToListAsync(), i => (i as WineAttr)?.AttrId);
|
||||||
Utils.RenewItemsSource(WineQualityLevelInput, await Context.WineQualityLevels.ToListAsync(), i => (i as WineQualLevel)?.QualId);
|
Utils.RenewItemsSource(WineQualityLevelInput, await Context.WineQualityLevels.ToListAsync(), i => (i as WineQualLevel)?.QualId);
|
||||||
@ -180,17 +180,16 @@ namespace Elwig.Windows {
|
|||||||
|
|
||||||
var p = DeliveryPartList.SelectedItem as DeliveryPart;
|
var p = DeliveryPartList.SelectedItem as DeliveryPart;
|
||||||
SortIdInput.Text = p?.SortId ?? "";
|
SortIdInput.Text = p?.SortId ?? "";
|
||||||
AttributesInput.SelectedItems.Clear();
|
Utils.SelectCheckComboBoxItems(AttributesInput, p?.Attributes, i => (i as WineAttr)?.AttrId);
|
||||||
foreach (var a in p?.Attributes ?? Array.Empty<WineAttr>())
|
GradationKmwInput.Text = (p != null) ? $"{p.Kmw:N1}" : "";
|
||||||
AttributesInput.SelectedItems.Add(AttributesInput.ItemsSource.Cast<WineAttr>().Where(i => i.AttrId == a.AttrId).First());
|
Utils.SelectComboBoxItem(WineQualityLevelInput, q => (q as WineQualLevel)?.QualId, p?.QualId);
|
||||||
GradationKmwInput.Text = p?.Kmw.ToString() ?? "";
|
Utils.SelectComboBoxItem(WineKgInput, k => (k as AT_Kg)?.KgNr, p?.KgNr);
|
||||||
WineQualityLevelInput.SelectedItem = p?.Quality ?? null;
|
Utils.SelectComboBoxItem(WineRdInput, r => (r as WbRd)?.RdNr, p?.RdNr);
|
||||||
|
Utils.SelectComboBoxItem(WineOriginInput, r => (r as WineOrigin)?.HkId, p?.HkId);
|
||||||
WeightInput.Text = p?.Weight.ToString() ?? "";
|
WeightInput.Text = p?.Weight.ToString() ?? "";
|
||||||
ManualWeighingInput.IsChecked = p?.ManualWeighing ?? false;
|
ManualWeighingInput.IsChecked = p?.ManualWeighing ?? false;
|
||||||
GerebeltGewogenInput.IsChecked = p?.IsGerebelt ?? false;
|
GerebeltGewogenInput.IsChecked = p?.IsGerebelt ?? false;
|
||||||
ModifiersInput.SelectedItems.Clear();
|
Utils.SelectCheckComboBoxItems(ModifiersInput, p?.Modifiers, i => (i as Modifier)?.ModId);
|
||||||
foreach (var m in p?.Modifiers ?? Array.Empty<Modifier>())
|
|
||||||
ModifiersInput.SelectedItems.Add(ModifiersInput.ItemsSource.Cast<Modifier>().Where(i => i.ModId == m.ModId).First());
|
|
||||||
PartCommentInput.Text = p?.Comment ?? "";
|
PartCommentInput.Text = p?.Comment ?? "";
|
||||||
TemperatureInput.Text = p?.Temperature?.ToString() ?? "";
|
TemperatureInput.Text = p?.Temperature?.ToString() ?? "";
|
||||||
AcidInput.Text = p?.Acid?.ToString() ?? "";
|
AcidInput.Text = p?.Acid?.ToString() ?? "";
|
||||||
|
Reference in New Issue
Block a user