2012 lines
97 KiB
C#
2012 lines
97 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Collections.ObjectModel;
|
|
using System.ComponentModel;
|
|
using System.Drawing;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Net;
|
|
using System.Text;
|
|
using System.Text.RegularExpressions;
|
|
using System.Threading;
|
|
using System.Windows;
|
|
using System.Windows.Controls;
|
|
using System.Windows.Forms;
|
|
using System.Windows.Input;
|
|
using System.Windows.Media.Imaging;
|
|
|
|
using BS.Shared;
|
|
using BS.Shared.Core;
|
|
using BS.Shared.DataContracts;
|
|
using BS.Shared.DataContracts.Compact;
|
|
using BS.Shared.Extensions;
|
|
|
|
using BeWo.Controls;
|
|
using BeWo.ServiceProxy;
|
|
using BeWo.View;
|
|
using BeWo.View.Controls;
|
|
using BeWo.View.Detail;
|
|
using BeWo.View.Detail.Accounting;
|
|
using BeWo.View.Detail.Report;
|
|
using BeWo.View.Master;
|
|
using BeWo.View.Navigation;
|
|
using BeWo.View.Report.Auslastung;
|
|
using BeWo.View.Report.FLSReport;
|
|
using BeWo.View.Search;
|
|
using BeWo.ViewModel;
|
|
|
|
using DevExpress.Xpf.Core;
|
|
using DevExpress.Xpf.Core.Native;
|
|
using DevExpress.Xpf.Grid;
|
|
using DevExpress.XtraReports.UI;
|
|
using DevExpress.Xpf.Printing;
|
|
using Brushes = System.Windows.Media.Brushes;
|
|
using Image = System.Windows.Controls.Image;
|
|
using MessageBox = System.Windows.MessageBox;
|
|
using Panel = System.Windows.Controls.Panel;
|
|
using System.Windows.Media;
|
|
using System.Windows.Threading;
|
|
using BeWo.ownChat;
|
|
using BeWo.PasswortSecurity;
|
|
using ChatController.HauptKlassen;
|
|
using DevExpress.Xpf.Bars;
|
|
using DevExpress.Xpf.DocumentViewer;
|
|
using DevExpress.Xpf.Printing.PreviewControl.Bars;
|
|
using Newtonsoft.Json;
|
|
|
|
namespace BeWo.Core
|
|
{
|
|
public static class BeWoUtils
|
|
{
|
|
public static Dictionary<string, string> ParseQuery(string query)
|
|
{
|
|
try
|
|
{
|
|
if (query.IndexOf('?') >= 0)
|
|
{
|
|
query = query.Split('?')[1];
|
|
|
|
var valueArray = Regex.Split(query, @"[\&]{0,1}[A-Za-z0-9]+[\=]{1}");
|
|
var paramArray = Regex.Split(query, @"[\=][A-Za-z0-9;]+");
|
|
|
|
valueArray = valueArray.Where(t => !string.IsNullOrWhiteSpace(t)).ToArray();
|
|
paramArray = paramArray.Where(t => !string.IsNullOrWhiteSpace(t)).ToArray();
|
|
|
|
var queryDictionary = new Dictionary<string, string>();
|
|
|
|
int ixg = 0;
|
|
foreach (var item in paramArray)
|
|
{
|
|
queryDictionary.Add(item.Contains("&") ? Regex.Split(item, @"[\?]|[\&]")[1] : item,
|
|
valueArray[ixg]);
|
|
ixg++;
|
|
if (ixg >= valueArray.Length)
|
|
break;
|
|
}
|
|
|
|
return queryDictionary;
|
|
}
|
|
return new Dictionary<string, string>();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Exception(String.Format("Error while parsing query '{0}'\n{1}", query, ex.Message), ex);
|
|
}
|
|
}
|
|
|
|
public static void NavigateToReportUri(string navigateUriString, string title)
|
|
{
|
|
NavigateToReportUriWithDocumentPreviewControl(navigateUriString, title, null);
|
|
}
|
|
|
|
public static void NavigateToReportUriWithDocumentPreviewControl(string navigateUriString, string title, DocumentPreviewControl dp)
|
|
{
|
|
BeWoApp.MainControl.StartWaiting();
|
|
|
|
StartGetReportStreamAsync(GetReportStreamForWPFControl, navigateUriString, ms => BeWoApp.MainControl.Dispatch(delegate
|
|
{
|
|
ShowReportWindow(ms, title, dp);
|
|
}));
|
|
}
|
|
|
|
private static void CustomizeReportPreviewToolBar(object s, RoutedEventArgs e)
|
|
{
|
|
var cont = LayoutHelper.FindElementByType(s as FrameworkElement, typeof(BarContainerControl)) as BarContainerControl;
|
|
|
|
if(cont != null)
|
|
{
|
|
var toolbar = cont.Bars.First() as ToolBarControl;
|
|
|
|
foreach(var item in toolbar.Items)
|
|
{
|
|
if(item.GetType() == typeof(OpenDocumentBarItem) ||
|
|
item.GetType() == typeof(DocumentMapBarCheckItem) ||
|
|
item.GetType() == typeof(WatermarkBarItem) ||
|
|
item.GetType() == typeof(ScaleBarItem) ||
|
|
item.GetType() == typeof(PrintDirectBarItem) ||
|
|
item.GetType() == typeof(PageSetupBarItem) ||
|
|
item.GetType() == typeof(SaveBarItem) ||
|
|
item.GetType() == typeof(SendSplitItem) ||
|
|
item.GetType() == typeof(ParametersBarCheckItem) ||
|
|
item.GetType() == typeof(ThumbnailsBarCheckItem) ||
|
|
item.GetType() == typeof(EditingFieldsBarCheckItem))
|
|
{
|
|
item.SetPropertyValue("IsVisible", false);
|
|
}
|
|
|
|
if(item.GetType() == typeof(ExportSplitItem))
|
|
{
|
|
var exportSplitItem = item as ExportSplitItem;
|
|
var popupMenu = (PopupMenu) exportSplitItem.PopupControl;
|
|
foreach(var link in popupMenu.Items)
|
|
{
|
|
var bbi = (BarButtonItem) link;
|
|
|
|
switch(bbi.BarItemName)
|
|
{
|
|
case "bExportMht":
|
|
bbi.IsVisible = false;
|
|
break;
|
|
case "bExportCsv":
|
|
bbi.IsVisible = false;
|
|
break;
|
|
case "bExportTxt":
|
|
bbi.IsVisible = false;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public static void StartGetReportStreamAsync(Func<string, MemoryStream> func, string param, Action<MemoryStream> callback)
|
|
{
|
|
func.BeginInvoke(param,
|
|
cb =>
|
|
{
|
|
try
|
|
{
|
|
var result = func.EndInvoke(cb);
|
|
if (callback != null)
|
|
{
|
|
callback(result);
|
|
}
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
BeWoApp.ShowError(null, e, true);
|
|
BeWoApp.MainControl.EndWaiting();
|
|
}
|
|
},
|
|
null);
|
|
}
|
|
|
|
public static MemoryStream GetReportStreamForWPFControl(string navigateUriString)
|
|
{
|
|
var webClient = new BeWoWebClient();
|
|
|
|
var refreshedUriString = RefreshNavigateUriString(navigateUriString);
|
|
var data = webClient.DownloadData(refreshedUriString);
|
|
|
|
return new MemoryStream(data);
|
|
}
|
|
|
|
public static string RemoveAuthenticationInfoFromUri(string navigateUri)
|
|
{
|
|
var regex = new Regex(@"[\&|\?]?token\=[A-Za-z0-9]+|[\&|\?]?tenant\=[A-Za-z0-9]+|[\&|\?]?username\=[A-Za-z0-9.]+");
|
|
var splittedUri = regex.Split(navigateUri.Split('?')[1]);
|
|
var cleanedSplittedUri = splittedUri.Where(t => !string.IsNullOrWhiteSpace(t)).ToArray();
|
|
var uriValues = cleanedSplittedUri.Aggregate(string.Empty, (current, item) => current + item);
|
|
|
|
return navigateUri.Split('?')[0] + "?" + uriValues;
|
|
}
|
|
|
|
private static string RefreshNavigateUriString(string navigateUri)
|
|
{
|
|
if (navigateUri.Contains("tenant"))
|
|
navigateUri = RemoveAuthenticationInfoFromUri(navigateUri);
|
|
|
|
var tempToken = string.Empty;
|
|
|
|
ServiceFacade.DoDownloadServiceSync(s => tempToken = s.CreateTemporaryToken(navigateUri, false));
|
|
|
|
var addChar = (navigateUri.Contains("?")) ? "&" : "?";
|
|
|
|
var finalUri = string.Format("{0}{1}token={2}", navigateUri, addChar, tempToken);
|
|
|
|
return finalUri;
|
|
}
|
|
|
|
public static bool CheckPopupEditClickableSpace(PopUpEdit popupedit, MouseButtonEventArgs e)
|
|
{
|
|
var buttonWidth = 22d;
|
|
var pos = e.GetPosition(popupedit);
|
|
|
|
if (popupedit.NewButtonVisibility == Visibility.Visible)
|
|
buttonWidth += 22;
|
|
|
|
if (popupedit.DeleteButtonVisibility == Visibility.Visible)
|
|
buttonWidth += 22;
|
|
|
|
return !(pos.X > popupedit.ActualWidth - buttonWidth);
|
|
}
|
|
|
|
public static void UpdateSearchViewObjectList<T, U>(T searchView, U updatedDC)
|
|
where T : GenericSearchView<U>
|
|
where U : class, IDataContract, IFilterableDC
|
|
{
|
|
var newSearchObjectList = new List<U>();
|
|
|
|
if (typeof (U) == typeof (CompactSupportConceptDC))
|
|
{
|
|
var uSC = updatedDC as CompactSupportConceptDC;
|
|
|
|
newSearchObjectList = searchView.ObjectList;
|
|
|
|
if (newSearchObjectList.Contains(updatedDC))
|
|
{
|
|
newSearchObjectList[newSearchObjectList.IndexOf(updatedDC)] = updatedDC;
|
|
}
|
|
|
|
foreach (var oldDC in newSearchObjectList.Select(item => item as CompactSupportConceptDC).Where(oldDC => oldDC.Customer.Equals(uSC.Customer)))
|
|
{
|
|
oldDC.Customer = uSC.Customer;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
foreach (var oldDC in searchView.ObjectList.Where(oldDC => !newSearchObjectList.Contains(oldDC)))
|
|
{
|
|
newSearchObjectList.Add(updatedDC.Equals(oldDC) ? updatedDC : oldDC);
|
|
}
|
|
}
|
|
|
|
searchView.ObjectList = null;
|
|
searchView.ObjectList = newSearchObjectList;
|
|
}
|
|
|
|
public static void OpenModalViewWindow<T, U, V>(
|
|
T viewModel,
|
|
V ownerView,
|
|
Action applyChanges,
|
|
EventHandler<EventArgs<OrganisationVM>> organisationSavedOrUpdated = null,
|
|
EventHandler<EventArgs<PersonVM>> personSavedOrUpdated = null, bool allowSaveIfParentDirty = false)
|
|
where T : AbstractDCMapperVM<U>
|
|
where U : IDataContract, new()
|
|
where V : BeWoView
|
|
{
|
|
var tType = typeof(T);
|
|
var View = new BeWoView();
|
|
|
|
if (tType == typeof(EmployeeVM))
|
|
{
|
|
View = new EmployeeView(viewModel as EmployeeVM) { ParentView = ownerView, MinWidth = 800, IsInWindow = true };
|
|
}
|
|
else if (tType == typeof(WohnheimVM))
|
|
{
|
|
View = new WohnheimView(viewModel as WohnheimVM) { ParentView = ownerView, MinWidth = 800, IsInWindow = true };
|
|
}
|
|
else if (tType == typeof (OrganisationVM))
|
|
{
|
|
View = new OrganisationView(viewModel as OrganisationVM) { ParentView = ownerView, MinWidth = 800, IsInWindow = true };
|
|
(View as OrganisationView).OrganisationSavedOrUpdated += organisationSavedOrUpdated;
|
|
}
|
|
else if (tType == typeof (PersonVM))
|
|
{
|
|
View = new PersonView(viewModel as PersonVM) {ParentView = ownerView, MinWidth = 800, IsInWindow = true};
|
|
(View as PersonView).PersonSavedOrUpdated += personSavedOrUpdated;
|
|
}
|
|
else if (tType == typeof (TeamVM))
|
|
{
|
|
View = new TeamView(viewModel as TeamVM) {ParentView = ownerView, MinWidth = 800, IsInWindow = true};
|
|
}
|
|
else if(tType==typeof(CustomerVM))
|
|
{
|
|
View = new CustomerView(viewModel as CustomerVM) { ParentView = ownerView, MinWidth = 800, IsInWindow = true };
|
|
}
|
|
else if(tType==typeof(SupportConceptVM))
|
|
{
|
|
View = new SupportConceptView(viewModel as SupportConceptVM) { ParentView = ownerView, MinWidth = 800, IsInWindow = true };
|
|
}
|
|
else
|
|
{
|
|
return;
|
|
}
|
|
|
|
View.ModalEditViewUpdateCallback = applyChanges;
|
|
|
|
var modalViewWindow = new ModalViewWindow(View, ownerView, allowSaveIfParentDirty);
|
|
|
|
BeWoApp.MainControl.OpenedModalViewWindows.Add(modalViewWindow);
|
|
|
|
foreach (var window in BeWoApp.MainControl.OpenedModalViewWindows.Where(window => !BeWoApp.MainControl.OpenedModalViewWindows.Last().Equals(window)))
|
|
{
|
|
ShowModalBackground(window.RootGrid);
|
|
}
|
|
|
|
var dialogResult = modalViewWindow.ShowDialog();
|
|
|
|
if (BeWoApp.MainControl.OpenedModalViewWindows.Count > 1)
|
|
{
|
|
var nextToLastWindow = BeWoApp.MainControl.OpenedModalViewWindows.ElementAt(BeWoApp.MainControl.OpenedModalViewWindows.Count - 2);
|
|
nextToLastWindow.RootGrid.Children.RemoveAt(1);
|
|
}
|
|
|
|
BeWoApp.MainControl.OpenedModalViewWindows.Remove(modalViewWindow);
|
|
}
|
|
|
|
public static bool CheckViewIsCalledFromWindow(BeWoView view)
|
|
{
|
|
return ((Grid) view.Parent).Parent.GetType() == typeof (Window);
|
|
}
|
|
|
|
private static void ShowModalBackground(Grid gridToBlock)
|
|
{
|
|
var detailViewBackGround = new Grid
|
|
{
|
|
IsHitTestVisible = true,
|
|
Background = Brushes.White,
|
|
Opacity = .5,
|
|
Name = "DetailViewBackGround"
|
|
};
|
|
|
|
if (gridToBlock.Children.OfType<Grid>().Any(obj => obj.Name.Equals("DetailViewBackGround")))
|
|
return;
|
|
|
|
Grid.SetColumnSpan(detailViewBackGround, 3);
|
|
Grid.SetRowSpan(detailViewBackGround, 3);
|
|
gridToBlock.Children.Add(detailViewBackGround);
|
|
Panel.SetZIndex(detailViewBackGround, int.MaxValue - 1);
|
|
}
|
|
|
|
public static void UpdateAllViews<T>(T updatedObject) where T : IFilterableDC
|
|
{
|
|
var activeView = BeWoApp.MainControl.ActiveView;
|
|
UpdateView(activeView, updatedObject);
|
|
|
|
if (BeWoApp.MainControl.OpenedModalViewWindows.Count <= 0)
|
|
{
|
|
return;
|
|
}
|
|
|
|
foreach(var view in BeWoApp.MainControl.OpenedModalViewWindows)
|
|
{
|
|
UpdateView(view.DetailView, updatedObject);
|
|
}
|
|
}
|
|
|
|
private static void UpdateView<T>(BeWoView view, T updatedObject) where T : IFilterableDC
|
|
{
|
|
if (view.GetType() == typeof (EmployeeView))
|
|
{
|
|
#region EmployeeView
|
|
if (typeof (T) == typeof (CompactCustomerDC))
|
|
{
|
|
var updatedCustomer = new CompactCustomerDC();
|
|
|
|
ServiceFacade.DoCustomerServiceSync(s => updatedCustomer = s.GetCompactCustomerDC((updatedObject as CompactCustomerDC).CustomerOid));
|
|
|
|
foreach (var item in (view as EmployeeView).ViewModel.CustomerRelations.VMList.Where(item => item.Customer.Equals(updatedCustomer)))
|
|
{
|
|
item.Customer = updatedCustomer;
|
|
}
|
|
|
|
var grid = (view as EmployeeView).rootGrid.FindResource("grid_CustomerRelation") as GridControl;
|
|
|
|
foreach (var item in ((BindingList<CustomerEmployeeRelationVM>) grid.ItemsSource).Where(item => item.Customer.Equals(updatedCustomer)))
|
|
{
|
|
item.Customer = null;
|
|
item.Customer = updatedCustomer;
|
|
}
|
|
|
|
grid.RefreshData();
|
|
}
|
|
if (typeof (T) == typeof (CompactEmployeeDC))
|
|
{
|
|
UpdateLoggedInEmployee((updatedObject as CompactEmployeeDC).EmployeeOid);
|
|
(view as EmployeeView).ReloadViewModel();
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
else if (view.GetType() == typeof(WohnheimView))
|
|
{
|
|
#region WohnheimView
|
|
if (typeof(T) == typeof(CompactCustomerDC))
|
|
{
|
|
var updatedCustomer = new CompactCustomerDC();
|
|
|
|
ServiceFacade.DoCustomerServiceSync(s => updatedCustomer = s.GetCompactCustomerDC((updatedObject as CompactCustomerDC).CustomerOid));
|
|
|
|
var grid = (view as WohnheimView).grid_CustomerRelation;
|
|
|
|
foreach (var item in ((BindingList<WohnheimCustomerRelationVM>)grid.ItemsSource).Where(item => item.Customer.Equals(updatedCustomer)))
|
|
{
|
|
item.Customer = null;
|
|
item.Customer = updatedCustomer;
|
|
}
|
|
|
|
grid.RefreshData();
|
|
}
|
|
|
|
if (typeof(T) == typeof(CompactEmployeeDC))
|
|
{
|
|
var updatedEmployee = new CompactEmployeeDC();
|
|
|
|
ServiceFacade.DoEmployeeServiceSync(s => updatedEmployee = s.LoadCompactEmployee((updatedObject as CompactEmployeeDC).EmployeeOid));
|
|
|
|
var employeeRelationsGrid = (view as WohnheimView).grid_EmployeeRelation;
|
|
|
|
foreach (var item in ((BindingList<WohnheimEmployeeRelationVM>)employeeRelationsGrid.ItemsSource).Where(item => item.Employee.EmployeeOid.Equals(updatedEmployee.EmployeeOid)))
|
|
{
|
|
item.Employee = null;
|
|
item.Employee = updatedEmployee;
|
|
}
|
|
|
|
UpdateLoggedInEmployee((updatedObject as CompactEmployeeDC).EmployeeOid);
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
else if (view.GetType() == typeof(CustomerView))
|
|
{
|
|
#region CustomerView
|
|
var customerView = view as CustomerView;
|
|
|
|
if (typeof(T) == typeof(CompactEmployeeDC))
|
|
{
|
|
var updatedEmployee = new CompactEmployeeDC();
|
|
var grid = new GridControl();
|
|
|
|
if (!string.IsNullOrWhiteSpace(customerView.popupedit_employeeRelations.Text))
|
|
{
|
|
ServiceFacade.DoEmployeeServiceSync(s => updatedEmployee = s.LoadCompactEmployee((updatedObject as CompactEmployeeDC).EmployeeOid));
|
|
customerView.ViewModel.EmployeeRelations.NewVM.Employee = null;
|
|
customerView.ViewModel.EmployeeRelations.NewVM.Employee = updatedEmployee;
|
|
}
|
|
else
|
|
{
|
|
ServiceFacade.DoEmployeeServiceSync(s => updatedEmployee = s.LoadCompactEmployee((updatedObject as CompactEmployeeDC).EmployeeOid));
|
|
}
|
|
|
|
grid = (GridControl)customerView.root.Resources["datagrid_EmployeeRelation"];
|
|
|
|
foreach (var item in ((BindingList<CustomerEmployeeRelationVM>)grid.ItemsSource).Where(item => item.Employee.EmployeeOid.Equals(updatedEmployee.EmployeeOid)))
|
|
{
|
|
item.Employee = null;
|
|
item.Employee = updatedEmployee;
|
|
}
|
|
|
|
grid.RefreshData();
|
|
|
|
UpdateSearchViewObjectList(customerView.employeesearchview, updatedEmployee);
|
|
UpdateLoggedInEmployee(updatedEmployee.EmployeeOid);
|
|
}
|
|
else if (typeof(T) == typeof(CompactPersonDC))
|
|
{
|
|
var grid = new GridControl();
|
|
var updatedPerson = new CompactPersonDC();
|
|
|
|
ServiceFacade.DoCustomerServiceSync(s => updatedPerson = s.LoadPersonCompact((updatedObject as CompactPersonDC).PersonOid));
|
|
|
|
if (!(string.IsNullOrWhiteSpace(customerView.popupedit_environmentPersonSearch.Text)) && (view as CustomerView).popupedit_environmentPersonSearch.Text.Equals((updatedObject as CompactPersonDC).ToString()))
|
|
{
|
|
customerView.ViewModel.EnvironmentPersons.NewVM.Person = null;
|
|
customerView.ViewModel.EnvironmentPersons.NewVM.Person = updatedPerson;
|
|
}
|
|
|
|
grid = (GridControl) customerView.root.Resources["grid_PersonRelations"];
|
|
|
|
var vmList = customerView.ViewModel.EnvironmentPersons.VMList;
|
|
var relVMs = vmList.Where(w => w.Person.PersonOid.Equals(updatedPerson.PersonOid)).Where(w => !w.IsNew);
|
|
var relPersonOids = relVMs.Select(s => s.CommitToDataContract().Customer2PersonOid.Value).ToList();
|
|
|
|
var dataContracts = new List<CustomerPersonRelationDC>();
|
|
ServiceFacade.DoCustomerServiceSync(s => dataContracts = s.LoadCustomerPersonRelationsByOid(relPersonOids));
|
|
|
|
var test = new List<CustomerPersonRelationVM>();
|
|
|
|
dataContracts.DoForEach(dfe => test.Add(new CustomerPersonRelationVM(dfe)));
|
|
|
|
var vmMap = vmList.Where(w => relVMs.Contains(w)).ToDictionary(vmList.IndexOf, v => v.DataContract.Customer2PersonOid.Value);
|
|
foreach (var item in vmMap)
|
|
{
|
|
vmList[item.Key] = test.First(f => f.DataContract.Customer2PersonOid.Value.Equals(item.Value));
|
|
}
|
|
|
|
grid.RefreshData();
|
|
|
|
UpdateSearchViewObjectList(customerView.personsearchview, updatedPerson);
|
|
}
|
|
else if (typeof(T) == typeof(CompactOrganisationDC))
|
|
{
|
|
var organisationToUpdate = updatedObject as CompactOrganisationDC;
|
|
var updatedOrganisation = new CompactOrganisationDC();
|
|
var organisationRelationGrid = new GridControl();
|
|
var costBearerRelationGrid = new GridControl();
|
|
|
|
if ((updatedObject as CompactOrganisationDC) == null)
|
|
{
|
|
return;
|
|
}
|
|
|
|
organisationRelationGrid = (GridControl) customerView.root.Resources["grid_OrganisationRelations"];
|
|
costBearerRelationGrid = (GridControl) customerView.root.Resources["grid_costBearer"];
|
|
|
|
ServiceFacade.DoCustomerServiceSync(s => updatedOrganisation = s.LoadOrganisationCompact(organisationToUpdate.OrganisationOid));
|
|
|
|
if (!(string.IsNullOrWhiteSpace(customerView.popupedit_costBearer.Text)) && customerView.popupedit_costBearer.Text.Equals(organisationToUpdate.ToString()))
|
|
{
|
|
customerView.ViewModel.CostBearers.NewVM.CostBearer = null;
|
|
customerView.ViewModel.CostBearers.NewVM.CostBearer = updatedOrganisation;
|
|
customerView.popupedit_costBearer.Text = updatedOrganisation.ToString();
|
|
}
|
|
|
|
foreach (var item in (customerView.ViewModel.CostBearers.VMList).Where(item => item.CostBearer.Equals(updatedOrganisation)))
|
|
{
|
|
item.CostBearer = null;
|
|
item.CostBearer = updatedOrganisation;
|
|
}
|
|
|
|
if (!(string.IsNullOrWhiteSpace(customerView.popupedit_environmentOrganisationSearch.Text)) && customerView.popupedit_environmentOrganisationSearch.Text.Equals(organisationToUpdate.ToString()))
|
|
{
|
|
customerView.ViewModel.EnvironmentOrganisations.NewVM.Organisation = null;
|
|
customerView.ViewModel.EnvironmentOrganisations.NewVM.Organisation = updatedOrganisation;
|
|
customerView.popupedit_environmentOrganisationSearch.Text = updatedOrganisation.ToString();
|
|
}
|
|
|
|
var vmList = customerView.ViewModel.EnvironmentOrganisations.VMList;
|
|
var relVMs = vmList.Where(w => w.Organisation.OrganisationOid.Equals(updatedOrganisation.OrganisationOid)).Where(w => !w.IsNew);
|
|
var relOrganisationOids = relVMs.Select(s => s.CommitToDataContract().Customer2OrganisationOid.Value).ToList();
|
|
var dataContracts = new List<CustomerOrganisationRelationDC>();
|
|
var test = new List<CustomerOrganisationRelationVM>();
|
|
|
|
ServiceFacade.DoCustomerServiceSync(s => dataContracts = s.LoadCustomerOrganisationRelationsByOid(relOrganisationOids));
|
|
|
|
dataContracts.DoForEach(dfe => test.Add(new CustomerOrganisationRelationVM(dfe)));
|
|
|
|
var vmMap = vmList.Where(w => relVMs.Contains(w)).ToDictionary(vmList.IndexOf, v => v.DataContract.Customer2OrganisationOid.Value);
|
|
|
|
foreach (var item in vmMap)
|
|
{
|
|
vmList[item.Key] = test.First(f => f.DataContract.Customer2OrganisationOid.Value.Equals(item.Value));
|
|
}
|
|
|
|
organisationRelationGrid.RefreshData();
|
|
costBearerRelationGrid.RefreshData();
|
|
|
|
UpdateSearchViewObjectList(customerView.costbearersearchview, updatedOrganisation);
|
|
UpdateSearchViewObjectList(customerView.organisationsearchview, updatedOrganisation);
|
|
}
|
|
else if (typeof(T) == typeof(CompactTeamDC))
|
|
{
|
|
var teamToUpdate = updatedObject as CompactTeamDC;
|
|
var updatedTeam = new CompactTeamDC();
|
|
var grid = (GridControl) customerView.root.Resources["datagrid_TeamRelation"];
|
|
|
|
ServiceFacade.DoEmployeeServiceSync(s => updatedTeam = s.LoadCompactTeam(teamToUpdate.TeamOid));
|
|
|
|
if (!(string.IsNullOrWhiteSpace(customerView.popupedit_teamRelations.Text)) && customerView.popupedit_teamRelations.Text.Equals(teamToUpdate.ToString()))
|
|
{
|
|
ServiceFacade.DoEmployeeServiceSync(s => updatedTeam = s.LoadCompactTeam(teamToUpdate.TeamOid));
|
|
customerView.ViewModel.TeamRelations.NewVM.Team = null;
|
|
customerView.ViewModel.TeamRelations.NewVM.Team = updatedTeam;
|
|
}
|
|
|
|
foreach (var item in ((BindingList<CustomerTeamRelationVM>) grid.ItemsSource).Where(item => item.Team.Equals(updatedTeam)))
|
|
{
|
|
item.Team = null;
|
|
item.Team = updatedTeam;
|
|
}
|
|
|
|
grid.RefreshData();
|
|
UpdateSearchViewObjectList(customerView.teamsearchview, updatedTeam);
|
|
}
|
|
else if (typeof (T) == typeof (CompactCustomerDC))
|
|
{
|
|
customerView.ReloadViewModel();
|
|
}
|
|
#endregion
|
|
}
|
|
else if (view.GetType() == typeof(OrganisationView))
|
|
{
|
|
#region OrganisationView
|
|
if (typeof (T) == typeof (CompactPersonDC))
|
|
{
|
|
var organisationView = view as OrganisationView;
|
|
var updatedPerson = new CompactPersonDC();
|
|
var grid = (GridControl) organisationView.gridroot.Resources["datagrid_PersonRelation"];
|
|
|
|
ServiceFacade.DoCustomerServiceSync(s => updatedPerson = s.LoadPersonCompact((updatedObject as CompactPersonDC).PersonOid));
|
|
|
|
var vmList = organisationView.ViewModel.PersonRelations.VMList;
|
|
var relVMs = vmList.Where(w => w.Person.PersonOid.Equals(updatedPerson.PersonOid)).Where(w => !w.IsNew);
|
|
var relPersonOids = relVMs.Select(s => s.CommitToDataContract().Organisation2PersonOid.Value).ToList();
|
|
var dataContracts = new List<OrganisationPersonRelationDC>();
|
|
var test = new List<OrganisationPersonRelationVM>();
|
|
|
|
ServiceFacade.DoOperationsServiceSync(s => dataContracts = s.LoadOrganisationPersonRelationsByOid(relPersonOids));
|
|
|
|
dataContracts.DoForEach(dfe => test.Add(new OrganisationPersonRelationVM(dfe)));
|
|
|
|
var vmMap = vmList.Where(w => relVMs.Contains(w)).ToDictionary(vmList.IndexOf, v => v.DataContract.Organisation2PersonOid.Value);
|
|
foreach (var item in vmMap)
|
|
{
|
|
vmList[item.Key] = test.First(f => f.DataContract.Organisation2PersonOid.Value.Equals(item.Value));
|
|
}
|
|
|
|
grid.RefreshData();
|
|
}
|
|
else if (typeof (T) == typeof (CompactOrganisationDC))
|
|
{
|
|
(view as OrganisationView).ReloadViewModel();
|
|
}
|
|
#endregion
|
|
}
|
|
else if (view.GetType() == typeof(BookingView))
|
|
{
|
|
#region BookingView
|
|
|
|
if (typeof (T) != typeof (CompactEmployeeDC))
|
|
return;
|
|
|
|
var bookingView = view as BookingView;
|
|
var updatedEmployee = new CompactEmployeeDC();
|
|
|
|
ServiceFacade.DoEmployeeServiceSync(s => updatedEmployee = s.LoadCompactEmployee((updatedObject as CompactEmployeeDC).EmployeeOid));
|
|
|
|
var sourceNew = bookingView.combobox_newEmployee.ItemsSource as ObservableCollection<CompactEmployeeDC>;
|
|
var sourceEdit = bookingView.combobox_editEmployee.ItemsSource as ObservableCollection<CompactEmployeeDC>;
|
|
|
|
var selectedNewIndex = bookingView.combobox_newEmployee.SelectedIndex;
|
|
var selectedEditIndex = bookingView.combobox_editEmployee.SelectedIndex;
|
|
|
|
foreach (var item in bookingView.ViewModel.VMList.Where(item => item.Employee.EmployeeOid.Equals(updatedEmployee.EmployeeOid)))
|
|
{
|
|
item.Employee = new CompactEmployeeDC();
|
|
item.Employee = updatedEmployee;
|
|
}
|
|
|
|
for (var i = 0; i < sourceNew.Count; i++)
|
|
{
|
|
if (!sourceNew[i].EmployeeOid.Equals(updatedEmployee.EmployeeOid)) continue;
|
|
sourceNew[i] = new CompactEmployeeDC();
|
|
sourceNew[i] = updatedEmployee;
|
|
}
|
|
|
|
for (var i = 0; i < sourceNew.Count; i++)
|
|
{
|
|
if (!sourceEdit[i].EmployeeOid.Equals(updatedEmployee.EmployeeOid)) continue;
|
|
sourceEdit[i] = new CompactEmployeeDC();
|
|
sourceEdit[i] = updatedEmployee;
|
|
}
|
|
|
|
bookingView.combobox_newEmployee.ItemsSource = sourceNew;
|
|
bookingView.combobox_editEmployee.ItemsSource = sourceEdit;
|
|
|
|
bookingView.combobox_newEmployee.SelectedIndex = selectedNewIndex;
|
|
bookingView.combobox_editEmployee.SelectedIndex = selectedEditIndex;
|
|
|
|
UpdateLoggedInEmployee(updatedEmployee.EmployeeOid);
|
|
#endregion
|
|
}
|
|
else if (view.GetType() == typeof(FinanceView))
|
|
{
|
|
#region FinanceView
|
|
var v = (view as FinanceView);
|
|
var settle = v.tabitem_settlementinvoice.Content as SettlementInvoiceView;
|
|
var eq = v.tabitem_equityinvoice.Content as EquityInvoiceView;
|
|
var gi = v.tabitem_otherinvoice.Content as GeneralInvoiceView;
|
|
var serv = v.tabitem_collectiveinvoice.Content as ServiceInvoiceView;
|
|
var atb = v.tabitem_financeBooking.Content as AccountingTransactionBookingView;
|
|
|
|
if (typeof (T) == typeof (CompactCustomerDC))
|
|
{
|
|
var updatedCustomer = new CompactCustomerDC();
|
|
ServiceFacade.DoCustomerServiceSync(s => updatedCustomer = s.GetCompactCustomerDC((updatedObject as CompactCustomerDC).CustomerOid));
|
|
|
|
if (atb != null)
|
|
{
|
|
foreach (var item in atb.ViewModel.AccountingTransactionVMList.Where(item => item.SupportConcept.Customer.Equals(updatedCustomer)))
|
|
{
|
|
item.SupportConcept.Customer = new CompactCustomerDC();
|
|
item.SupportConcept.Customer = updatedCustomer;
|
|
}
|
|
|
|
foreach (var item in atb.FlatSupportConceptItems.Where(item => item.SupportConceptTreeNodeDC != null).Where(item => item.SupportConceptTreeNodeDC.Customer.Equals(updatedCustomer)))
|
|
{
|
|
item.SupportConceptTreeNodeDC.Customer = new CompactCustomerDC();
|
|
item.SupportConceptTreeNodeDC.Customer = updatedCustomer;
|
|
}
|
|
|
|
UpdateSingleSupportConceptSelectionControl(atb.supportConceptSelectionControl, updatedCustomer);
|
|
}
|
|
if (settle != null)
|
|
{
|
|
if (settle.SelectedSupportConcept != null)
|
|
{
|
|
if (settle.SelectedSupportConcept.Customer.Equals((updatedObject as CompactCustomerDC)))
|
|
{
|
|
settle.SelectedSupportConcept.Customer = new CompactCustomerDC();
|
|
settle.SelectedSupportConcept.Customer = updatedCustomer;
|
|
|
|
settle.popupedit_CostBeaerer.Text = string.Format("{0}, {1} {2}", settle.SelectedSupportConcept.Customer.LastName,
|
|
settle.SelectedSupportConcept.Customer.FirstName,
|
|
settle.SelectedSupportConcept.Customer.DateOfBirthString);
|
|
}
|
|
|
|
UpdateSearchViewObjectList(settle.supportconceptsearchview, settle.SelectedSupportConcept);
|
|
}
|
|
else
|
|
{
|
|
UpdateSearchViewObjectList(settle.supportconceptsearchview, new CompactSupportConceptDC{Customer = updatedCustomer});
|
|
}
|
|
}
|
|
if (eq != null)
|
|
{
|
|
if (eq.SelectedSupportConcept != null)
|
|
{
|
|
eq.SelectedSupportConcept.Customer = new CompactCustomerDC();
|
|
eq.SelectedSupportConcept.Customer = updatedCustomer;
|
|
|
|
eq.popupedit_CostBeaerer.Text = string.Format("{0}, {1} {2}", eq.SelectedSupportConcept.Customer.LastName,
|
|
eq.SelectedSupportConcept.Customer.FirstName,
|
|
eq.SelectedSupportConcept.Customer.DateOfBirthString);
|
|
|
|
UpdateSearchViewObjectList(eq.supportconceptsearchview, eq.SelectedSupportConcept);
|
|
}
|
|
else
|
|
{
|
|
UpdateSearchViewObjectList(eq.supportconceptsearchview, new CompactSupportConceptDC { Customer = updatedCustomer });
|
|
}
|
|
}
|
|
if (serv != null)
|
|
{
|
|
if (serv.ViewModel.SelectedSupportConcept != null)
|
|
{
|
|
if (serv.ViewModel.SelectedSupportConcept.Customer.Equals((updatedObject as CompactCustomerDC)))
|
|
{
|
|
serv.ViewModel.SelectedSupportConcept.Customer = new CompactCustomerDC();
|
|
serv.ViewModel.SelectedSupportConcept.Customer = updatedCustomer;
|
|
|
|
serv.popupedit_supportConcept.Text = string.Format("{0}, {1} {2}", serv.ViewModel.SelectedSupportConcept.Customer.LastName,
|
|
serv.ViewModel.SelectedSupportConcept.Customer.FirstName,
|
|
serv.ViewModel.SelectedSupportConcept.Customer.DateOfBirthString);
|
|
|
|
UpdateSearchViewObjectList(serv.supportConcept_search, serv.ViewModel.SelectedSupportConcept);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
UpdateSearchViewObjectList(serv.supportConcept_search, new CompactSupportConceptDC { Customer = updatedCustomer });
|
|
}
|
|
}
|
|
}
|
|
else if (typeof(T) == typeof(CompactSupportConceptDC))
|
|
{
|
|
var updatedSupportConcept = new CompactSupportConceptDC();
|
|
ServiceFacade.DoCustomerServiceSync(s => updatedSupportConcept = s.LoadCompactSupportConceptDC((updatedObject as CompactSupportConceptDC).SupportConceptOid, BeWoApp.LoggedOnEmployee.EmployeeOid));
|
|
|
|
if (eq != null && eq.SelectedSupportConcept != null)
|
|
{
|
|
eq.ReloadViewModel();
|
|
eq.popupedit_CostBeaerer.Text = string.Format("{0}, {1} {2}", updatedSupportConcept.Customer.LastName,
|
|
updatedSupportConcept.Customer.FirstName,
|
|
updatedSupportConcept.Customer.DateOfBirthString);
|
|
|
|
UpdateSearchViewObjectList(eq.supportconceptsearchview, eq.SelectedSupportConcept);
|
|
}
|
|
if (settle != null && settle.SelectedSupportConcept != null)
|
|
{
|
|
settle.ReloadViewModel();
|
|
settle.popupedit_CostBeaerer.Text = string.Format("{0}, {1} {2}", updatedSupportConcept.Customer.LastName,
|
|
updatedSupportConcept.Customer.FirstName,
|
|
updatedSupportConcept.Customer.DateOfBirthString);
|
|
|
|
UpdateSearchViewObjectList(settle.supportconceptsearchview, settle.SelectedSupportConcept);
|
|
}
|
|
if (serv != null && serv.ViewModel.SelectedSupportConcept != null)
|
|
{
|
|
if (serv.ViewModel.SelectedSupportConcept.Equals(updatedSupportConcept))
|
|
serv.ViewModel.SelectedSupportConcept = updatedSupportConcept;
|
|
|
|
UpdateSearchViewObjectList(serv.supportConcept_search, updatedSupportConcept);
|
|
}
|
|
}
|
|
else if (typeof(T) == typeof(CompactOrganisationDC))
|
|
{
|
|
var updatedOrganisation = new CompactOrganisationDC();
|
|
ServiceFacade.DoCustomerServiceSync(s => updatedOrganisation = s.LoadOrganisationCompact((updatedObject as CompactOrganisationDC).OrganisationOid));
|
|
|
|
if (gi != null)
|
|
{
|
|
if (gi.SelectedOrganisation != null)
|
|
{
|
|
if (gi.SelectedOrganisation.Equals(updatedOrganisation))
|
|
{
|
|
gi.SelectedOrganisation = null;
|
|
gi.SelectedOrganisation = updatedOrganisation;
|
|
}
|
|
|
|
gi.popupedit_Recipient.Text = updatedOrganisation.ToString();
|
|
}
|
|
|
|
UpdateSearchViewObjectList(gi.recipientsearchview, updatedOrganisation);
|
|
}
|
|
if (serv != null)
|
|
{
|
|
if (serv.ViewModel.SelectedCostBearer != null)
|
|
if (serv.ViewModel.SelectedCostBearer.Equals(updatedOrganisation))
|
|
serv.ViewModel.SelectedCostBearer = updatedOrganisation;
|
|
|
|
UpdateSearchViewObjectList(serv.organisationSearchView, updatedOrganisation);
|
|
}
|
|
}
|
|
#endregion
|
|
}
|
|
else if (view.GetType() == typeof(SupportConceptView))
|
|
{
|
|
#region SupportConceptView
|
|
var SupportConceptView = view as SupportConceptView;
|
|
|
|
if (typeof (T) == typeof (CompactEmployeeDC))
|
|
{
|
|
var updatedEmployee = new CompactEmployeeDC();
|
|
|
|
ServiceFacade.DoEmployeeServiceSync(s => updatedEmployee = s.LoadCompactEmployee((updatedObject as CompactEmployeeDC).EmployeeOid));
|
|
|
|
for (var i = 0; i < SupportConceptView.ViewModel.Tasks.NewVM.Employees.Count; i++)
|
|
{
|
|
if (!SupportConceptView.ViewModel.Tasks.NewVM.Employees[i].EmployeeOid.Equals(updatedEmployee.EmployeeOid))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
SupportConceptView.ViewModel.Tasks.NewVM.Employees[i] = null;
|
|
SupportConceptView.ViewModel.Tasks.NewVM.Employees[i] = updatedEmployee;
|
|
}
|
|
|
|
for (var i = 0; i < SupportConceptView.ViewModel.CostBearerRelations.VMList.Count; i++)
|
|
{
|
|
var currentSC = SupportConceptView.ViewModel.CostBearerRelations.VMList[i];
|
|
|
|
for (var j = 0; j < currentSC.ApprovalPeriodList.VMList.Count; j++)
|
|
{
|
|
var currentAP = currentSC.ApprovalPeriodList.VMList[j];
|
|
|
|
if (currentAP.SupportConceptApprovalEmployeeRelations.VMList.Any(a => a.Employee.EmployeeOid.Equals(updatedEmployee.EmployeeOid)))
|
|
{
|
|
// Nur einmal in der Liste
|
|
var employeeContainingRel = currentAP.SupportConceptApprovalEmployeeRelations.VMList.FirstOrDefault(f => f.Employee.EmployeeOid.Equals(updatedEmployee.EmployeeOid));
|
|
if (employeeContainingRel != null)
|
|
{
|
|
employeeContainingRel.Employee = null;
|
|
employeeContainingRel.Employee = updatedEmployee;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if (SupportConceptView.ViewModel.CostBearerRelations.VMList.Any(a => a.ApprovalPeriodList.VMList.Any(a2 => a2.SupportConceptApprovalEmployeeRelations.VMList.Any(a3 => a3.Employee.EmployeeOid.Equals(updatedEmployee.EmployeeOid)))))
|
|
{
|
|
var emp = SupportConceptView.SelectedApprovalPeriodVM.SupportConceptApprovalEmployeeRelations.VMList.FirstOrDefault(f => f.Employee.EmployeeOid.Equals(updatedEmployee.EmployeeOid));
|
|
if (emp != null)
|
|
{
|
|
emp.Employee = null;
|
|
emp.Employee = updatedEmployee;
|
|
emp.EmployeeString = updatedEmployee.ToString();
|
|
}
|
|
}
|
|
|
|
if (SupportConceptView.SelectedApprovalPeriodVM.SupportConceptApprovalEmployeeRelations.NewVM.Employee.EmployeeOid.Equals(updatedEmployee.EmployeeOid))
|
|
{
|
|
SupportConceptView.SelectedApprovalPeriodVM.SupportConceptApprovalEmployeeRelations.NewVM.Employee = null;
|
|
SupportConceptView.SelectedApprovalPeriodVM.SupportConceptApprovalEmployeeRelations.NewVM.Employee = updatedEmployee;
|
|
SupportConceptView.SelectedApprovalPeriodVM.SupportConceptApprovalEmployeeRelations.NewVM.EmployeeString = updatedEmployee.ToString();
|
|
}
|
|
|
|
if (SupportConceptView.ViewModel.Originator.EmployeeOid.Equals(updatedEmployee.EmployeeOid))
|
|
{
|
|
SupportConceptView.ViewModel.Originator = null;
|
|
SupportConceptView.ViewModel.Originator = updatedEmployee;
|
|
SupportConceptView.popupedit_employee.Text = updatedEmployee.ToString();
|
|
}
|
|
|
|
if (BeWoApp.LoggedOnUser.Employee.EmployeeOid.Equals(updatedEmployee.EmployeeOid))
|
|
{
|
|
BeWoApp.LoggedOnUser.Employee = updatedEmployee;
|
|
}
|
|
|
|
SupportConceptView.popupedit_employee.Text = updatedEmployee.ToString();
|
|
UpdateLoggedInEmployee(updatedEmployee.EmployeeOid);
|
|
UpdateSearchViewObjectList(SupportConceptView.employeesearchview, updatedEmployee);
|
|
|
|
foreach (var item in SupportConceptView.ViewModel.Tasks.VMList)
|
|
{
|
|
for (var i = 0; i < item.Employees.Count; i++)
|
|
{
|
|
var prevDirty = item.IsDirty;
|
|
if (!item.Employees[i].EmployeeOid.Equals(updatedEmployee.EmployeeOid))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
item.Employees[i] = updatedEmployee;
|
|
|
|
if (!prevDirty && item.IsDirty)
|
|
{
|
|
item.SetDirty(false);
|
|
}
|
|
}
|
|
}
|
|
|
|
SupportConceptView.grid_tasks.RefreshData();
|
|
}
|
|
else if (typeof(T) == typeof(CompactPersonDC))
|
|
{
|
|
var updatedPerson = new CompactPersonDC();
|
|
|
|
ServiceFacade.DoCustomerServiceSync(s => updatedPerson = s.LoadPersonCompact((updatedObject as CompactPersonDC).PersonOid));
|
|
|
|
((SupportConceptCostBearerRelVM)SupportConceptView.tabcontrol_costbearers.SelectedItem)
|
|
.CostBearerContactPerson = null;
|
|
((SupportConceptCostBearerRelVM)SupportConceptView.tabcontrol_costbearers.SelectedItem)
|
|
.CostBearerContactPerson = updatedPerson;
|
|
}
|
|
else if (typeof (T) == typeof (CompactCustomerDC))
|
|
{
|
|
var updatedCustomer = SupportConceptView.ViewModel.Customer;
|
|
|
|
ServiceFacade.DoCustomerServiceSync(s => updatedCustomer = s.GetCompactCustomerDC(SupportConceptView.ViewModel.Customer.CustomerOid));
|
|
|
|
SupportConceptView.ViewModel.Customer = new CompactCustomerDC();
|
|
SupportConceptView.ViewModel.Customer = updatedCustomer;
|
|
|
|
SupportConceptView.popupedit_customer.Text = updatedCustomer.ToString();
|
|
|
|
UpdateSearchViewObjectList(SupportConceptView.customersearchview, updatedCustomer);
|
|
}
|
|
#endregion
|
|
}
|
|
else if (view.GetType() == typeof(ServiceRecordView2))
|
|
{
|
|
#region ServiceRecordView2
|
|
var ServiceRecordView2 = view as ServiceRecordView2;
|
|
|
|
if (typeof (T) == typeof (CompactCustomerDC))
|
|
{
|
|
var updatedCustomer = new CompactCustomerDC();
|
|
|
|
ServiceFacade.DoCustomerServiceSync(s => updatedCustomer = s.GetCompactCustomerDC((updatedObject as CompactCustomerDC).CustomerOid));
|
|
|
|
foreach (var item in ServiceRecordView2.ViewModel.VMList.Where(item => item.Customer.Equals(updatedCustomer)))
|
|
{
|
|
item.Customer = new CompactCustomerDC();
|
|
item.Customer = updatedCustomer;
|
|
}
|
|
|
|
ServiceRecordView2.multiSupportConceptControl.UpdateSupportConcepts(updatedCustomer);
|
|
ServiceRecordView2.multiSupportConceptControl.UpdateListBox();
|
|
|
|
UpdateSingleSupportConceptSelectionControl(ServiceRecordView2.supportConceptSelectionControl, updatedCustomer);
|
|
}
|
|
else if (typeof (T) == typeof (CompactEmployeeDC))
|
|
{
|
|
var updatedEmployee = new CompactEmployeeDC();
|
|
ServiceFacade.DoEmployeeServiceSync(s => updatedEmployee = s.LoadCompactEmployee((updatedObject as CompactEmployeeDC).EmployeeOid));
|
|
|
|
UpdateSearchViewObjectList(ServiceRecordView2.employeeSearchView, updatedEmployee);
|
|
ServiceRecordView2.popupedit_employee.Text = updatedEmployee.ToString();
|
|
|
|
UpdateLoggedInEmployee((updatedObject as CompactEmployeeDC).EmployeeOid);
|
|
|
|
for (var i = 0; i < ServiceRecordView2.multiEmployeeControl.SelectedEmployees.Count; i++)
|
|
{
|
|
if (!ServiceRecordView2.multiEmployeeControl.SelectedEmployees[i].EmployeeOid.Equals(updatedEmployee.EmployeeOid))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
ServiceRecordView2.multiEmployeeControl.SelectedEmployees[i] = new CompactEmployeeDC();
|
|
ServiceRecordView2.multiEmployeeControl.SelectedEmployees[i] = updatedEmployee;
|
|
}
|
|
|
|
ServiceRecordView2.multiEmployeeControl.UpdateListBox();
|
|
UpdateSearchViewObjectList(ServiceRecordView2.multiEmployeeControl.employeesearchview, updatedEmployee);
|
|
|
|
//CB EINKOMMENTIEREN
|
|
//if (ServiceRecordView2.ViewModel.BedarfsMedViewModel.NewVM.Employee != null && ServiceRecordView2.ViewModel.BedarfsMedViewModel.NewVM.Employee.EmployeeOid.Equals(updatedEmployee.EmployeeOid))
|
|
//{
|
|
// ServiceRecordView2.ViewModel.BedarfsMedViewModel.NewVM.Employee = updatedEmployee;
|
|
// ServiceRecordView2.popupedit_employee_bedarfsmed.Text = updatedEmployee.ToString();
|
|
// UpdateSearchViewObjectList(ServiceRecordView2.MedRecordEmployeeSearchView, updatedEmployee);
|
|
//}
|
|
|
|
//// TODO: Bedarfsmedikationen
|
|
//UpdateSearchViewObjectList(ServiceRecordView2.MedRecordEmployeeSearchView, updatedEmployee);
|
|
|
|
|
|
// foreach (var item in ((BindingList<MedRecordVM>)ServiceRecordView2.MedRecordGridControl.ItemsSource).Where(item => item.Employee.EmployeeOid.Equals(updatedEmployee.EmployeeOid)))
|
|
//{
|
|
// item.Employee = null;
|
|
// item.Employee = updatedEmployee;
|
|
//}
|
|
|
|
//ServiceRecordView2.MedRecordGridControl.RefreshData();
|
|
|
|
if (ServiceRecordView2.ViewModel.CustomerNodes.Count <= 0 || ServiceRecordView2.ViewModel.ServiceRecordsForSelectedCustomer == null)
|
|
{
|
|
return;
|
|
}
|
|
|
|
foreach (var item in ServiceRecordView2.ViewModel.ServiceRecordsForSelectedCustomer.Where(item => item.Employee.EmployeeOid.Equals(updatedEmployee.EmployeeOid)))
|
|
{
|
|
item.Employee = null;
|
|
item.Employee = updatedEmployee;
|
|
}
|
|
|
|
ServiceRecordView2.ViewModel.RefreshServiceRecordsForSelectedTreeNode();
|
|
}
|
|
else if (typeof(T) == typeof(CompactOrganisationDC))
|
|
{
|
|
var updatedOrganisation = new CompactOrganisationDC();
|
|
|
|
ServiceFacade.DoCustomerServiceSync(s => updatedOrganisation = s.LoadOrganisationCompact((updatedObject as CompactOrganisationDC).OrganisationOid));
|
|
|
|
foreach (var item in ServiceRecordView2.ViewModel.VMList.Where(item => item.CostBearer.Equals(updatedOrganisation)))
|
|
{
|
|
item.CostBearer = new CompactOrganisationDC();
|
|
item.CostBearer = updatedOrganisation;
|
|
}
|
|
}
|
|
#endregion
|
|
}
|
|
else if (view.GetType() == typeof(TeamView))
|
|
{
|
|
#region TeamView
|
|
if (typeof (T) == typeof (CompactEmployeeDC))
|
|
{
|
|
var TeamView = view as TeamView;
|
|
var updatedEmployee = new CompactEmployeeDC();
|
|
|
|
ServiceFacade.DoEmployeeServiceSync(s => updatedEmployee = s.LoadCompactEmployee((updatedObject as CompactEmployeeDC).EmployeeOid));
|
|
|
|
if (TeamView.ViewModel.Leader.Equals(updatedObject as CompactEmployeeDC))
|
|
{
|
|
TeamView.ViewModel.Leader = null;
|
|
TeamView.ViewModel.Leader = updatedEmployee;
|
|
}
|
|
|
|
if (TeamView.ViewModel.Member.Contains(updatedEmployee))
|
|
{
|
|
var newMember = new ObservableSortCollection<CompactEmployeeDC>();
|
|
foreach (var item in TeamView.ViewModel.Member)
|
|
newMember.Add(item.EmployeeOid.Equals(updatedEmployee.EmployeeOid) ? updatedEmployee : item);
|
|
|
|
TeamView.ViewModel.Member = null;
|
|
TeamView.ViewModel.Member = newMember;
|
|
}
|
|
|
|
if (TeamView.ViewModel.Leader.EmployeeOid.Equals(updatedEmployee.EmployeeOid))
|
|
{
|
|
TeamView.ViewModel.Leader = null;
|
|
TeamView.ViewModel.Leader = updatedEmployee;
|
|
}
|
|
|
|
UpdateSearchViewObjectList(TeamView.employeesearchview, updatedEmployee);
|
|
UpdateSearchViewObjectList(TeamView.leaderSearchView, updatedEmployee);
|
|
UpdateLoggedInEmployee(updatedEmployee.EmployeeOid);
|
|
}
|
|
else if (typeof (T) == typeof (CompactTeamDC))
|
|
{
|
|
(view as TeamView).ReloadViewModel();
|
|
}
|
|
#endregion
|
|
}
|
|
else if (view.GetType() == typeof(UserView))
|
|
{
|
|
#region UserView
|
|
var updatedEmployee = new CompactEmployeeDC();
|
|
var UserView = view as UserView;
|
|
|
|
ServiceFacade.DoEmployeeServiceSync(s => updatedEmployee = s.LoadCompactEmployee(UserView.ViewModel.Employee.EmployeeOid));
|
|
|
|
UserView.ViewModel.Employee = null;
|
|
UserView.ViewModel.Employee = updatedEmployee;
|
|
|
|
var myView = new BeWoView();
|
|
BeWoApp.MainControl.Views.TryGetValue(UIContext.User, out myView);
|
|
|
|
var naviView = myView as UserNavigationView;
|
|
if (naviView != null)
|
|
{
|
|
if (naviView.ObjectList.Contains(updatedEmployee))
|
|
{
|
|
var copiedList = naviView.ObjectList as List<IFilterableDC>;
|
|
copiedList[copiedList.IndexOf(updatedEmployee)] = new CompactEmployeeDC();
|
|
copiedList[copiedList.IndexOf(updatedEmployee)] = updatedEmployee;
|
|
naviView.ObjectList = copiedList;
|
|
}
|
|
|
|
if (naviView.RecentList.Contains(updatedEmployee))
|
|
{
|
|
var copiedList = naviView.RecentList as List<IFilterableDC>;
|
|
copiedList[copiedList.IndexOf(updatedEmployee)] = new CompactEmployeeDC();
|
|
copiedList[copiedList.IndexOf(updatedEmployee)] = updatedEmployee;
|
|
naviView.RecentList = copiedList;
|
|
}
|
|
}
|
|
UpdateSearchViewObjectList(UserView.employeeSearchView, updatedEmployee);
|
|
UpdateLoggedInEmployee(updatedEmployee.EmployeeOid);
|
|
#endregion
|
|
}
|
|
else if (view.GetType() == typeof(ReportView))
|
|
{
|
|
#region ReportView
|
|
var v = view as ReportView;
|
|
|
|
var aus = new BeWoView(); v.OpenViews.TryGetValue(v.tabitem_maReport, out aus);
|
|
var fls = new BeWoView(); v.OpenViews.TryGetValue(v.tabitem_flsReport, out fls);
|
|
var serv = new BeWoView(); v.OpenViews.TryGetValue(v.tabitem_serviceOverview, out serv);
|
|
|
|
if (typeof (T) == typeof (CompactCustomerDC))
|
|
{
|
|
var updatedCustomer = new CompactCustomerDC();
|
|
ServiceFacade.DoCustomerServiceSync(s => updatedCustomer = s.GetCompactCustomerDC((updatedObject as CompactCustomerDC).CustomerOid));
|
|
|
|
var fls2 = fls as FLSReportView;
|
|
if (fls2 != null)
|
|
{
|
|
if (fls2._SelectedCustomer != null)
|
|
{
|
|
if (fls2._LastSelectedCustomer != null)
|
|
if (fls2._LastSelectedCustomer.Equals(updatedCustomer))
|
|
fls2._LastSelectedCustomer = updatedCustomer;
|
|
|
|
fls2._SelectedCustomer = updatedCustomer;
|
|
fls2.popupedit_client.Text = updatedCustomer.ToString();
|
|
}
|
|
|
|
UpdateSearchViewObjectList(fls2.customerSearchView, updatedCustomer);
|
|
}
|
|
|
|
var serv2 = serv as ServicesReportView;
|
|
if (serv != null)
|
|
{
|
|
if (serv2.Customer != null)
|
|
{
|
|
serv2.Customer = updatedCustomer;
|
|
serv2.popupedit_customer.Text = updatedCustomer.ToString();
|
|
}
|
|
|
|
UpdateSearchViewObjectList(serv2.customersearchview, updatedCustomer);
|
|
}
|
|
}
|
|
if (typeof (T) == typeof (CompactEmployeeDC))
|
|
{
|
|
var updatedEmployee = new CompactEmployeeDC();
|
|
ServiceFacade.DoEmployeeServiceSync(s => updatedEmployee = s.LoadCompactEmployee((updatedObject as CompactEmployeeDC).EmployeeOid));
|
|
|
|
var aus2 = aus as AuslastungReportView;
|
|
if (aus2 != null)
|
|
{
|
|
if (aus2._SelectedEmployee != null)
|
|
{
|
|
if (aus2._SelectedEmployee != null)
|
|
if (aus2._SelectedEmployee.EmployeeOid.Equals(updatedEmployee.EmployeeOid))
|
|
aus2._SelectedEmployee = updatedEmployee;
|
|
|
|
if (aus2._LastSelectedEmployee != null)
|
|
if (aus2._LastSelectedEmployee.EmployeeOid.Equals(updatedEmployee.EmployeeOid))
|
|
aus2._LastSelectedEmployee = updatedEmployee;
|
|
|
|
if (aus2._SelectedEmployee != null)
|
|
aus2.popupedit_employee.Text = updatedEmployee.ToString();
|
|
}
|
|
|
|
UpdateSearchViewObjectList(aus2.employeesearchview, updatedEmployee);
|
|
}
|
|
|
|
var fls2 = fls as FLSReportView;
|
|
if (fls2 != null)
|
|
{
|
|
if (fls2._SelectedEmployee != null)
|
|
{
|
|
if (fls2._LastSelectedEmployee != null)
|
|
if (fls2._LastSelectedEmployee.EmployeeOid.Equals(updatedEmployee.EmployeeOid))
|
|
fls2._LastSelectedEmployee = updatedEmployee;
|
|
|
|
fls2._SelectedEmployee = updatedEmployee;
|
|
fls2.popupedit_employee.Text = updatedEmployee.ToString();
|
|
}
|
|
|
|
UpdateSearchViewObjectList(fls2.employeeSearchView, updatedEmployee);
|
|
}
|
|
|
|
var serv2 = serv as ServicesReportView;
|
|
if (serv2 != null)
|
|
{
|
|
if (serv2.Employee != null)
|
|
{
|
|
serv2.Employee = updatedEmployee;
|
|
serv2.popupedit_employee.Text = updatedEmployee.ToString();
|
|
}
|
|
|
|
UpdateSearchViewObjectList(serv2.employeesearchview, updatedEmployee);
|
|
}
|
|
|
|
UpdateLoggedInEmployee(updatedEmployee.EmployeeOid);
|
|
}
|
|
if (typeof (T) == typeof (CompactOrganisationDC))
|
|
{
|
|
var updatedOrganisation = new CompactOrganisationDC();
|
|
ServiceFacade.DoCustomerServiceSync(s => updatedOrganisation = s.LoadOrganisationCompact((updatedObject as CompactOrganisationDC).OrganisationOid));
|
|
|
|
var serv2 = serv as ServicesReportView;
|
|
if (serv2 != null)
|
|
{
|
|
if (serv2.Organisation != null)
|
|
{
|
|
serv2.Organisation = updatedOrganisation;
|
|
serv2.popupedit_costbearer.Text = updatedOrganisation.ToString();
|
|
}
|
|
|
|
UpdateSearchViewObjectList(serv2.organisationsearchview, updatedOrganisation);
|
|
}
|
|
}
|
|
if (typeof (T) == typeof (CompactTeamDC))
|
|
{
|
|
var updatedTeam = new CompactTeamDC();
|
|
ServiceFacade.DoEmployeeServiceSync(s => updatedTeam = s.LoadCompactTeam((updatedObject as CompactTeamDC).TeamOid));
|
|
|
|
var aus2 = aus as AuslastungReportView;
|
|
if (aus2 != null)
|
|
{
|
|
if (aus2._SelectedTeam != null)
|
|
{
|
|
if (aus2._SelectedTeam.Equals(updatedTeam))
|
|
aus2._SelectedTeam = updatedTeam;
|
|
|
|
if (aus2._LastSelectedTeam != null)
|
|
if (aus2._LastSelectedTeam.Equals(updatedTeam))
|
|
aus2._LastSelectedTeam = updatedTeam;
|
|
|
|
aus2.popupedit_team.Text = updatedTeam.ToString();
|
|
}
|
|
|
|
UpdateSearchViewObjectList(aus2.teamsearchview, updatedTeam);
|
|
}
|
|
}
|
|
#endregion
|
|
}
|
|
else if (view.GetType() == typeof(PersonView))
|
|
{
|
|
#region PersonView
|
|
|
|
if (typeof(T) == typeof(CompactOrganisationDC))
|
|
{
|
|
var PersonView = view as PersonView;
|
|
var grid_Relations = (GridControl) PersonView.rootGrid.Resources["grid_Relations"];
|
|
var updatedOrganisation = new CompactOrganisationDC();
|
|
|
|
ServiceFacade.DoCustomerServiceSync(s =>
|
|
updatedOrganisation =
|
|
s.LoadOrganisationCompact((updatedObject as CompactOrganisationDC).OrganisationOid));
|
|
|
|
if (!(string.IsNullOrWhiteSpace(PersonView.popupedit_organisation.Text)) &&
|
|
PersonView.popupedit_organisation.Text.Equals((updatedObject as CompactOrganisationDC).Name))
|
|
PersonView.popupedit_organisation.Text = updatedOrganisation.ToString();
|
|
|
|
foreach (var item in PersonView.ViewModel.OrganisationRelations.VMList.Where(item =>
|
|
item.Organisation.OrganisationOid == updatedOrganisation.OrganisationOid))
|
|
item.OrganisationString = updatedOrganisation.Name;
|
|
|
|
grid_Relations.RefreshData();
|
|
|
|
if (PersonView.ViewModel.OrganisationRelations.NewVM != null &&
|
|
PersonView.ViewModel.OrganisationRelations.NewVM.Organisation != null)
|
|
if (PersonView.ViewModel.OrganisationRelations.NewVM.Organisation.OrganisationOid.Equals(
|
|
updatedOrganisation.OrganisationOid))
|
|
PersonView.ViewModel.OrganisationRelations.NewVM.OrganisationString =
|
|
updatedOrganisation.Name;
|
|
|
|
UpdateSearchViewObjectList((view as PersonView).organisationSearchView, updatedOrganisation);
|
|
}
|
|
else if (typeof(T) == typeof(CompactPersonDC))
|
|
{
|
|
(view as PersonView).ReloadViewModel();
|
|
}
|
|
else if (typeof(T) == typeof(CompactCustomerDC))
|
|
{
|
|
var pv = view as PersonView;
|
|
pv.UpdateCustomerList();
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
else if (view.GetType() == typeof(AdditionalServiceView))
|
|
{
|
|
#region AdditionalServiceView
|
|
|
|
var additionalServiceView = view as AdditionalServiceView;
|
|
|
|
if (typeof(T) == typeof(CompactEmployeeDC))
|
|
{
|
|
var updatedEmployee = new CompactEmployeeDC();
|
|
ServiceFacade.DoEmployeeServiceSync(
|
|
s => updatedEmployee = s.LoadCompactEmployee((updatedObject as CompactEmployeeDC).EmployeeOid));
|
|
|
|
UpdateLoggedInEmployee((updatedObject as CompactEmployeeDC).EmployeeOid);
|
|
|
|
for (var i = 0; i < additionalServiceView.MultiEmployeeControlAddServ.SelectedEmployees.Count; i++)
|
|
{
|
|
if (
|
|
!additionalServiceView.MultiEmployeeControlAddServ.SelectedEmployees[i].EmployeeOid.Equals(
|
|
updatedEmployee.EmployeeOid))
|
|
continue;
|
|
|
|
additionalServiceView.MultiEmployeeControlAddServ.SelectedEmployees[i] =
|
|
new CompactEmployeeDC();
|
|
additionalServiceView.MultiEmployeeControlAddServ.SelectedEmployees[i] = updatedEmployee;
|
|
}
|
|
|
|
UpdateSearchViewObjectList(additionalServiceView.MultiEmployeeControlAddServ.employeesearchview,
|
|
updatedEmployee);
|
|
|
|
}
|
|
else if (typeof(T) == typeof(CompactCustomerDC))
|
|
{
|
|
var updatedCustomer = new CompactCustomerDC();
|
|
|
|
ServiceFacade.DoCustomerServiceSync(
|
|
s => updatedCustomer =
|
|
s.GetCompactCustomerDC((updatedObject as CompactCustomerDC).CustomerOid));
|
|
|
|
additionalServiceView.MultiAddServGroupOfPeopleSelectionControl.UpdateCustomers(updatedCustomer);
|
|
|
|
foreach (var item in additionalServiceView.AdditionalServiceBookings.VMList)
|
|
{
|
|
var newCustomerList =
|
|
item.CustomerOidDict.ToDictionary(
|
|
element =>
|
|
element.Key.Equals(updatedCustomer.CustomerOid)
|
|
? updatedCustomer.CustomerOid
|
|
: element.Key, element => element.Value);
|
|
item.CustomerOidDict = newCustomerList;
|
|
}
|
|
|
|
var containsUpdatedCustomer = false;
|
|
|
|
foreach (var element in from item in additionalServiceView.AdditionalServiceBookings.VMList
|
|
from element in item.CustomerOidDict
|
|
where element.Key.Equals(updatedCustomer.CustomerOid)
|
|
select element)
|
|
containsUpdatedCustomer = true;
|
|
|
|
if (!containsUpdatedCustomer)
|
|
return;
|
|
|
|
additionalServiceView.UpdateTeilnahmeGrid();
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
}
|
|
|
|
private static void UpdateSingleSupportConceptSelectionControl(SingleSupportConceptSelectionControl control, CompactCustomerDC updatedCustomer)
|
|
{
|
|
if (control.SelectedItem.SupportConceptTreeNodeDC == null)
|
|
return;
|
|
|
|
var supConSelConSeletedItem = control.SelectedItem;
|
|
|
|
if (supConSelConSeletedItem != null)
|
|
{
|
|
if (supConSelConSeletedItem.SupportConceptTreeNodeDC.Customer.Equals(updatedCustomer))
|
|
supConSelConSeletedItem.SupportConceptTreeNodeDC.Customer = updatedCustomer;
|
|
if (supConSelConSeletedItem.SupportConceptTreeNodeDC.SupportConcept.Customer.Equals(updatedCustomer))
|
|
supConSelConSeletedItem.SupportConceptTreeNodeDC.SupportConcept.Customer = updatedCustomer;
|
|
}
|
|
|
|
var newList = control.SearchView.ObjectList;
|
|
|
|
foreach (var concept in newList.Where(concept => concept.Customer.Equals(updatedCustomer)))
|
|
concept.Customer = updatedCustomer;
|
|
|
|
control.SearchView.ObjectList = newList;
|
|
control.SetSelectedSupportConceptOid(control.SelectedItem.SupportConceptTreeNodeDC.SupportConcept.SupportConceptOid);
|
|
control.UpdateControls();
|
|
control.customerText.Text = updatedCustomer.ToString();
|
|
}
|
|
|
|
private static void UpdateLoggedInEmployee(long employeeOid)
|
|
{
|
|
if (employeeOid != BeWoApp.LoggedOnUser.Employee.EmployeeOid)
|
|
return;
|
|
|
|
ServiceFacade.DoEmployeeServiceSync(s => BeWoApp.LoggedOnUser.Employee = s.LoadCompactEmployee(BeWoApp.LoggedOnUser.Employee.EmployeeOid));
|
|
|
|
if (BeWoApp.MainControl.HomeButtonPanel == null)
|
|
return;
|
|
|
|
BeWoApp.MainControl.HomeView.txtHeader.Text = BeWoApp.LoggedOnUser.Employee.ToString();
|
|
}
|
|
|
|
public static void WriteExcelFile(string content, string path)
|
|
{
|
|
using (var uFileStream = File.Create(path))
|
|
using (var uSw = new StreamWriter(uFileStream))
|
|
uSw.Write(content);
|
|
|
|
System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(path));
|
|
}
|
|
|
|
public static void WriteFile(string content, string path)
|
|
{
|
|
using (var uFileStream = File.Create(path))
|
|
using (var uSw = new StreamWriter(uFileStream, Encoding.GetEncoding(1252)))
|
|
uSw.Write(content);
|
|
|
|
if (MessageBox.Show("Möchten Sie die Datei öffnen?", "Datei öffnen", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
|
|
{
|
|
System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(path));
|
|
}
|
|
}
|
|
|
|
//public static void Richloaded(object sender, RoutedEventArgs e)
|
|
//{
|
|
// var richEditControl1 = (RichEditControl) sender;
|
|
// richEditControl1.ActiveViewType = RichEditViewType.Simple;
|
|
// richEditControl1.ShowBorder = false;
|
|
// richEditControl1.ShowHoverMenu = false;
|
|
// richEditControl1.CornerBoxVisibility = Visibility.Visible;
|
|
// richEditControl1.VerticalRulerVisibility = Visibility.Collapsed;
|
|
// richEditControl1.HorizontalRulerVisibility = Visibility.Collapsed;
|
|
// richEditControl1.Language = System.Windows.Markup.XmlLanguage.GetLanguage("de-DE");
|
|
//}
|
|
|
|
//public static void Popupmenu(object sender, PopupMenuShowingEventArgs e)
|
|
//{
|
|
// foreach (var item in e.Menu.ItemLinks.Where(x => x.ActualIsVisible).Where(item => !(item is BarItemLinkSeparator)))
|
|
// {
|
|
// var btn = (BarButtonItemLink)item;
|
|
|
|
// if (btn.ActualContent.Equals("Lösche Zeile") ||
|
|
// btn.ActualContent.Equals("Lösche Spalte") ||
|
|
// btn.ActualContent.Equals("Lösche Zelle...") ||
|
|
// btn.ActualContent.Equals("Zellen verbinden") ||
|
|
// btn.ActualContent.Equals("Teile Zellen...") ||
|
|
// btn.ActualContent.Equals("Zellausrichtung") ||
|
|
// btn.ActualContent.Equals("AutoAnpassen") ||
|
|
// btn.ActualContent.Equals("Tabelleneigenschaften...") ||
|
|
// btn.ActualContent.Equals("Einzug erhöhen") ||
|
|
// btn.ActualContent.Equals("Einzug verringern") ||
|
|
// btn.ActualContent.Equals("Schriftart") ||
|
|
// btn.ActualContent.Equals("Absatz") ||
|
|
// btn.ActualContent.Equals("Nummerierun") ||
|
|
// btn.ActualContent.Equals("Lesezeichen...") ||
|
|
// btn.ActualContent.Equals("Hyperlink...") ||
|
|
// btn.ActualContent.Equals("Zeilenumbruch") ||
|
|
// btn.ActualContent.Equals("Eine Ebene nach vorne") ||
|
|
// btn.ActualContent.Equals("Eine Ebene nach hinten") ||
|
|
// btn.ActualContent.Equals("Layout"))
|
|
// item.IsVisible = false;
|
|
// }
|
|
//}
|
|
|
|
public static void OpenMailClient(string mailAddress, string subject = "")
|
|
{
|
|
var mailCmd = string.Format(@"mailto:{0}?subject={1}", mailAddress, subject);
|
|
|
|
System.Diagnostics.Process.Start(mailCmd);
|
|
}
|
|
|
|
public static bool ValidateServiceRecordVM(ServiceRecordVM vm, SupportConceptStatisticsDC statistics, FlatSupportConceptTreeNodeDC node, bool withoutClient, CompactEmployeeDC selectedEmployee, List<long> employeeOids, List<long> cb2ScOids)
|
|
{
|
|
var lValid = true;
|
|
|
|
if (vm.ServiceDescription == null)
|
|
{
|
|
MessageBox.Show("Bitte wählen Sie eine Leistung aus. Sollten keine Leistungen für die gewählte Kategorie verfügbar sein, müssen diese zunächst in der Verwaltung angelegt werden.", "Speichern", MessageBoxButton.OK, MessageBoxImage.Information);
|
|
return false;
|
|
}
|
|
if (vm.GoalTree != null && vm.GoalTree.Count > 0 && (cb2ScOids == null || cb2ScOids.Count < 2))
|
|
{
|
|
if (vm.SelectedGoals.Count == 0 &&
|
|
MessageBox.Show("Es wurde kein Ziel zugeordnet. Sind Sie sicher, dass Sie speichern möchten?", "Speichern",
|
|
MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.No)
|
|
return false;
|
|
}
|
|
|
|
CompactSupportConceptDC scDc = null;
|
|
CompactOrganisationDC cbDc = null;
|
|
SupportConceptCostBearerRelDC relDc = null;
|
|
|
|
if (node != null && node.SupportConceptTreeNodeDC != null)
|
|
{
|
|
scDc = node.SupportConceptTreeNodeDC.SupportConcept;
|
|
cbDc = node.SupportConceptTreeNodeDC.CostBearer;
|
|
relDc = node.SupportConceptTreeNodeDC.SupportConceptCostBearerRelDC;
|
|
}
|
|
|
|
|
|
var dc = vm.CommitToDataContract();
|
|
dc.Employee = selectedEmployee ?? BeWoApp.LoggedOnUser.Employee;
|
|
dc.SupportConcept = scDc;
|
|
dc.CostBearer = cbDc;
|
|
|
|
if(vm.ServiceRecordFormat != ServiceRecordFormate.ZeiterfassungMitMonatJahr){
|
|
|
|
dc.Start = new DateTime(vm.Date.Value.Year,
|
|
vm.Date.Value.Month,
|
|
vm.Date.Value.Day,
|
|
vm.StartTime == null ? vm.DateAndTime.Value.Hour : vm.StartDate.Value.Hour,
|
|
vm.StartTime == null ? vm.DateAndTime.Value.Minute : vm.StartDate.Value.Minute,
|
|
vm.StartTime == null ? vm.DateAndTime.Value.Second : vm.StartDate.Value.Second);
|
|
|
|
|
|
|
|
if(vm.DurationInStunden == ZeiterfassungsDauer.Minuten)
|
|
{
|
|
if (vm.ServiceRecordFormat == ServiceRecordFormate.ZeiterfassungMitEndDatum)
|
|
{
|
|
dc.End = dc.Start.Value.AddMinutes(Convert.ToDouble(vm.DurationSTD));
|
|
}
|
|
else
|
|
{
|
|
dc.End = dc.Start.Value.AddMinutes(Convert.ToDouble(vm.Duration));
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (vm.ServiceRecordFormat == ServiceRecordFormate.ZeiterfassungMitEndDatum)
|
|
{
|
|
dc.End = dc.Start.Value.AddHours(Convert.ToDouble(vm.DurationSTD));
|
|
}
|
|
else
|
|
{
|
|
dc.End = dc.Start.Value.AddHours(Convert.ToDouble(vm.Duration));
|
|
}
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
var dates = DateTime.Parse("1." + vm.OnlyMonth + vm.OnlyYear);
|
|
|
|
var StartDatetime = new DateTime(dates.Year, dates.Month, 1, 0, 0, 0);
|
|
|
|
dc.Start = StartDatetime;
|
|
dc.End = StartDatetime.AddHours((double)vm.DurationMonthYearGes);
|
|
}
|
|
|
|
|
|
if (relDc != null)
|
|
dc.CostBearer2SupportConceptOid = relDc.CostBearer2SupportConceptOid;
|
|
|
|
var r = new List<ServiceRecordValidationResultDC>();
|
|
|
|
var maxdays = BeWoApp.AppSettings.MaxDaysEditServiceRecordsAllowed;
|
|
|
|
if (withoutClient && BeWoApp.AppSettings.MaxDaysEditServiceRecordsAllowed <= 0)
|
|
maxdays = -1;
|
|
|
|
if (BeWoApp.LoggedOnUser.HasRight(UserRightType.ServiceRecord_AllowEditAfterMaxDaysInNextMonth))
|
|
maxdays = -1;
|
|
|
|
var test = dc.Start;
|
|
var test2 = vm.DateAndTime;
|
|
|
|
ServiceFacade.DoOperationsServiceSync(o => r = o.ValidateServiceRecord(dc, statistics, maxdays, employeeOids, cb2ScOids));
|
|
|
|
|
|
if (r.Count > 0)
|
|
{
|
|
var exitLoop = false;
|
|
|
|
foreach (var result in r)
|
|
{
|
|
switch (result.ResultType)
|
|
{
|
|
case ServiceRecordValidationResult.OutsideOfSupportConcept:
|
|
MessageBox.Show("Das gewählte Datum '" + vm.DateAndTime.Value.ToShortDateString() + "' liegt außerhalb des Zeitraums des gewählten Hilfeplans (" + relDc.DateRangeString + ").\nDas Speichern ist nicht möglich.", "Speichern", MessageBoxButton.OK, MessageBoxImage.Information);
|
|
lValid = false;
|
|
exitLoop = true;
|
|
break;
|
|
case ServiceRecordValidationResult.OutOfEditLimit:
|
|
MessageBox.Show("Sie können keine neuen Leistungen für den " + vm.DateAndTime.Value.ToShortDateString() + " dokumentieren, da bereits der " + BeWoApp.AppSettings.MaxDaysEditServiceRecordsAllowed + ". des nachfolgenden Monats überschritten ist.", "Speichern", MessageBoxButton.OK, MessageBoxImage.Information);
|
|
lValid = false;
|
|
exitLoop = true;
|
|
break;
|
|
case ServiceRecordValidationResult.FristAbgelaufen:
|
|
if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.ServiceRecordAllowEditAfterMindays))
|
|
{
|
|
if (BeWoApp.AppSettings.AnzTageZeiterfassErfolgt == 1)
|
|
{
|
|
MessageBox.Show("Sie können keine neuen Leistungen für den " + vm.DateAndTime.Value.ToShortDateString() + " dokumentieren, da die Zeiterfassung innerhalb von einem Tag erfolgen muss.", "Speichern", MessageBoxButton.OK, MessageBoxImage.Information);
|
|
}
|
|
else
|
|
{
|
|
MessageBox.Show("Sie können keine neuen Leistungen für den " + vm.DateAndTime.Value.ToShortDateString() + " dokumentieren, da die Zeiterfassung innerhalb von " + BeWoApp.AppSettings.AnzTageZeiterfassErfolgt + " Tagen erfolgen muss.", "Speichern", MessageBoxButton.OK, MessageBoxImage.Information);
|
|
}
|
|
|
|
lValid = false;
|
|
exitLoop = true;
|
|
}
|
|
break;
|
|
case ServiceRecordValidationResult.Error:
|
|
MessageBox.Show("Beim Speichern ist ein Fehler aufgetreten.\nDas Speichern ist nicht möglich.", "Speichern nicht möglich", MessageBoxButton.OK, MessageBoxImage.Error);
|
|
lValid = false;
|
|
exitLoop = true;
|
|
break;
|
|
|
|
case ServiceRecordValidationResult.ServiceRecordOverlapping:
|
|
if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.ServiceRecord_AllowCreateOverlappingFLS))
|
|
{
|
|
MessageBox.Show("An dem gewählten Datum '" + vm.DateAndTime.Value.ToShortDateString() + " " + vm.DateAndTime.Value.ToShortTimeString() + "' existiert bereits ein Eintrag (" + result.Message + " bei Klient/in " + result.CustomerName + ") .\nSpeichern nicht möglich.", "Speichern nicht möglich", MessageBoxButton.OK, MessageBoxImage.Information);
|
|
lValid = false;
|
|
}
|
|
else if (MessageBox.Show("An dem gewählten Datum '" + vm.DateAndTime.Value.ToShortDateString() + " " + vm.DateAndTime.Value.ToShortTimeString() + "' existiert bereits ein Eintrag (" + result.Message + " bei Klient/in " + result.CustomerName + ").\nMöchten Sie trotzdem speichern?", "Speichern", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.No)
|
|
{
|
|
lValid = false;
|
|
exitLoop = true;
|
|
}
|
|
break;
|
|
case ServiceRecordValidationResult.EmployeeOverlapping:
|
|
|
|
if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.ServiceRecord_AllowCreateOverlappingFLSForEmployee))
|
|
{
|
|
MessageBox.Show("An dem gewählten Datum '" + vm.DateAndTime.Value.ToShortDateString() + " " + vm.DateAndTime.Value.ToShortTimeString() + "' existiert bereits ein Eintrag von " + result.EmployeeName + "\n(" + result.Message + ").\nSpeichern nicht möglich.", "Speichern nicht möglich", MessageBoxButton.OK, MessageBoxImage.Information);
|
|
lValid = false;
|
|
}
|
|
else if (MessageBox.Show("An dem gewählten Datum '" + vm.DateAndTime.Value.ToShortDateString() + " " + vm.DateAndTime.Value.ToShortTimeString() + "' existiert bereits ein Eintrag von " + result.EmployeeName + "\n(" + result.Message + ").\n\nMöchten Sie trotzdem speichern?", "Speichern", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.No)
|
|
{
|
|
lValid = false;
|
|
exitLoop = true;
|
|
}
|
|
break;
|
|
case ServiceRecordValidationResult.ApprovedFLSOverspending:
|
|
String klient = "diesen Hilfeplan";
|
|
if (!String.IsNullOrEmpty(result.CustomerName))
|
|
{
|
|
klient = "Klient/in " + result.CustomerName;
|
|
}
|
|
String msg =
|
|
String.Format(
|
|
"Die für {2} genehmigten FLS ({0:N}) werden mit diesem Eintrag überschritten. ({1:N}).",
|
|
result.ApprovedHours, result.HoursNew, klient);
|
|
|
|
if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.ServiceRecord_AllowCreateMoreFLSThanApproved))
|
|
{
|
|
MessageBox.Show(msg + ").\nSpeichern nicht möglich.", "Speichern nicht möglich", MessageBoxButton.OK, MessageBoxImage.Information);
|
|
lValid = false;
|
|
}
|
|
else if (MessageBox.Show(msg + ").\nMöchten Sie trotzdem speichern?", "Speichern", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.No)
|
|
{
|
|
lValid = false;
|
|
exitLoop = true;
|
|
}
|
|
break;
|
|
case ServiceRecordValidationResult.SettlementInvoiceAlreadyExisting:
|
|
String klient2 = "diesen Hilfeplan";
|
|
if (!String.IsNullOrEmpty(result.CustomerName))
|
|
{
|
|
klient2 = "Klient/in " + result.CustomerName;
|
|
}
|
|
if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.BookServiceRecordAfterSettlementInvoice))
|
|
{
|
|
MessageBox.Show(String.Format("Sie können den Eintrag nicht bearbeiten, da bereits eine Spitzabrechnung für {0} erstellt wurde.", klient2), "Speichern nicht möglich", MessageBoxButton.OK, MessageBoxImage.Warning);
|
|
lValid = false;
|
|
}
|
|
else if (MessageBox.Show(String.Format("Es existiert bereits eine Spitzabrechnung für {0}. Um diesen Eintrag zu berücksichtigen, muss eventuell eine neue Spitzabrechnung erstellt werden.\nMöchten Sie trotzdem speichern?", klient2), "Speichern", MessageBoxButton.YesNo, MessageBoxImage.Warning).Equals(MessageBoxResult.No))
|
|
{
|
|
lValid = false;
|
|
exitLoop = true;
|
|
}
|
|
break;
|
|
case ServiceRecordValidationResult.Custom:
|
|
if (result.Allow)
|
|
{
|
|
if (MessageBox.Show(result.Message, "Speichern", MessageBoxButton.YesNo, MessageBoxImage.Warning).Equals(MessageBoxResult.No))
|
|
{
|
|
lValid = false;
|
|
exitLoop = true;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
MessageBox.Show(result.Message, "Speichern nicht möglich", MessageBoxButton.OK, MessageBoxImage.Error);
|
|
lValid = false;
|
|
exitLoop = true;
|
|
}
|
|
|
|
break;
|
|
}
|
|
|
|
if (exitLoop) break;
|
|
}
|
|
}
|
|
|
|
return lValid;
|
|
}
|
|
|
|
public static bool ValidateServiceRecordDeletion(ServiceRecordVM vm)
|
|
{
|
|
var lValid = true;
|
|
|
|
|
|
var dc = vm.CommitToDataContract();
|
|
var emp = BeWoApp.LoggedOnUser.Employee;
|
|
|
|
|
|
var r = new List<ServiceRecordValidationResultDC>();
|
|
|
|
|
|
ServiceFacade.DoOperationsServiceSync(o => r = o.ValidateServiceRecordDeletion(dc, emp.EmployeeOid));
|
|
|
|
|
|
if (r.Count > 0)
|
|
{
|
|
var exitLoop = false;
|
|
|
|
foreach (var result in r)
|
|
{
|
|
switch (result.ResultType)
|
|
{
|
|
|
|
case ServiceRecordValidationResult.Custom:
|
|
if (result.Allow)
|
|
{
|
|
if (MessageBox.Show(result.Message, "Löschen", MessageBoxButton.YesNo, MessageBoxImage.Warning).Equals(MessageBoxResult.No))
|
|
{
|
|
lValid = false;
|
|
exitLoop = true;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
MessageBox.Show(result.Message, "Löschen nicht möglich", MessageBoxButton.OK, MessageBoxImage.Error);
|
|
lValid = false;
|
|
exitLoop = true;
|
|
}
|
|
|
|
break;
|
|
}
|
|
|
|
if (exitLoop) break;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var msg = vm.GroupOid != null
|
|
? "ACHTUNG, wenn Sie fortfahren, löschen Sie die gesamte Gruppenbuchung.\nWenn Sie nur einzelne Klienten aus der Gruppe entfernen möchten,\neditieren Sie die Gruppe und entfernen den Klienten aus der Liste aller Hilfepläne.\nSind Sie sicher, dass Sie dem gesamten Gruppeneintrag löschen möchten?"
|
|
: "Sind Sie sicher, dass Sie den gewählten Eintrag löschen möchten?";
|
|
|
|
if (MessageBox.Show(msg, "Eintrag löschen", MessageBoxButton.YesNo, MessageBoxImage.Warning) !=
|
|
MessageBoxResult.Yes)
|
|
{
|
|
lValid = false;
|
|
}
|
|
}
|
|
|
|
return lValid;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Erzeugt einen Report mit Hilfe des ReportServices und zeigt ihn in einem BeWoWindow
|
|
/// </summary>
|
|
/// <param name="title">Titel des Fensters</param>
|
|
/// <param name="variablen">Dictionary mit Variablen für das ReportObject</param>
|
|
/// <param name="reportType">Der Typ des Reports (z.B. KalenderMonatsformatReport)</param>
|
|
public static void ShowReport(string title, Dictionary<string, object> variablen, ReportEnum reportType)
|
|
{
|
|
switch (reportType)
|
|
{
|
|
case ReportEnum.KalenderMonatsReportEnum:
|
|
var appointmentIds = (List<long>)variablen["appointmentOidListe"];
|
|
var selectedDays = (List<DateTime>)variablen["datesList"];
|
|
var employeeOid = Convert.ToInt64(variablen["employeeOid"]);
|
|
var serienTermine = (List<SchedulerAppointmentDC>)variablen["serienTermine"];
|
|
var mehrtaegigeTermine = (List<SchedulerAppointmentDC>)variablen["mehrtaegigeTermine"];
|
|
|
|
ServiceFacade.DoReportServiceAsync(strom => strom.CreateKalenderReport(appointmentIds, employeeOid, serienTermine, selectedDays, mehrtaegigeTermine), ms => BeWoApp.MainControl.Dispatch(() => ShowReportWindow(ms, title)));
|
|
|
|
break;
|
|
case ReportEnum.KassenbuchReportEnum:
|
|
var zeitraum = (DateTime) variablen["zeitraum"];
|
|
var objectOid = Convert.ToInt64(variablen["objectoid"]);
|
|
var objectTid = (TableID) Enum.Parse(typeof (TableID), variablen["objecttid"].ToString());
|
|
var endzeitraum = (DateTime)variablen["endzeitraum"];
|
|
|
|
var kasse = (BargeldkassenDC) variablen["bargeldkasse"];
|
|
|
|
ServiceFacade.DoReportServiceAsync(strom => strom.CreateKassenbuchReportImZeitraum(zeitraum,endzeitraum, kasse, objectOid, objectTid), ms => BeWoApp.MainControl.Dispatch(() => ShowReportWindow(ms, title)));
|
|
|
|
break;
|
|
case ReportEnum.ZahlungsbelegEnum:
|
|
var transaktion = (BargeldtransaktionDC) variablen["transaktion"];
|
|
var objectOid2 = Convert.ToInt64(variablen["objectoid"]);
|
|
var objectTid2 = (TableID) Enum.Parse(typeof(TableID), variablen["objecttid"].ToString());
|
|
|
|
ServiceFacade.DoReportServiceAsync(strom => strom.CreateKassenbelegReport(transaktion, objectOid2, objectTid2), ms => BeWoApp.MainControl.Dispatch(() => ShowReportWindow(ms, title)));
|
|
|
|
break;
|
|
}
|
|
}
|
|
|
|
public static void ShowReportWindow(MemoryStream ms, string title, DocumentPreviewControl documentPreviewControl = null)
|
|
{
|
|
var report = new XtraReport();
|
|
|
|
try
|
|
{
|
|
report.PrintingSystem.LoadDocument(ms);
|
|
}
|
|
catch(Exception)
|
|
{
|
|
var msg = Encoding.ASCII.GetString(ms.ToArray());
|
|
|
|
MessageBox.Show("Beim Öffnen der Druckvorschau ist leider ein Fehler aufgetreten!\n\n" + msg, "Fehler", MessageBoxButton.OK, MessageBoxImage.Exclamation);
|
|
}
|
|
|
|
ms.Close();
|
|
ms.Dispose();
|
|
|
|
//report.DefaultPrinterSettingsUsing.UseLandscape = BeWoApp.AppSettings.PrinterSettingsUseLandscape;
|
|
//report.DefaultPrinterSettingsUsing.UseMargins = BeWoApp.AppSettings.PrinterSettingsUseMargins;
|
|
//report.DefaultPrinterSettingsUsing.UsePaperKind = BeWoApp.AppSettings.PrinterSettingsUsePaperKind;
|
|
|
|
BeWoWindow window = null;
|
|
|
|
if(documentPreviewControl == null)
|
|
{
|
|
//ReportPrintTool tool = new ReportPrintTool(report);
|
|
//tool.ShowRibbonPreviewDialog(UserLookAndFeel.Default);
|
|
documentPreviewControl = new DocumentPreviewControl {CommandBarStyle = CommandBarStyle.Bars};
|
|
documentPreviewControl.Loaded += CustomizeReportPreviewToolBar;
|
|
documentPreviewControl.SnapsToDevicePixels = true;
|
|
|
|
window = new BeWoWindow { GroupBoxContent = documentPreviewControl, Owner = BeWoApp.CurrentBeWo.MainWindow };
|
|
|
|
ThemeManager.SetTheme(window, Theme.Office2010Black);
|
|
}
|
|
|
|
ThemeManager.SetTheme(documentPreviewControl, Theme.Office2007Black);
|
|
|
|
documentPreviewControl.DocumentSource = report;
|
|
|
|
if(window != null)
|
|
{
|
|
window.rootGroupBox.Header = string.IsNullOrEmpty(title) ? "Druckvorschau" : title;
|
|
window.Title = "Druckvorschau";
|
|
window.Show();
|
|
}
|
|
|
|
documentPreviewControl.Visibility = Visibility.Visible;
|
|
|
|
BeWoApp.MainControl.EndWaiting();
|
|
}
|
|
|
|
|
|
public static PasswortSecurityStrength CheckPasswordSecurity(string paswd)
|
|
{
|
|
PasswortSicherheit pwS = new PasswortSicherheit();
|
|
|
|
return pwS.PasswortSecurityStaerke(paswd);
|
|
}
|
|
|
|
public static void ShowImageForm(ImageSource source)
|
|
{
|
|
try
|
|
{
|
|
using (var form = new Form())
|
|
{
|
|
var imgg = new Image {Source = source};
|
|
|
|
var encoder = new BmpBitmapEncoder();
|
|
|
|
using (var ms = new MemoryStream())
|
|
{
|
|
encoder.Frames.Add(BitmapFrame.Create((BitmapSource)imgg.Source));
|
|
encoder.Save(ms);
|
|
|
|
var img = System.Drawing.Image.FromStream(ms);
|
|
|
|
using (var imgbit = new Bitmap(img))
|
|
{
|
|
form.StartPosition = FormStartPosition.CenterScreen;
|
|
form.Size = imgbit.Size;
|
|
form.FormBorderStyle = FormBorderStyle.Sizable;
|
|
form.ShowIcon = false;
|
|
using (var pb = new PictureBox())
|
|
{
|
|
pb.Dock = DockStyle.Fill;
|
|
pb.Image = imgbit;
|
|
|
|
pb.SizeMode = PictureBoxSizeMode.Zoom;
|
|
|
|
form.Controls.Add(pb);
|
|
form.ShowDialog();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
catch (Exception edf)
|
|
{
|
|
MessageBox.Show("Unbekannter Fehler: " + edf.Message + "\n" + edf.StackTrace, "Fehler", MessageBoxButton.OK);
|
|
}
|
|
}
|
|
|
|
public static void CreateZeiterfassung(DateTime start, DateTime end, List<CompactCustomerDC> customer, List<CompactEmployeeDC> employees, String notice)
|
|
{
|
|
if (customer.Count == 0)
|
|
{
|
|
|
|
//Normale Buchung
|
|
ChatDokumentationsView newView = new ChatDokumentationsView(notice, null, start, end);
|
|
|
|
newView.ShowDialog();
|
|
}
|
|
else if (customer.Count == 1 && employees.Count == 0)
|
|
{
|
|
var compactKlient = ServiceFacade.DoCustomerServiceSync(s => s.GetCompactCustomerDC(customer[0].CustomerOid));
|
|
|
|
//Normale Buchung
|
|
ChatDokumentationsView newView = new ChatDokumentationsView(notice, compactKlient, start, end);
|
|
|
|
newView.ShowDialog();
|
|
}
|
|
else
|
|
{
|
|
|
|
if (employees.Count == 0)
|
|
{
|
|
employees.Add(BeWoApp.CompactLoggedOnEmployee);
|
|
}
|
|
//gruppenbuchungen
|
|
ChatDokumentationsView newView = new ChatDokumentationsView(notice, start, end, customer, employees);
|
|
|
|
newView.ShowDialog();
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public static void OwnChatSynchronisationVeranlassen()
|
|
{
|
|
if (!BeWoApp.Mandator.Apikey.IsNullOrEmpty())
|
|
{
|
|
try
|
|
{
|
|
var serverUrl = BeWoApp.GetChatServerURL();
|
|
|
|
if (!String.IsNullOrEmpty(serverUrl))
|
|
{
|
|
#if DEBUG
|
|
var endurl = serverUrl + "/api/ownchat/sync/schedule/" + BeWoApp.Mandator.Apikey + "/5473568546";
|
|
#else
|
|
var endurl = serverUrl + "/api/ownchat/sync/schedule/" + BeWoApp.Mandator.Apikey + "/" + BeWoApp.Tenant;
|
|
#endif
|
|
WebRequest request = WebRequest.Create(endurl);
|
|
|
|
request.Credentials = CredentialCache.DefaultCredentials;
|
|
|
|
var response = request.GetResponse();
|
|
|
|
response.Close();
|
|
response.Dispose();
|
|
}
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
// MessageBox.Show("Die Verbindung konnte nicht aufgebaut werden.", "ownChat Fehler ", MessageBoxButton.OK);
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|