Files
BeWoPlaner/BeWo/View/Detail/MandatorView.xaml.cs

144 lines
5.1 KiB
C#

using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Documents;
using BeWo.ServiceProxy;
using BeWo.ViewModel;
using BS.Shared.DataContracts;
using BS.Shared.Extensions;
namespace BeWo.View.Detail
{
public partial class MandatorView : BeWoView
{
private MandatorVM _Viewmodel;
public MandatorView(MandatorVM viewModel)
{
InitializeComponent();
ViewModel = viewModel;
if (BeWoApp.LoggedOnUser.HasRight(BS.Shared.UserRightType.ChatAdminSettings) && BeWoApp.AppSettings.ShowOwnChatSettings)
{
var url = ServiceFacade.DoOperationsServiceSync(s => s.GetOwnChatSettingsUrl());
HyperlinkOwnChatSettings.NavigateUri = new Uri(url);
//HyperlinkOwnChatSettings.Inlines.Add("testtestestt");
//HyperlinkOwnChatSettings.Text
}
else
{
GroupOwnChatSettings.Visibility = Visibility.Collapsed;
}
if (!BeWoApp.AppSettings.ShowWorktime)
{
EnableArbeitszeiterfassung.Visibility = Visibility.Collapsed;
EnableAutomaticPauses.Visibility = Visibility.Collapsed;
EnableRestTimeWarning.Visibility = Visibility.Collapsed;
TextBlockShowWarning.Visibility = Visibility.Collapsed;
SpinEditShowWarning.Visibility = Visibility.Collapsed;
}
ComboZeiteinheit.ItemsSource = new List<String> { "Minuten", "Stunden", "Stunden und Minuten" };
if (viewModel.EinheitZeiterfassung.Equals("1"))
{
ComboZeiteinheit.SelectedIndex = 1;
}
else if (viewModel.EinheitZeiterfassung.Equals("2"))
{
ComboZeiteinheit.SelectedIndex = 2;
}
else
{
ComboZeiteinheit.SelectedIndex = 0;
}
#if DEBUG
var url2 = ServiceFacade.DoOperationsServiceSync(s => s.GetOwnChatSettingsUrl());
HyperlinkOwnChatSettings.NavigateUri = new Uri(url2);
GroupOwnChatSettings.Visibility = Visibility.Visible;
#endif
}
public override bool IsDirty
{
get { return ViewModel != null && ViewModel.IsDirty; }
}
private MandatorVM ViewModel
{
get
{
return this._Viewmodel;
}
set
{
this.DataContext = value;
this._Viewmodel = value;
if (ViewModel.InvoiceNumberList.Count > 1)
{
lblSchema.Visibility = Visibility.Collapsed;
txtSchema.Visibility = Visibility.Collapsed;
lblNumber.Visibility = Visibility.Collapsed;
spinedit_number.Visibility = Visibility.Collapsed;
}
else
{
GridControlInvoiceNumbers.Visibility = Visibility.Collapsed;
}
}
}
protected override void Save()
{
var invoiceNumberList = new List<InvoiceNumberDC>();
foreach (var ivm in this.ViewModel.InvoiceNumberList)
{
invoiceNumberList.Add(ivm.CommitToDataContract());
}
ServiceFacade.DoAccountingServiceAsync(
s => s.UpdateInvoiceNumberList(invoiceNumberList),
inl => ServiceFacade.DoOperationsServiceAsync(
s => s.UpdateMandator(this.ViewModel.CommitToDataContract()),
m => this.Dispatch(
delegate
{
var vmList = new List<InvoiceNumberVM>();
foreach (var indc in inl)
{
vmList.Add(new InvoiceNumberVM(indc));
}
this.ViewModel = new MandatorVM(vmList, m);
BeWoApp.Mandator = m;
})));
}
private void Hyperlink_ShowOwnChatSettings_Click(object sender, RoutedEventArgs e)
{
System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo((sender as Hyperlink).NavigateUri.ToString()));
e.Handled = true;
}
private void ComboZeiteinheit_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
{
if (ComboZeiteinheit.SelectedIndex == 1)
{
ViewModel.EinheitZeiterfassung = "1";
}
else if (ComboZeiteinheit.SelectedIndex == 2)
{
ViewModel.EinheitZeiterfassung = "2";
}
else
{
ViewModel.EinheitZeiterfassung = "0";
}
}
}
}