2016-06-27 01:45:38 +02:00
using System.Collections.Generic ;
using System.Windows ;
using System.Windows.Controls ;
using System.Windows.Input ;
using BS.Shared ;
using BS.Shared.Extensions ;
using BeWo.ServiceProxy ;
using BeWo.View.Detail ;
using BeWo.ViewModel ;
using BeWo.ViewModel.ListViewModel ;
namespace BeWo.View.Master
{
public partial class AdministrationView
{
private readonly Dictionary < TabItem , BeWoView > _OpenViews = new Dictionary < TabItem , BeWoView > ( ) ;
private bool _SavePerformed ;
public AdministrationView ( )
{
InitializeComponent ( ) ;
// HACK: Force the devexpress grid to end editing when the mouse is over savebutton
// by setting the focus to another element.
MouseMove + = ( s , e ) = >
{
Point p = e . GetPosition ( btnSave ) ;
if ( p . X > = 0 & & p . X < btnSave . ActualWidth & & p . Y > = 0 & & p . Y < btnSave . ActualHeight )
{
root . Focus ( ) ;
}
} ;
if ( ! BeWoApp . LoggedOnUser . HasRight ( UserRightType . AssessmentSheet_View ) )
{
tabitem_assessmentSheetValues . Visibility = Visibility . Collapsed ;
tabitem_assessmentSheetCategories . Visibility = Visibility . Collapsed ;
}
if ( ! BeWoApp . LoggedOnUser . HasRight ( UserRightType . AdditionalService_View ) )
{
tabitem_additionalServices . Visibility = Visibility . Collapsed ;
tabitem_additionalServiceRegions . Visibility = Visibility . Collapsed ;
}
tabitem_auszahlungsarten . Visibility = BeWoApp . LoggedOnUser . HasRight ( UserRightType . OvertimeView ) ? Visibility . Visible : Visibility . Collapsed ;
if ( ! BeWoApp . AppSettings . IsMedicationAllowed )
{
tabitem_medikamentenarten . Visibility = Visibility . Collapsed ;
}
}
public override bool IsDirty
{
get
{
return _OpenViews . ContainsKey ( root . SelectedItem as TabItem ) & & _OpenViews [ root . SelectedItem as TabItem ] . IsDirty ;
}
}
internal override DependencyObject ValidationOnSaveRootElement
{
get { return _OpenViews [ root . SelectedItem as TabItem ] . ValidationOnSaveRootElement ; }
}
internal override bool DoSaveCheck ( )
{
var item = root . SelectedItem as TabItem ;
if ( item ! = null & & _OpenViews . ContainsKey ( item ) )
{
var lDoSave = _OpenViews [ root . SelectedItem as TabItem ] . DoSaveCheck ( ) ;
if ( lDoSave & & IsDirty )
{
_SavePerformed = true ;
_OpenViews . Remove ( root . SelectedItem as TabItem ) ;
}
return lDoSave ;
}
return true ;
}
protected override void Save ( )
{
_OpenViews [ root . SelectedItem as TabItem ] . SaveData ( ) ;
_SavePerformed = true ;
}
private void AddView ( TabItem pTabItem , BeWoView pView )
{
_OpenViews [ pTabItem ] = pView ;
pTabItem . Content = pView ;
pView . VerticalAlignment = VerticalAlignment . Top ;
2017-02-01 13:53:59 +01:00
if ( ActualHeight > 120 & & ! ( pView is MandatorView ) )
{
2016-06-27 01:45:38 +02:00
pView . MaxHeight = ActualHeight - 120 ;
}
_SavePerformed = false ;
}
private void root_PreviewMouseLeftButtonDown ( object sender , MouseButtonEventArgs e )
{
var lTabItem = e . Source as TabItem ;
if ( lTabItem = = null | | Equals ( root . SelectedItem , lTabItem ) )
{
return ;
}
if ( _OpenViews [ root . SelectedItem as TabItem ] . IsDirty )
{
if ( DoSaveCheck ( ) )
{
lTabItem . IsSelected = true ;
}
else
{
e . Handled = true ;
}
}
}
//private void tabitem_InvoiceNumber_Selected(object sender, RoutedEventArgs e)
//{
// if (!this._OpenViews.ContainsKey(this.tabitem_InvoiceNumber) || this._SavePerformed)
// {
// VMFactory.CreateInvoiceNumberVMAsync(r => this.Dispatch(delegate { this.AddView(this.tabitem_InvoiceNumber, new InvoiceNumberView(r)); }));
// }
//}
private void tabitem_absenceCategories_Selected ( object sender , RoutedEventArgs e )
{
if ( ! _OpenViews . ContainsKey ( tabitem_absenceCategories ) | | _SavePerformed )
{
VMFactory . CreateAbsenceReasonListVMAsync ( r = > this . Dispatch ( ( ) = > AddView ( tabitem_absenceCategories , new AbsenceReasonView ( r ) ) ) ) ;
}
}
private void tabitem_activityFocus_Selected ( object sender , RoutedEventArgs e )
{
if ( ! _OpenViews . ContainsKey ( tabitem_activityFocus ) | | _SavePerformed )
{
VMFactory . CreateValueListVMAsync ( ValueListEntryType . StaffActivityFocusType , r = > this . Dispatch ( ( ) = > AddView ( tabitem_activityFocus , new ValueListView ( r ) ) ) ) ;
}
}
private void tabitem_assessmentSheetCategories_Selected ( object sender , RoutedEventArgs e )
{
if ( ! _OpenViews . ContainsKey ( tabitem_assessmentSheetCategories ) | | _SavePerformed )
{
VMFactory . CreateAssessmentSheetCategoryListVM ( m = > this . Dispatch ( ( ) = > AddView ( tabitem_assessmentSheetCategories , new AssessmentSheetCategoryView ( m ) ) ) ) ;
}
}
private void tabitem_assessmentSheetValues_Selected ( object sender , RoutedEventArgs e )
{
if ( ! _OpenViews . ContainsKey ( tabitem_assessmentSheetValues ) | | _SavePerformed )
{
VMFactory . CreateAssessmentSheetValueListVM ( m = > this . Dispatch ( ( ) = > AddView ( tabitem_assessmentSheetValues , new AssessmentSheetValueView ( m ) ) ) ) ;
}
}
private void tabitem_customerCareTypes_Selected ( object sender , RoutedEventArgs e )
{
if ( ! _OpenViews . ContainsKey ( tabitem_customerCareTypes ) | | _SavePerformed )
{
VMFactory . CreateValueListVMAsync ( ValueListEntryType . CustomerCareType , r = > this . Dispatch ( ( ) = > AddView ( tabitem_customerCareTypes , new ValueListView ( r ) ) ) ) ;
}
}
private void tabitem_disablityTypes_Selected ( object sender , RoutedEventArgs e )
{
if ( ! _OpenViews . ContainsKey ( tabitem_disablityTypes ) | | _SavePerformed )
{
VMFactory . CreateValueListVMAsync ( ValueListEntryType . DisabilityType , r = > this . Dispatch ( ( ) = > AddView ( tabitem_disablityTypes , new ValueListView ( r ) ) ) ) ;
}
}
private void tabitem_employmentTypes_Selected ( object sender , RoutedEventArgs e )
{
if ( ! _OpenViews . ContainsKey ( tabitem_employmentTypes ) | | _SavePerformed )
{
VMFactory . CreateEmploymentTypeListVMAsync ( r = > this . Dispatch ( ( ) = > AddView ( tabitem_employmentTypes , new EmploymentTypeView ( r ) ) ) ) ;
}
}
private void tabitem_environmentRoles_Selected ( object sender , RoutedEventArgs e )
{
if ( ! _OpenViews . ContainsKey ( tabitem_environmentRoles ) | | _SavePerformed )
{
//VMFactory.CreateValueListVMAsync(ValueListEntryType.EnvironmentPersonType, r => this.Dispatch(delegate { this.AddView(this.tabitem_environmentRoles, new ValueListView(r)); }));
VMFactory . CreateValueListVMAsync ( ValueListEntryType . EnvironmentPersonType ,
2016-12-08 14:17:41 +01:00
personList = > VMFactory . CreateValueListVMAsync ( ValueListEntryType . RoleInOrganisationType ,
roleInOrgList = > VMFactory . CreateValueListVMAsync ( ValueListEntryType . EnvironmentOrganisationType ,
2016-12-22 15:50:15 +01:00
roleInFamily = > VMFactory . CreateValueListVMAsync ( ValueListEntryType . RoleInFamily ,
2016-12-08 14:17:41 +01:00
orgList = > this . Dispatch ( ( ) = > AddView ( tabitem_environmentRoles ,
2016-12-19 13:12:25 +01:00
new EnvironmentRoleView ( personList , orgList , roleInOrgList , roleInFamily ) ) ) ) ) ) ) ;
2016-12-08 14:17:41 +01:00
2016-06-27 01:45:38 +02:00
}
}
private void tabitem_finazCategories_Selected ( object sender , RoutedEventArgs e )
{
if ( ! _OpenViews . ContainsKey ( tabitem_finazCategories ) | | _SavePerformed )
{
VMFactory . CreateValueListVMAsync ( ValueListEntryType . AccountingTransactionType , r = > this . Dispatch ( ( ) = > AddView ( tabitem_finazCategories , new ValueListView ( r ) ) ) ) ;
}
}
private void tabitem_functions_Selected ( object sender , RoutedEventArgs e )
{
if ( ! _OpenViews . ContainsKey ( tabitem_functions ) | | _SavePerformed )
{
2016-11-08 13:50:58 +01:00
//VMFactory.CreateValueListVMAsync(ValueListEntryType.FunctionType, r => this.Dispatch(() => AddView(tabitem_functions, new ValueListView(r))));
VMFactory . CreateValueListVMAsync ( ValueListEntryType . FunctionType ,
2016-12-22 15:50:15 +01:00
//personList => VMFactory.CreateValueListVMAsync(ValueListEntryType.RoleInOrganisationType,
roleInOrgList = > VMFactory . CreateValueListVMAsync ( ValueListEntryType . OrganisationFunctionType ,
orgList = >
this . Dispatch ( ( ) = > AddView ( tabitem_functions , new EnvironmentRoleView ( /*personList,*/ orgList , roleInOrgList ) ) ) ) ) ;
2016-06-27 01:45:38 +02:00
}
}
2016-12-22 15:50:15 +01:00
//neues Tabitem Nationalität
private void tabitem_Nationality_Selected ( object sender , RoutedEventArgs e )
{
if ( ! _OpenViews . ContainsKey ( tabitem_Nationality ) | | _SavePerformed )
{
VMFactory . CreateValueListVMAsync ( ValueListEntryType . Nationality ,
//personList => VMFactory.CreateValueListVMAsync(ValueListEntryType.RoleInOrganisationType,
natList = >
this . Dispatch ( ( ) = > AddView ( tabitem_Nationality , new NationalityView ( natList ) ) ) ) ;
}
}
//Neues TabItem Aufenthaltsstatus
private void tabitem_Aufenthaltsstatus_Selected ( object sender , RoutedEventArgs e )
{
if ( ! _OpenViews . ContainsKey ( tabitem_Aufenthaltsstatus ) | | _SavePerformed )
{
VMFactory . CreateValueListVMAsync ( ValueListEntryType . Aufenthaltsstatus ,
//personList => VMFactory.CreateValueListVMAsync(ValueListEntryType.RoleInOrganisationType,
orgList = >
this . Dispatch ( ( ) = > AddView ( tabitem_Aufenthaltsstatus , new AufenthaltsView ( orgList ) ) ) ) ;
}
}
2016-06-27 01:45:38 +02:00
private void tabitem_goalcategories_Selected ( object sender , RoutedEventArgs e ) // Ziele und Maßnahmen
{
if ( ! _OpenViews . ContainsKey ( tabitem_goalcategories ) | | _SavePerformed )
{
VMFactory . CreateGoalCategoryVMAsync ( r = > this . Dispatch ( ( ) = > AddView ( tabitem_goalcategories , new MassnahmenTreeViewView ( r ) ) ) ) ;
}
}
private void tabitem_goals_Selected ( object sender , RoutedEventArgs e )
{
//if (!_OpenViews.ContainsKey(tabitem_goals) || _SavePerformed)
//{
// VMFactory.CreateSupportConceptGoalListVMAsync(
// ValueListEntryType.SupportConceptGoalType,
// ValueListEntryType.SupportConceptGoalCategoryType,
// r => this.Dispatch(() => AddView(tabitem_goals, new SupportConceptGoalView(r))));
//}
}
private void tabitem_mandator_Selected ( object sender , RoutedEventArgs e )
{
if ( ! _OpenViews . ContainsKey ( tabitem_mandator ) | | _SavePerformed )
{
ServiceFacade . DoAccountingServiceAsync ( s = > s . LoadInvoiceNumber ( ) ,
iv = > ServiceFacade . DoOperationsServiceAsync (
s = > s . GetMandator ( ) ,
m = >
this . Dispatch ( ( ) = > AddView ( tabitem_mandator , new MandatorView ( new MandatorVM ( new InvoiceNumberVM ( iv ) , m ) ) ) ) ) ) ;
}
}
//SCHEDULER
private void tabitem_schedulerSettings_Selected ( object sender , RoutedEventArgs e )
{
//### CB
//if (!this._OpenViews.ContainsKey(this.tabitem_schedulerSettings) || this._SavePerformed)
//{
// VMFactory.CreateAppointmentCategoryListVMAsync(r => this.Dispatch(delegate { this.AddView(this.tabitem_schedulerSettings, new SchedulerSettingsView(r)); }));
//}
}
private void tabitem_news_Selected ( object sender , RoutedEventArgs e )
{
if ( ! _OpenViews . ContainsKey ( tabitem_news ) | | _SavePerformed )
{
ServiceFacade . DoEmployeeServiceAsync ( s = > s . GetAllNewsItems ( ) , cb = > this . Dispatch ( ( ) = > AddView ( tabitem_news , new NewsItemView ( new NewsItemListVM ( cb ) ) ) ) ) ;
}
}
private void tabitem_placementObjectives_Selected ( object sender , RoutedEventArgs e )
{
if ( ! _OpenViews . ContainsKey ( tabitem_placementObjectives ) | | _SavePerformed )
{
VMFactory . CreateValueListVMAsync ( ValueListEntryType . PlacementObjectiveType , r = > this . Dispatch ( ( ) = > AddView ( tabitem_placementObjectives , new ValueListView ( r ) ) ) ) ;
}
}
private void tabitem_qualificationTypes_Selected ( object sender , RoutedEventArgs e )
{
if ( ! _OpenViews . ContainsKey ( tabitem_qualificationTypes ) | | _SavePerformed )
{
VMFactory . CreateValueListVMAsync ( ValueListEntryType . StaffQualificationsType , r = > this . Dispatch ( ( ) = > AddView ( tabitem_qualificationTypes , new ValueListView ( r ) ) ) ) ;
}
}
private void tabitem_resourceCategories_Selected ( object sender , RoutedEventArgs e )
{
if ( ! _OpenViews . ContainsKey ( tabitem_resourceCategories ) | | _SavePerformed )
{
VMFactory . CreateValueListVMAsync ( ValueListEntryType . ResourceCategory , r = > this . Dispatch ( ( ) = > AddView ( tabitem_resourceCategories , new ValueListView ( r ) ) ) ) ;
}
}
private void tabitem_resources_Selected ( object sender , RoutedEventArgs e )
{
if ( ! _OpenViews . ContainsKey ( tabitem_resources ) | | _SavePerformed )
{
VMFactory . CreateResourceListVMAsync ( r = > this . Dispatch ( ( ) = > AddView ( tabitem_resources , new RessourceView ( r ) ) ) ) ;
}
}
private void tabitem_roles_Selected ( object sender , RoutedEventArgs e )
{
if ( ! _OpenViews . ContainsKey ( tabitem_roles ) | | _SavePerformed )
{
VMFactory . CreateValueListVMAsync ( ValueListEntryType . StaffRoleType , r = > this . Dispatch ( ( ) = > AddView ( tabitem_roles , new ValueListView ( r ) ) ) ) ;
}
}
private void tabitem_serviceCategories_Selected ( object sender , RoutedEventArgs e )
{
if ( ! _OpenViews . ContainsKey ( tabitem_serviceCategories ) | | _SavePerformed )
{
VMFactory . CreateServiceCategoryListVMAsync ( r = > this . Dispatch ( ( ) = > AddView ( tabitem_serviceCategories , new ServiceCategoryView ( r ) ) ) ) ;
}
}
private void tabitem_serviceDescriptions_Selected ( object sender , RoutedEventArgs e )
{
if ( ! _OpenViews . ContainsKey ( tabitem_serviceDescriptions ) | | _SavePerformed )
{
VMFactory . CreateServiceDescriptionListVMAsync ( r = > this . Dispatch ( ( ) = > AddView ( tabitem_serviceDescriptions , new ServiceDescriptionView ( r ) ) ) ) ;
}
}
private void tabitem_terminationReasons_Selected ( object sender , RoutedEventArgs e )
{
if ( ! _OpenViews . ContainsKey ( tabitem_terminationReasons ) | | _SavePerformed )
{
VMFactory . CreateValueListVMAsync ( ValueListEntryType . TerminationReasonType , r = > this . Dispatch ( ( ) = > AddView ( tabitem_terminationReasons , new ValueListView ( r ) ) ) ) ;
}
}
private void tabitem_titles_Selected ( object sender , RoutedEventArgs e )
{
if ( ! _OpenViews . ContainsKey ( tabitem_titles ) | | _SavePerformed )
{
VMFactory . CreateValueListVMAsync ( ValueListEntryType . TitleType , r = > this . Dispatch ( ( ) = > AddView ( tabitem_titles , new ValueListView ( r ) ) ) ) ;
}
}
private void Tabitem_additionalServiceRegions_OnSelected ( object sender , RoutedEventArgs e )
{
if ( ! _OpenViews . ContainsKey ( tabitem_additionalServiceRegions ) | | _SavePerformed )
{
VMFactory . CreateAdditionalServiceRegionListVMAsync ( r = > this . Dispatch ( ( ) = > AddView ( tabitem_additionalServiceRegions , new AdditionalServiceRegionView ( r ) ) ) ) ;
}
}
private void Tabitem_additionalAdditionalServices_OnSelected ( object sender , RoutedEventArgs e )
{
if ( ! _OpenViews . ContainsKey ( tabitem_additionalServices ) | | _SavePerformed )
{
VMFactory . CreateAdditionalServiceListVMAsync ( r = > this . Dispatch ( ( ) = > AddView ( tabitem_additionalServices , new AdditionalServiceAddView ( r ) ) ) ) ;
}
}
private void Tabitem_auszahlungsarten_OnSelected ( object sender , RoutedEventArgs e )
{
if ( ! _OpenViews . ContainsKey ( tabitem_auszahlungsarten ) | | _SavePerformed )
{
VMFactory . CreateAuszahlungsartenListVMAsync ( r = > this . Dispatch ( ( ) = > AddView ( tabitem_auszahlungsarten , new AuszahlungsartenAddView ( r ) ) ) ) ;
}
}
private void tabitem_medikamentenarten_Selected ( object sender , RoutedEventArgs e )
{
if ( ! _OpenViews . ContainsKey ( tabitem_medikamentenarten ) | | _SavePerformed )
VMFactory . CreateMedArtListVMAsync ( r = > this . Dispatch ( ( ) = > AddView ( tabitem_medikamentenarten , new MedikamentenartenView ( r ) ) ) ) ;
}
private void tabitem_textbausteine_Selected ( object sender , RoutedEventArgs e )
{
if ( ! _OpenViews . ContainsKey ( tabitem_textbausteine ) | | _SavePerformed )
{
VMFactory . CreateTextbausteinListVMAsync ( r = > this . Dispatch ( ( ) = > AddView ( tabitem_textbausteine , new TextbausteinView ( r , true ) ) ) , true ) ;
}
}
private void tabitem_dokumenttype_Selected ( object sender , RoutedEventArgs e )
{
if ( ! _OpenViews . ContainsKey ( tabitem_dokumenttype ) | | _SavePerformed )
{
VMFactory . CreateValueListVMAsync ( ValueListEntryType . DocumentType , r = > this . Dispatch ( ( ) = > AddView ( tabitem_dokumenttype , new DokumentationstypView ( r ) ) ) ) ;
}
}
}
}