using System;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
using BS.Shared.Core;
using BS.Shared.DataContracts;
namespace BeWo.View.Controls
{
///
/// Interaktionslogik für AdditionalServiceGroupOfPeopleSelectionControl.xaml
///
public partial class AdditionalServiceGroupOfPeopleSelectionControl : UserControl
{
private AdditionalServiceGroupOfPeopleDC mSelectedAdditionalServiceGroupOfPeopleDC;
public AdditionalServiceGroupOfPeopleSelectionControl()
{
InitializeComponent();
SearchView.ControlInitialized += SearchView_ControlInitialized;
}
void SearchView_ControlInitialized(object sender, EventArgs e)
{
if (ControlInitialized != null)
ControlInitialized(this, new EventArgs());
}
public event EventHandler ControlInitialized;
public event EventHandler> ItemSelected;
public AdditionalServiceGroupOfPeopleDC SelectedItem
{
get { return mSelectedAdditionalServiceGroupOfPeopleDC; }
set
{
mSelectedAdditionalServiceGroupOfPeopleDC = value;
UpdateControls();
}
}
public string SearchText
{
get { return SearchView.SearchText; }
set { SearchView.SearchText = value; }
}
private void AdditionalServiceGroupOfPeopleSearchView_ItemSelected(object sender, EventArgs e)
{
popupAdditionalServiceGroupsOfPeople.IsOpen = false;
SetSelectedAdditionalServiceGroupOfPeople(e.Data);
}
private void SetSelectedAdditionalServiceGroupOfPeople(AdditionalServiceGroupOfPeopleDC dc)
{
mSelectedAdditionalServiceGroupOfPeopleDC = dc;
UpdateControls();
if (ItemSelected != null)
ItemSelected(this, new EventArgs(mSelectedAdditionalServiceGroupOfPeopleDC));
}
private void UpdateControls()
{
img.Visibility = mSelectedAdditionalServiceGroupOfPeopleDC == null ? Visibility.Collapsed : Visibility.Visible;
if (ItemContent != null)
ItemContent.DataContext = mSelectedAdditionalServiceGroupOfPeopleDC;
}
private void btnSelectAdditionalServiceGroupOfPeople_Click(object sender, RoutedEventArgs e)
{
popupAdditionalServiceGroupsOfPeople.IsOpen = true;
}
internal void SetSelectedAdditionalServiceGroupOfPeopleOid(long pOid)
{
var items = SearchView.AdditionalServiceGroupsOfPeople;
if (items == null)
return;
AdditionalServiceGroupOfPeopleDC found = null;
foreach (var sc in items.Where(sc => found == null).Where(sc => sc != null && sc.AdditionalServiceGroupOfPeopleOid == pOid))
found = sc;
if (found != null)
SetSelectedAdditionalServiceGroupOfPeople(found);
}
}
}