303 lines
9.9 KiB
C#
303 lines
9.9 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Threading;
|
|
using System.Windows;
|
|
using System.Windows.Controls;
|
|
using System.Windows.Media.Imaging;
|
|
using System.Windows.Threading;
|
|
|
|
using BeWo.Core;
|
|
using BeWo.ViewModel;
|
|
using BeWo.ServiceProxy;
|
|
using BeWo.View;
|
|
using BS.Shared.Extensions;
|
|
using BS.Shared;
|
|
using ChatController.ChatKlassen;
|
|
|
|
namespace BeWo.ownChat
|
|
{
|
|
public partial class ChatServiceEmployee
|
|
{
|
|
|
|
private EmployeeVM _ViewModel;
|
|
|
|
private long? _EmployeeOid;
|
|
private long? _PersonOid;
|
|
|
|
public ChatServiceEmployee(long? oid, long? empUserOid)
|
|
{
|
|
InitializeComponent();
|
|
|
|
_EmployeeOid = oid;
|
|
_PersonOid = empUserOid;
|
|
|
|
Loaded += ChatServiceEmployee_Loaded;
|
|
}
|
|
|
|
private void ChatServiceEmployee_Loaded(object sender, RoutedEventArgs e)
|
|
{
|
|
LaodInfostoView();
|
|
}
|
|
|
|
public EmployeeVM PublicViewModel => _ViewModel;
|
|
|
|
public override bool IsDirty => ViewModel != null && ViewModel.IsDirty;
|
|
|
|
private EmployeeVM ViewModel
|
|
{
|
|
get => _ViewModel;
|
|
|
|
set
|
|
{
|
|
DataContext = value;
|
|
_ViewModel = value;
|
|
}
|
|
}
|
|
|
|
private void LaodInfostoView()
|
|
{
|
|
var getEmployeeAppCode = ServiceFacade.DoEmployeeServiceSync(s => s.GetAllEmployeeAppCodes(_EmployeeOid.Value));
|
|
|
|
if (getEmployeeAppCode.Count > 0)
|
|
{
|
|
GeneratetTexfield.Text = getEmployeeAppCode[getEmployeeAppCode.Count - 1].EmployeeCode;
|
|
}
|
|
|
|
CodeButtonsOnOff();
|
|
}
|
|
|
|
private void CodeButtonsOnOff()
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(GeneratetTexfield.Text))
|
|
{
|
|
RemoveButton.Visibility = Visibility.Visible;
|
|
EmployeeHandoutButton.Visibility = Visibility.Visible;
|
|
|
|
ButtonGenerateCode.ToolTip = "Chat-Code erneuern";
|
|
|
|
var image = new Image //WIEDER EINKOMMENTIEREN
|
|
{
|
|
Source = new BitmapImage(new Uri("pack://application:,,,/Ressources/Icons/SymbolRefresh32.png"))
|
|
};
|
|
|
|
ImageGenerateCode.Source = image.Source;
|
|
}
|
|
else
|
|
{
|
|
RemoveButton.Visibility = Visibility.Collapsed;
|
|
EmployeeHandoutButton.Visibility = Visibility.Collapsed;
|
|
|
|
ButtonGenerateCode.ToolTip = "Chat-Code anfordern";
|
|
|
|
var image = new Image //WIEDER EINKOMMENTIEREN
|
|
{
|
|
Source = new BitmapImage(new Uri("pack://application:,,,/Ressources/Icons/DocumentWithAdd2.png"))
|
|
};
|
|
|
|
ImageGenerateCode.Source = image.Source;
|
|
}
|
|
}
|
|
|
|
#region Code Generieren / Erneuern / Löschen
|
|
private void GenerateCodeClick(object sender, RoutedEventArgs e)
|
|
{
|
|
var tenant = BeWoApp.Tenant;
|
|
var apiKey = BeWoApp.Mandator.Apikey;
|
|
|
|
#if DEBUG
|
|
tenant = "0000000001";
|
|
apiKey = "0b50c09aff87f20d9ced75340e04e5ccaa11dd3e7bcf25e9c4f94dc20d3cbb97";
|
|
#endif
|
|
|
|
if(!string.IsNullOrWhiteSpace(GeneratetTexfield.Text) && tenant != null && apiKey != null)
|
|
{
|
|
if (MessageBox.Show("Wollen Sie wirklich den Chat-Code ändern?\nAlle Daten auf dem Mobilgerät werden gelöscht.", "Achtung", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
|
|
{
|
|
StartGenerateCode();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (tenant != null && apiKey != null)
|
|
{
|
|
|
|
StartGenerateCode();
|
|
//BeWoUtils.ownChatSynchronisationVeranlassen();
|
|
}
|
|
else
|
|
{
|
|
MessageBox.Show("Sie besitzen derzeit keinen API-Key. Bitte wenden Sie sich an den Support.", "Info", MessageBoxButton.OK);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void StartGenerateCode()
|
|
{
|
|
StartWaiting();
|
|
|
|
var parameter = new List<string> {_EmployeeOid.Value.ToString(), BeWoApp.Tenant, BeWoApp.Mandator.Apikey};
|
|
|
|
var newThread = new Thread(GenerateCode) {IsBackground = true};
|
|
newThread.Start(parameter);
|
|
}
|
|
|
|
private void GenerateCode(object o)
|
|
{
|
|
var para = o as List<string>;
|
|
|
|
var result = ServiceFacade.DoOperationsServiceSync(s => s.CreateNewEmployeeAPPCodeDC(Convert.ToInt64(para[0]),para[1],para[2]));
|
|
|
|
EndWaiting();
|
|
|
|
Dispatcher.BeginInvoke(
|
|
DispatcherPriority.Background,
|
|
(Action)delegate
|
|
{
|
|
if (result != null)
|
|
{
|
|
if (result.Result == 0)
|
|
{
|
|
if (GeneratetTexfield.Text.IsNullOrEmpty())
|
|
{
|
|
BeWoUtils.OwnChatSynchronisationVeranlassen();
|
|
}
|
|
|
|
GeneratetTexfield.Text = result.EmployeeCode;
|
|
CodeButtonsOnOff();
|
|
}
|
|
else
|
|
{
|
|
OwnChatResults(result.Result);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
public void OwnChatResults(int result)
|
|
{
|
|
switch (result)
|
|
{
|
|
case 3:
|
|
MessageBox.Show("Chat Server konnte nicht ermittelt werden.", "Chat-Code erstellen", MessageBoxButton.OK, MessageBoxImage.Exclamation);
|
|
break;
|
|
case 4:
|
|
MessageBox.Show("ChatCode Datensatz konnte nicht gefunden werden.", "Fehler", MessageBoxButton.OK);
|
|
break;
|
|
case 11:
|
|
MessageBox.Show("Kundennummer unbekannt.", "Chat-Code erstellen", MessageBoxButton.OK, MessageBoxImage.Exclamation);
|
|
break;
|
|
case 12:
|
|
MessageBox.Show("Der Api-Key ist falsch.", "Chat-Code erstellen", MessageBoxButton.OK, MessageBoxImage.Exclamation);
|
|
break;
|
|
case 32:
|
|
MessageBox.Show("Der vorhandene ChatCode konnte nicht deaktiviert werden.", "Chat-Code erstellen", MessageBoxButton.OK, MessageBoxImage.Exclamation);
|
|
break;
|
|
default:
|
|
MessageBox.Show("Beim Erstellen eines neuen Chat-Codes ist ein Fehler aufgetreten.", "Chat-Code erstellen", MessageBoxButton.OK, MessageBoxImage.Exclamation);
|
|
break;
|
|
|
|
}
|
|
}
|
|
|
|
#region Remove
|
|
private void RemoveCode_OnClick(object sender, RoutedEventArgs e)
|
|
{
|
|
if (!GeneratetTexfield.Text.Equals(""))
|
|
{
|
|
if (MessageBox.Show("Wollen Sie den Chat-Code wirklich löschen?\nAlle Daten auf dem Mobilgerät werden gelöscht.", "Achtung", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
|
|
{
|
|
StartWaiting();
|
|
|
|
var parameter = new List<string> {BeWoApp.Mandator.Apikey, BeWoApp.Tenant, _EmployeeOid.Value.ToString()};
|
|
|
|
var newThread = new Thread(DeletGeneratedCode) {IsBackground = true};
|
|
newThread.Start(parameter);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
MessageBox.Show("Sie müssen vorher einen Chat-Code generieren, bevor sie ihn löschen können", "Info", MessageBoxButton.OK, MessageBoxImage.Information);
|
|
}
|
|
}
|
|
|
|
private void DeletGeneratedCode(object o)
|
|
{
|
|
var para = o as List<string>;
|
|
|
|
var result = ServiceFacade.DoOperationsServiceSync(r => r.DeletEmployeeChatCode(para[0],para[1],Convert.ToInt64(para[2])));
|
|
|
|
EndWaiting();
|
|
|
|
Dispatcher.BeginInvoke(
|
|
DispatcherPriority.Background,
|
|
(Action)delegate
|
|
{
|
|
if (result.Result == 0)
|
|
{
|
|
GeneratetTexfield.Text = "";
|
|
CodeButtonsOnOff();
|
|
BeWoUtils.OwnChatSynchronisationVeranlassen();
|
|
}
|
|
else
|
|
{
|
|
//MessageBox.Show("Löschen des Chat-Codes Fehlgeschlagen.", "Fehler");
|
|
OwnChatResults(result.Result);
|
|
}
|
|
});
|
|
}
|
|
#endregion
|
|
|
|
#endregion
|
|
|
|
#region Pdf Gedönse
|
|
|
|
private void ZeigePDF_OnClick(object sender, RoutedEventArgs e)
|
|
{
|
|
var tenant = BeWoApp.Tenant;
|
|
|
|
#if DEBUG
|
|
tenant = "5473568546";
|
|
#endif
|
|
|
|
OwnChatHelper.OpenOwnChatPdf(tenant, BeWoApp.Mandator.Apikey, "", "", GeneratetTexfield.Text);
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
#region Waitlayer
|
|
private WaitLayer2 _WaitLayer;
|
|
|
|
public void StartWaiting()
|
|
{
|
|
Dispatcher.BeginInvoke(DispatcherPriority.Background, (Action)StartWaitingImmediately);
|
|
}
|
|
|
|
public void StartWaitingImmediately()
|
|
{
|
|
if (_WaitLayer == null)
|
|
{
|
|
_WaitLayer = new WaitLayer2();
|
|
ChatServiceEmployeeGrid.Children.Add(_WaitLayer);
|
|
Panel.SetZIndex(_WaitLayer, int.MaxValue);
|
|
_WaitLayer.RefreshChatUI();
|
|
}
|
|
}
|
|
|
|
public void EndWaiting()
|
|
{
|
|
Dispatcher.BeginInvoke(
|
|
DispatcherPriority.Background,
|
|
(Action)delegate
|
|
{
|
|
if (_WaitLayer != null)
|
|
{
|
|
ChatServiceEmployeeGrid.Children.Remove(_WaitLayer);
|
|
_WaitLayer = null;
|
|
}
|
|
});
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
} |