update 6.0 Dokumentation wurde ermöglicht. :)

This commit is contained in:
Waldi
2016-08-31 10:47:33 +02:00
parent 9e689fe2a0
commit 3d59ab4793
7 changed files with 418 additions and 28 deletions

View File

@@ -401,6 +401,10 @@
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\ChatDokumentationsView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="View\MiniChatView.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
@@ -759,6 +763,9 @@
<Compile Include="View\ChatServiceEmployee.xaml.cs">
<DependentUpon>ChatServiceEmployee.xaml</DependentUpon>
</Compile>
<Compile Include="View\ChatDokumentationsView.xaml.cs">
<DependentUpon>ChatDokumentationsView.xaml</DependentUpon>
</Compile>
<Compile Include="View\MiniChatView.xaml.cs">
<DependentUpon>MiniChatView.xaml</DependentUpon>
</Compile>

View File

@@ -0,0 +1,14 @@
<Window x:Class="BeWo.View.ChatDokumentationsView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:view="clr-namespace:BeWo.View"
Title="Chat Dokumentation" Height="800" Width="550" WindowStartupLocation="CenterScreen" WindowStyle="None"
AllowsTransparency="True"
Background="Transparent"
ResizeMode="NoResize">
<Grid >
<Border x:Name="popup_contentChat" MouseLeftButtonDown="RootGroupBox_OnMouseLeftButtonDown"/>
</Grid>
</Window>

View File

@@ -0,0 +1,199 @@
using System;
using System.Linq;
using System.Windows;
using System.Windows.Input;
using System.Windows.Media;
using BeWo.ServiceProxy;
using BeWo.ViewModel;
using BS.Shared.Extensions;
using System.Windows.Controls;
using System.Net.Sockets;
using System.Threading;
using System.Windows.Threading;
using System.Collections;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.ComponentModel;
using System.IO;
using System.Text;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Media.Imaging;
using BeWo.View.Detail;
using BS.Shared;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
using DevExpress.Xpf.Core;
using DevExpress.XtraPrinting.Native;
using DevExpress.XtraPrinting.XamlExport;
using Microsoft.Office.Interop.Word;
using Color = System.Drawing.Color;
namespace BeWo.View
{
public partial class ChatDokumentationsView
{
protected List<KontakMessageBuilder> listarray;
protected long? loggedOnMitarbeiter;
private ServiceRecordVM serviceRecord;
public ChatDokumentationsView(List<KontakMessageBuilder> _listarray, long? _loggedOnMitarbeiter,long _customerPersonOid)
{
InitializeComponent();
listarray = _listarray;
loggedOnMitarbeiter = _loggedOnMitarbeiter;
ServiceRecordEditView newView = new ServiceRecordEditView();
long? customerOid = _customerPersonOid;
string message = "";
listarray.Sort((a, b) => a.SendTime.CompareTo(b.SendTime)); //-> Sortiere nach datum / hätte auch ein order by geholfen?
foreach (var ita in listarray)
{
message += ita.SendTime + " - "+ ita.Username + ": " + ita.UserMessage + "\n";
}
var firstTime = listarray.Min(r =>
{
var dt = DateTime.Parse(r.SendTime);
dt = new DateTime(dt.Year, dt.Month, dt.Day, dt.Hour, dt.Minute, 0);
return dt;
});
var lastTime = listarray.Max(r =>
{
var dt = DateTime.Parse(r.SendTime);
dt = new DateTime(dt.Year, dt.Month, dt.Day, dt.Hour, dt.Minute, 0);
return dt;
});
CustomerDC customer;
CompactCustomerDC customerCompact = null;
if (customerOid.HasValue)
{
customer = ServiceFacade.DoCustomerServiceSync(s => s.GetCustomerWithPersonOid(customerOid.Value));
customerCompact =
ServiceFacade.DoCustomerServiceSync(s => s.GetCompactCustomerDC(customer.CustomerOid.Value));
}
VMFactory.CreateServiceRecordVMAsync(
BeWoApp.LoggedOnUser.Employee.EmployeeOid,
vm => this.Dispatch(
delegate
{
vm.DispatcherObject = this;
var dc = new ServiceRecordDC();
dc.Start = firstTime;
dc.End = lastTime;
dc.Employee = BeWoApp.LoggedOnUser.Employee;
dc.Customer = customerCompact;
if (vm.PrototypeVM.SortedCategories != null && vm.PrototypeVM.SortedCategories.Count > 0)
{
var cat1 = vm.PrototypeVM.SortedCategories[0];
dc.ServiceDescription = vm.PrototypeVM.Category2Services[cat1][0];
}
serviceRecord = new ServiceRecordVM(dc, vm.PrototypeVM.Category2Services, vm.PrototypeVM.AllGoalCategories, vm.PrototypeVM.AllGoals);
serviceRecord.Notice = message;
newView.InitView(vm, serviceRecord,false);
if (customerCompact != null)
{
newView.SetSearchText(customerCompact.LastName);
}
else
{
newView.SetSearchText("");
}
//newView.SetStartTimeEndTime(first, last);
newView.SetLoggedOnEmployee();
}));
if (newView.CommandBindings.Count == 0)
{
newView.CommandBindings.Add(
new CommandBinding(
ApplicationCommands.Close,
(s, e) =>
{
if (!newView.DoSaveCheck())
{
return;
}
Close();
}));
newView.CommandBindings.Add(
new CommandBinding(
ApplicationCommands.Save,
(s, e) =>
{
bool save = newView.IsValid();
if (!save)
{
return;
}
newView.SaveData();
Close();
}));
}
popup_contentChat.Child = newView;
popup_contentChat.Visibility = Visibility.Visible;
/*
//rootGroupBox.Header = nameinf;
this.tcpClient = tcpClient;
closeWindow();
LoadallChatKontakts();
ErstelleContextMenue();
SetChatSetting();*/
}
private void RootGroupBox_OnMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
try
{
DragMove();
}
catch (Exception)
{
}
}
private DateTime ConvertToDateTimeStart(string startTime)
{
return DateTime.Parse(startTime);
}
private DateTime ConvertToDateTimeEnd(string endTime)
{
return DateTime.Parse(endTime);
}
}
}

View File

@@ -59,7 +59,7 @@
<ItemsPanelTemplate>
<StackPanel VerticalAlignment="Bottom"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>-->
</ListBox.ItemsPanel> MouseRightButtonDown="OnRightClickEvent" MouseLeftButtonDown="OnLeftClickEvent" -->
</ListBox>
@@ -169,8 +169,8 @@
<Button Style="{DynamicResource IconButtonStyle}" x:Name="ButtonAlarmLabel" Background="Transparent" BorderBrush="Transparent" Click="ReConnect" HorizontalAlignment="Left" Height="20" Margin="725,10,0,0" VerticalAlignment="Top" Width="20" Visibility="Collapsed" >
<Image x:Name="AlarmLabel" ToolTip="Zurzeit nicht Verbunden" Source="" />
</Button>
</Grid>
<Border x:Name="popup_contentChat" />
</Grid>
</Window>

View File

@@ -21,6 +21,7 @@ using System.Text;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Media.Imaging;
using BeWo.View.Detail;
using BS.Shared;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
@@ -46,6 +47,8 @@ namespace BeWo.View
protected List<string> teamdc = new List<string>();
protected PropertyGroupDescription groupDescription;// = new PropertyGroupDescription("TypeChat");
protected ContextMenu context;
public ChatView(String nameinf, String Chatinf, TcpClient tcpClient)
{
InitializeComponent();
@@ -649,8 +652,8 @@ namespace BeWo.View
list.Lastms = "Beschäftigt";
else if (type == DataIdentifier.StatusNotificationOnline)
list.Lastms = "Online";
//else if (type == DataIdentifier.StatusNotificationOffline)
// list.Lastms = "Offline"; //<--- Muss noch überdacht werden villeicht bei offlien ein Dellet LoggedOffUser oder so
else if (type == DataIdentifier.StatusNotificationOffline)
list.Lastms = "Offline"; //<--- Muss noch überdacht werden villeicht bei offlien ein Dellet LoggedOffUser oder so
}
}
@@ -663,14 +666,11 @@ namespace BeWo.View
{
try
{
ContextMenu context = new ContextMenu();
context = new ContextMenu();
MenuItem item1 = new MenuItem();
//MenuItem item2 = new MenuItem();
context.Items.Add(item1);
//context.Items.Add(item2);
context.Items.Add(item1);
item1.Header = "Dokumentieren";
item1.Visibility = Visibility.Visible;
@@ -681,10 +681,11 @@ namespace BeWo.View
icon.SetSize(new Size(16, 16));
item1.Icon = icon;
//item2.Header = "Klick";
//item2.Visibility = Visibility.Visible;
// context.StaysOpen = false;
//context.StaysOpen
Chat.ContextMenu = context;
}
catch (Exception edf)
{
@@ -696,12 +697,49 @@ namespace BeWo.View
private void OnChatRightClickMenue(object sender, RoutedEventArgs e)
{
List<KontakMessageBuilder> itemListe = new List<KontakMessageBuilder>();
// bool ungelesenachricht = false;
KontakMessageBuilder Item;
foreach (Object selecteditem in Chat.SelectedItems)
{
Item = selecteditem as KontakMessageBuilder;
Console.WriteLine(Item.UserMessage + " Oid: " + Item.MessagePersonOid); // <---- Gibt die UserMessages in der Console aus.
if (Item.MessagePersonOid != 0)
{
//ungelesenachricht = true;
itemListe.Add(Item);
}
}
if(itemListe.Count !=0 /*&& ungelesenachricht == false*/){
KontaktlistBuilder curItem = (KontaktlistBuilder)AktChatUser.Items[0];
if (curItem.TypeChat != ChatType.Team && curItem.TypeChat != ChatType.Mitarbeiter)
{
ChatDokumentationsView newView = new ChatDokumentationsView(itemListe, BeWoApp.LoggedOnUser.Employee.PersonOid, curItem.EmpfaengerOid);
newView.Visibility = Visibility.Visible;
newView.Activate();
Chat.SelectedIndex = -1;
}
else
{
MessageBox.Show("Sie können nur Klienten Nachrichten Dokumentieren.", "Info", MessageBoxButton.OK, MessageBoxImage.Exclamation);
}
}
else
{
/*if(ungelesenachricht)
{
MessageBox.Show("Die Info - Ungelesene Nachrichten - kann nicht mit in die Dokumentation eingebunden werden. Bitte wählen sie diese ab.", "Info", MessageBoxButton.OK, MessageBoxImage.Exclamation);
}else*/
MessageBox.Show("Sie müssen für diese art von Dokumentation Chat-Nachrichten auswählen.", "Info", MessageBoxButton.OK, MessageBoxImage.Exclamation);
}
itemListe.Clear();
}
@@ -709,8 +747,6 @@ namespace BeWo.View
{
try
{
// string value = StatusSetting.SelectedItem as string;
switch (StatusSetting.SelectedIndex)
{
case 0:
@@ -723,8 +759,7 @@ namespace BeWo.View
StatusSetting.SelectedIndex = 1;
}
else
{
//Console.WriteLine("Ich bin bei Online");
{
SendUserStatus(DataIdentifier.StatusNotificationOnline);
}
@@ -740,8 +775,7 @@ namespace BeWo.View
StatusSetting.SelectedIndex = 1;
}
else
{
//Console.WriteLine("Ich bin bei Offline");
{
SendUserStatus(DataIdentifier.StatusNotificationOffline);
}
@@ -758,7 +792,6 @@ namespace BeWo.View
}
else
{
//Console.WriteLine("Ich bin bei Beschäftigt");
SendUserStatus(DataIdentifier.StatusNotificationBeschäftigt);
}
@@ -796,7 +829,9 @@ namespace BeWo.View
public void SetListBoxSelection(long personoid, ChatType type)
{
try
{
{
context.IsOpen = false;
foreach (var blub in ita)
{
if (blub.EmpfaengerOid == personoid && blub.TypeChat == type)
@@ -804,15 +839,30 @@ namespace BeWo.View
AktChatUser.Items.Clear();
Chat.Items.Clear();
blub.Receivems = "";
//Clientlist.Items[] // setze die selektion auf den aktuellen chatuser weil das fehlt noch ?!
AktChatUser.Items.Add(new KontaktlistBuilder(blub.Name, blub.Lastms, blub.Image, blub.EmpfaengerOid, blub.TypeChat));
LoadChatMessagefromDB(BeWoApp.LoggedOnEmployee.PersonOid.Value, blub.EmpfaengerOid, blub);
if (blub.TypeChat == ChatType.Klienten)
{
context.Visibility = Visibility.Visible;
Chat.SelectionMode = SelectionMode.Multiple;
Chat.Focusable = true;
}
else
{
context.Visibility = Visibility.Collapsed;
Chat.SelectionMode = SelectionMode.Single;
Chat.Focusable = false;
}
}
}
Chat.Items.MoveCurrentToLast();
Chat.ScrollIntoView(Chat.Items.CurrentItem);
}
catch (Exception edf)
{
@@ -825,7 +875,9 @@ namespace BeWo.View
{
KontaktlistBuilder curItem;
try
{
{
context.IsOpen = false;
if (!Clientlist.Items.IsEmpty)
{
curItem = (KontaktlistBuilder)Clientlist.SelectedItem;
@@ -839,7 +891,6 @@ namespace BeWo.View
curItem.Receivems = "";
}
ChatType a = curItem.TypeChat;
AktChatUser.Items.Add(new KontaktlistBuilder(curItem.Name, curItem.Lastms, curItem.Image, curItem.EmpfaengerOid, curItem.TypeChat));
@@ -849,6 +900,21 @@ namespace BeWo.View
Chat.Items.MoveCurrentToLast();
Chat.ScrollIntoView(Chat.Items.CurrentItem);
view.Refresh();
if (curItem.TypeChat == ChatType.Klienten)
{
context.Visibility = Visibility.Visible;
Chat.SelectionMode = SelectionMode.Multiple;
Chat.Focusable = true;
}
else
{
context.Visibility = Visibility.Collapsed;
Chat.SelectionMode = SelectionMode.Single;
Chat.Focusable = false;
}
}
}
catch (Exception s)
@@ -1127,6 +1193,67 @@ namespace BeWo.View
}
}*/
//Rechte Maus Taste an dem Chat
/* public void OnRightClickEvent(object sender, RoutedEventArgs e)
{
if (AktChatUser.Items.Count != 0)
{
KontaktlistBuilder vv = (KontaktlistBuilder)AktChatUser.Items[0];
if (vv.TypeChat == ChatType.Mitarbeiter)
{
context.Visibility = Visibility.Collapsed;
Chat.SelectionMode = SelectionMode.Single;
Chat.Focusable = false;
}
else if (vv.TypeChat == ChatType.Team)
{
context.Visibility = Visibility.Collapsed;
Chat.SelectionMode = SelectionMode.Single;
Chat.Focusable = false;
}else
{
context.Visibility = Visibility.Visible;
Chat.SelectionMode = SelectionMode.Multiple;
Chat.Focusable = true;
}
}
else
{
context.Visibility = Visibility.Collapsed;
}
}
//Linke Maustaste an dem Chat
public void OnLeftClickEvent(object sender, RoutedEventArgs e)
{
if (AktChatUser.Items.Count != 0)
{
KontaktlistBuilder vv = (KontaktlistBuilder)AktChatUser.Items[0];
if (vv.TypeChat == ChatType.Mitarbeiter)
{
context.Visibility = Visibility.Collapsed;
Chat.SelectionMode = SelectionMode.Single;
Chat.Focusable = false;
}
else if (vv.TypeChat == ChatType.Team)
{
context.Visibility = Visibility.Collapsed;
Chat.SelectionMode = SelectionMode.Single;
Chat.Focusable = false;
}
else
{
context.Visibility = Visibility.Visible;
Chat.SelectionMode = SelectionMode.Multiple;
Chat.Focusable = true;
}
}
}*/
}
//KontaklisteFormat und KontaktMessageBuilder Klasse

View File

@@ -1,4 +1,5 @@
using System.Collections.Generic;
using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Input;
@@ -113,7 +114,7 @@ namespace BeWo.View.Detail
FlatSupportConceptTreeNodeDC node = SupportConceptService.CreateFlatSupportConceptItem(pSCViewModel.SupportConcept, pSCViewModel.CostBearer);
_OriginalNode = node;
_ServiceRecordVM.ChoosenNode = node;
supportConceptSelectionControl.SearchText = node.CustomerName;
SetSearchText(node.CustomerName);
}
if (BeWoApp.AppSettings.ShowMarker)
@@ -165,6 +166,24 @@ namespace BeWo.View.Detail
isEndDateVisible();
}
public void SetSearchText(string text)
{
supportConceptSelectionControl.SearchText = text;
}
//public void SetStartTimeEndTime(DateTime start, DateTime end)
//{
// startTime.Text = start.TimeOfDay.ToString();
// endTime.Text = end.TimeOfDay.ToString();
// //popupedit_employee
//}
public void SetLoggedOnEmployee()
{
popupedit_employee.Text = BeWoApp.LoggedOnUser.Employee.ToString();
}
private void isEndDateVisible()
{
@@ -426,5 +445,23 @@ namespace BeWo.View.Detail
}
}
//public void initViewforChat(/*long? employeeOid*/long? mitoid,string stime)
//{
// InitializeComponent();
// //ServiceRecordVM SRVM;
// // ita.SingleOrDefault(r => r.EmpfaengerOid == idKlientspeicher[0] && r.TypeChat == ChatType.Klienten
// //popupedit_employee.;
// popupedit_employee.Text = BeWoApp.LoggedOnUser.Employee.ToString();
// // supportConceptSelectionControl.SetValue();
// // startTime.Text = stime;
// //SetSelectedSupportConceptOid(21);
//}
}
}

View File

@@ -1189,9 +1189,15 @@ namespace BeWo.View
private void ChatLinkOnRequestNavigate(object sender, RequestNavigateEventArgs e)
{
if(chatpav.Visibility == Visibility.Collapsed){
chatpav.Visibility = Visibility.Visible;
chatpav.AktualisiereChatKontakt();
chatpav.AktualisiereChatKontakt();
chatpav.Activate();
}
else
{
chatpav.Visibility = Visibility.Collapsed;
}
}