Mapping ausgelagert
This commit is contained in:
@@ -33,172 +33,172 @@ using System.Collections;
|
||||
|
||||
namespace BeWo.View.Navigation
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaktionslogik für CustomerNavigationView.xaml
|
||||
/// </summary>
|
||||
public partial class CustomerNavigationView
|
||||
{
|
||||
//private readonly CheckBox chkShowOnlyMyCustomers;
|
||||
//private readonly CheckBox chkShowOnlyTeamCustomers;
|
||||
private readonly ComboBox supportConceptFilterComboBox;
|
||||
/// <summary>
|
||||
/// Interaktionslogik für CustomerNavigationView.xaml
|
||||
/// </summary>
|
||||
public partial class CustomerNavigationView
|
||||
{
|
||||
//private readonly CheckBox chkShowOnlyMyCustomers;
|
||||
//private readonly CheckBox chkShowOnlyTeamCustomers;
|
||||
private readonly ComboBox supportConceptFilterComboBox;
|
||||
|
||||
private IEnumerable<IFilterableDC> objectList;
|
||||
private IEnumerable<IFilterableDC> recentList;
|
||||
private IEnumerable<IFilterableDC> objectList;
|
||||
private IEnumerable<IFilterableDC> recentList;
|
||||
|
||||
public CustomerNavigationView()
|
||||
{
|
||||
InitializeComponent();
|
||||
public CustomerNavigationView()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
mainNavigationView.OpenAiWindowCommand = new DelegateCommand(OpenAiWindow, () => BeWoApp.HasLoggedOnUserRight(UserRightType.AiModuleView), false);
|
||||
mainNavigationView.OpenAiPopupCommand = new DelegateCommand(OpenAiPopup, () => BeWoApp.HasLoggedOnUserRight(UserRightType.AiModuleView2), false);
|
||||
|
||||
mainNavigationView.Sorter = new CustomerSorter();
|
||||
mainNavigationView.ArchiveButtonVisible = BeWoApp.LoggedOnUser.HasRight(UserRightType.Customer_AllowArchiving);
|
||||
mainNavigationView.ShowArchivedObjectsVisible = true;
|
||||
mainNavigationView.ArchiveButtonVisible = BeWoApp.LoggedOnUser.HasRight(UserRightType.Customer_AllowArchiving);
|
||||
mainNavigationView.ShowArchivedObjectsVisible = true;
|
||||
|
||||
|
||||
supportConceptFilterComboBox = new ComboBox();
|
||||
//supportConceptFilterComboBox.HorizontalAlignment = "Left";
|
||||
//supportConceptFilterComboBox.FontFamily = "Microsoft Sans Serif";
|
||||
supportConceptFilterComboBox = new ComboBox();
|
||||
//supportConceptFilterComboBox.HorizontalAlignment = "Left";
|
||||
//supportConceptFilterComboBox.FontFamily = "Microsoft Sans Serif";
|
||||
|
||||
//supportConceptFilterComboBox.Foreground = new SolidColorBrush(Color.FromRgb(210, 210, 210));
|
||||
supportConceptFilterComboBox.FontSize = 12;
|
||||
supportConceptFilterComboBox.Margin = new Thickness(10, 0, 0, 0);
|
||||
supportConceptFilterComboBox.MinWidth = 100;
|
||||
//supportConceptFilterComboBox.DisplayMemberPath = "DisplayName";
|
||||
//supportConceptFilterComboBox.SelectionChanged = "sortCombo_SelectionChanged";
|
||||
supportConceptFilterComboBox.Style = FindResource("SortComboBox") as Style;
|
||||
//supportConceptFilterComboBox.Foreground = new SolidColorBrush(Color.FromRgb(210, 210, 210));
|
||||
supportConceptFilterComboBox.FontSize = 12;
|
||||
supportConceptFilterComboBox.Margin = new Thickness(10, 0, 0, 0);
|
||||
supportConceptFilterComboBox.MinWidth = 100;
|
||||
//supportConceptFilterComboBox.DisplayMemberPath = "DisplayName";
|
||||
//supportConceptFilterComboBox.SelectionChanged = "sortCombo_SelectionChanged";
|
||||
supportConceptFilterComboBox.Style = FindResource("SortComboBox") as Style;
|
||||
|
||||
if (BeWoApp.AppSettings.ShowAIInternal)
|
||||
{
|
||||
mainNavigationView.btnOpenAi.Visibility = Visibility.Visible;
|
||||
}
|
||||
if (BeWoApp.AppSettings.ShowAIInternal)
|
||||
{
|
||||
mainNavigationView.btnOpenAi.Visibility = Visibility.Visible;
|
||||
}
|
||||
|
||||
if (BeWoApp.LoggedOnUser.HasRight(UserRightType.CustomerView_View) || BeWoApp.LoggedOnUser.HasRight(UserRightType.ViewAll))
|
||||
{
|
||||
supportConceptFilterComboBox.Items.Add(new CustomerFilterItem(CustomerFilterEnum.All));
|
||||
}
|
||||
|
||||
if(BeWoApp.LoggedOnUser.HasRight(UserRightType.Customer_ViewMyTeams))
|
||||
{
|
||||
supportConceptFilterComboBox.Items.Add(new CustomerFilterItem(CustomerFilterEnum.TeamCustomer));
|
||||
}
|
||||
supportConceptFilterComboBox.Items.Add(new CustomerFilterItem(CustomerFilterEnum.MyCustomer));
|
||||
if (BeWoApp.LoggedOnUser.HasRight(UserRightType.CustomerView_View) || BeWoApp.LoggedOnUser.HasRight(UserRightType.ViewAll))
|
||||
{
|
||||
supportConceptFilterComboBox.Items.Add(new CustomerFilterItem(CustomerFilterEnum.All));
|
||||
}
|
||||
|
||||
CustomerFilterItem selectedItem = null;
|
||||
if (BeWoApp.LoggedOnUser.HasRight(UserRightType.Customer_ViewMyTeams))
|
||||
{
|
||||
supportConceptFilterComboBox.Items.Add(new CustomerFilterItem(CustomerFilterEnum.TeamCustomer));
|
||||
}
|
||||
supportConceptFilterComboBox.Items.Add(new CustomerFilterItem(CustomerFilterEnum.MyCustomer));
|
||||
|
||||
switch(BeWoApp.AppSettings.CustomerFilterSupportConcepts)
|
||||
{
|
||||
case CustomerFilterEnum.All:
|
||||
if(BeWoApp.LoggedOnUser.HasRight(UserRightType.CustomerView_View) || BeWoApp.LoggedOnUser.HasRight(UserRightType.ViewAll))
|
||||
{
|
||||
selectedItem = new CustomerFilterItem(CustomerFilterEnum.All);
|
||||
}
|
||||
|
||||
break;
|
||||
case CustomerFilterEnum.TeamCustomer:
|
||||
if(BeWoApp.LoggedOnUser.HasRight(UserRightType.CustomerView_View) ||
|
||||
BeWoApp.LoggedOnUser.HasRight(UserRightType.ViewAll) ||
|
||||
BeWoApp.LoggedOnUser.HasRight(UserRightType.Customer_ViewMyTeams))
|
||||
{
|
||||
selectedItem = new CustomerFilterItem(CustomerFilterEnum.TeamCustomer);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
if(selectedItem == null)
|
||||
{
|
||||
selectedItem = new CustomerFilterItem(CustomerFilterEnum.MyCustomer);
|
||||
}
|
||||
|
||||
supportConceptFilterComboBox.SelectedItem = selectedItem;
|
||||
supportConceptFilterComboBox.SelectionChanged += SupportConceptFilterComboBoxOnSelectionChanged;
|
||||
CustomerFilterItem selectedItem = null;
|
||||
|
||||
//chkShowOnlyMyCustomers = new CheckBox
|
||||
// {
|
||||
// FontSize = 12,
|
||||
// Margin = new Thickness(10, 0, 0, 0),
|
||||
// Content = Translator.Translate("Meine Klienten"),
|
||||
// VerticalAlignment = VerticalAlignment.Center
|
||||
// };
|
||||
//chkShowOnlyTeamCustomers = new CheckBox
|
||||
//{
|
||||
// FontSize = 12,
|
||||
// Margin = new Thickness(10, 0, 0, 0),
|
||||
// Content = Translator.Translate("Klienten meines Teams"),
|
||||
// VerticalAlignment = VerticalAlignment.Center
|
||||
//};
|
||||
switch (BeWoApp.AppSettings.CustomerFilterSupportConcepts)
|
||||
{
|
||||
case CustomerFilterEnum.All:
|
||||
if (BeWoApp.LoggedOnUser.HasRight(UserRightType.CustomerView_View) || BeWoApp.LoggedOnUser.HasRight(UserRightType.ViewAll))
|
||||
{
|
||||
selectedItem = new CustomerFilterItem(CustomerFilterEnum.All);
|
||||
}
|
||||
|
||||
//var b = FindResource("MainGroupBoxForegroundBrush") as Brush;
|
||||
//if (b != null)
|
||||
//{
|
||||
// chkShowOnlyMyCustomers.Foreground = b;
|
||||
// chkShowOnlyTeamCustomers.Foreground = b;
|
||||
//}
|
||||
break;
|
||||
case CustomerFilterEnum.TeamCustomer:
|
||||
if (BeWoApp.LoggedOnUser.HasRight(UserRightType.CustomerView_View) ||
|
||||
BeWoApp.LoggedOnUser.HasRight(UserRightType.ViewAll) ||
|
||||
BeWoApp.LoggedOnUser.HasRight(UserRightType.Customer_ViewMyTeams))
|
||||
{
|
||||
selectedItem = new CustomerFilterItem(CustomerFilterEnum.TeamCustomer);
|
||||
}
|
||||
|
||||
//if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.CustomerView_View) &&
|
||||
// !BeWoApp.LoggedOnUser.HasRight(UserRightType.ViewAll))
|
||||
//{
|
||||
// chkShowOnlyMyCustomers.IsChecked = true;
|
||||
// chkShowOnlyMyCustomers.IsEnabled = false;
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// chkShowOnlyMyCustomers.IsChecked = BeWoApp.AppSettings.ShowOnlyMyClients;
|
||||
//}
|
||||
break;
|
||||
}
|
||||
|
||||
//if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.CustomerView_View) &&
|
||||
// !BeWoApp.LoggedOnUser.HasRight(UserRightType.ViewAll))
|
||||
//{
|
||||
// chkShowOnlyTeamCustomers.IsChecked = true;
|
||||
// chkShowOnlyTeamCustomers.IsEnabled = false;
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// chkShowOnlyTeamCustomers.IsChecked = BeWoApp.AppSettings.ShowOnlyTeamClients;
|
||||
//}
|
||||
if (selectedItem == null)
|
||||
{
|
||||
selectedItem = new CustomerFilterItem(CustomerFilterEnum.MyCustomer);
|
||||
}
|
||||
|
||||
//chkShowOnlyMyCustomers.Click += chkShowOnlyMyCustomers_Click;
|
||||
//chkShowOnlyTeamCustomers.Click += chkShowOnlyMyCustomers_Click;
|
||||
supportConceptFilterComboBox.SelectedItem = selectedItem;
|
||||
supportConceptFilterComboBox.SelectionChanged += SupportConceptFilterComboBoxOnSelectionChanged;
|
||||
|
||||
//mainNavigationView.AddControlToSortPanel(chkShowOnlyMyCustomers);
|
||||
//mainNavigationView.AddControlToSortPanel(chkShowOnlyTeamCustomers);
|
||||
var lbl = new TextBlock
|
||||
{
|
||||
Text = "Filter:",
|
||||
FontSize = 12,
|
||||
Margin = new Thickness(8, 2, -3, 0)
|
||||
};
|
||||
//chkShowOnlyMyCustomers = new CheckBox
|
||||
// {
|
||||
// FontSize = 12,
|
||||
// Margin = new Thickness(10, 0, 0, 0),
|
||||
// Content = Translator.Translate("Meine Klienten"),
|
||||
// VerticalAlignment = VerticalAlignment.Center
|
||||
// };
|
||||
//chkShowOnlyTeamCustomers = new CheckBox
|
||||
//{
|
||||
// FontSize = 12,
|
||||
// Margin = new Thickness(10, 0, 0, 0),
|
||||
// Content = Translator.Translate("Klienten meines Teams"),
|
||||
// VerticalAlignment = VerticalAlignment.Center
|
||||
//};
|
||||
|
||||
mainNavigationView.sortPanel.Children.Insert(3, lbl);
|
||||
mainNavigationView.sortPanel.Children.Insert(4, supportConceptFilterComboBox);
|
||||
|
||||
UpdateCustomFilter();
|
||||
}
|
||||
//var b = FindResource("MainGroupBoxForegroundBrush") as Brush;
|
||||
//if (b != null)
|
||||
//{
|
||||
// chkShowOnlyMyCustomers.Foreground = b;
|
||||
// chkShowOnlyTeamCustomers.Foreground = b;
|
||||
//}
|
||||
|
||||
public Dictionary<TableID, long[]> GetVisibleInformationReferences()
|
||||
{
|
||||
var visible = mainNavigationView.objectListBox.ItemsSource;
|
||||
//if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.CustomerView_View) &&
|
||||
// !BeWoApp.LoggedOnUser.HasRight(UserRightType.ViewAll))
|
||||
//{
|
||||
// chkShowOnlyMyCustomers.IsChecked = true;
|
||||
// chkShowOnlyMyCustomers.IsEnabled = false;
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// chkShowOnlyMyCustomers.IsChecked = BeWoApp.AppSettings.ShowOnlyMyClients;
|
||||
//}
|
||||
|
||||
return GetVisibleInformationReferences(visible);
|
||||
//if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.CustomerView_View) &&
|
||||
// !BeWoApp.LoggedOnUser.HasRight(UserRightType.ViewAll))
|
||||
//{
|
||||
// chkShowOnlyTeamCustomers.IsChecked = true;
|
||||
// chkShowOnlyTeamCustomers.IsEnabled = false;
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// chkShowOnlyTeamCustomers.IsChecked = BeWoApp.AppSettings.ShowOnlyTeamClients;
|
||||
//}
|
||||
|
||||
//chkShowOnlyMyCustomers.Click += chkShowOnlyMyCustomers_Click;
|
||||
//chkShowOnlyTeamCustomers.Click += chkShowOnlyMyCustomers_Click;
|
||||
|
||||
//mainNavigationView.AddControlToSortPanel(chkShowOnlyMyCustomers);
|
||||
//mainNavigationView.AddControlToSortPanel(chkShowOnlyTeamCustomers);
|
||||
var lbl = new TextBlock
|
||||
{
|
||||
Text = "Filter:",
|
||||
FontSize = 12,
|
||||
Margin = new Thickness(8, 2, -3, 0)
|
||||
};
|
||||
|
||||
mainNavigationView.sortPanel.Children.Insert(3, lbl);
|
||||
mainNavigationView.sortPanel.Children.Insert(4, supportConceptFilterComboBox);
|
||||
|
||||
UpdateCustomFilter();
|
||||
}
|
||||
|
||||
private Dictionary<TableID, long[]> GetVisibleInformationReferences(IEnumerable selected_records)
|
||||
{
|
||||
foreach (var record in selected_records)
|
||||
{
|
||||
var t = record is CompactCustomerDC;
|
||||
public Dictionary<TableID, long[]> GetVisibleInformationReferences()
|
||||
{
|
||||
var visible = mainNavigationView.objectListBox.ItemsSource;
|
||||
|
||||
return GetVisibleInformationReferences(visible);
|
||||
}
|
||||
|
||||
if (record is CompactCustomerDC)
|
||||
{
|
||||
private Dictionary<TableID, long[]> GetVisibleInformationReferences(IEnumerable visible_customers)
|
||||
{
|
||||
var oids = new List<long>();
|
||||
foreach (var c in visible_customers)
|
||||
{
|
||||
var customer = c as CompactCustomerDC;
|
||||
oids.Add(customer.CustomerOid);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
var dict = new Dictionary<TableID, long[]>() {
|
||||
{ TableID.Customer, oids.ToArray()}
|
||||
};
|
||||
|
||||
return null;
|
||||
}
|
||||
return dict;
|
||||
}
|
||||
|
||||
private void OpenAiWindow()
|
||||
{
|
||||
@@ -219,337 +219,337 @@ namespace BeWo.View.Navigation
|
||||
}
|
||||
|
||||
private void SupportConceptFilterComboBoxOnSelectionChanged(object o, SelectionChangedEventArgs selectionChangedEventArgs)
|
||||
{
|
||||
BeWoApp.AppSettings.CustomerFilterSupportConcepts = ((CustomerFilterItem) supportConceptFilterComboBox.SelectedItem)?.CustomerFilter ?? CustomerFilterEnum.MyCustomer;
|
||||
{
|
||||
BeWoApp.AppSettings.CustomerFilterSupportConcepts = ((CustomerFilterItem)supportConceptFilterComboBox.SelectedItem)?.CustomerFilter ?? CustomerFilterEnum.MyCustomer;
|
||||
|
||||
BeWoApp.SaveAppSettings();
|
||||
BeWoApp.SaveAppSettings();
|
||||
|
||||
UpdateCustomFilter();
|
||||
}
|
||||
UpdateCustomFilter();
|
||||
}
|
||||
|
||||
private CustomFilter CreateNewCustomFilter()
|
||||
{
|
||||
var filter = new CustomerNavigationFilter {CustomerFilter = ((CustomerFilterItem) supportConceptFilterComboBox.SelectedItem)?.CustomerFilter ?? CustomerFilterEnum.MyCustomer};
|
||||
private CustomFilter CreateNewCustomFilter()
|
||||
{
|
||||
var filter = new CustomerNavigationFilter { CustomerFilter = ((CustomerFilterItem)supportConceptFilterComboBox.SelectedItem)?.CustomerFilter ?? CustomerFilterEnum.MyCustomer };
|
||||
|
||||
return filter;
|
||||
}
|
||||
return filter;
|
||||
}
|
||||
|
||||
private void OnLoaded(object sender, RoutedEventArgs e)
|
||||
{
|
||||
ServiceFacade.DoCustomerServiceAsync(s => s.ConvertToNewSubstitutionType(), n => this.Dispatch(delegate
|
||||
{
|
||||
ReloadData(false);
|
||||
}));
|
||||
}
|
||||
private void OnLoaded(object sender, RoutedEventArgs e)
|
||||
{
|
||||
ServiceFacade.DoCustomerServiceAsync(s => s.ConvertToNewSubstitutionType(), n => this.Dispatch(delegate
|
||||
{
|
||||
ReloadData(false);
|
||||
}));
|
||||
}
|
||||
|
||||
private void UpdateCustomFilter()
|
||||
{
|
||||
mainNavigationView.CustomFilter = CreateNewCustomFilter();
|
||||
}
|
||||
private void UpdateCustomFilter()
|
||||
{
|
||||
mainNavigationView.CustomFilter = CreateNewCustomFilter();
|
||||
}
|
||||
|
||||
private void ChkShowOnlyMyCustomers_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
//if (chkShowOnlyMyCustomers.IsChecked != null)
|
||||
// BeWoApp.AppSettings.ShowOnlyMyClients = chkShowOnlyMyCustomers.IsChecked.Value;
|
||||
//if (chkShowOnlyTeamCustomers.IsChecked != null)
|
||||
// BeWoApp.AppSettings.ShowOnlyTeamClients = chkShowOnlyTeamCustomers.IsChecked.Value;
|
||||
BeWoApp.SaveAppSettings();
|
||||
private void ChkShowOnlyMyCustomers_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
//if (chkShowOnlyMyCustomers.IsChecked != null)
|
||||
// BeWoApp.AppSettings.ShowOnlyMyClients = chkShowOnlyMyCustomers.IsChecked.Value;
|
||||
//if (chkShowOnlyTeamCustomers.IsChecked != null)
|
||||
// BeWoApp.AppSettings.ShowOnlyTeamClients = chkShowOnlyTeamCustomers.IsChecked.Value;
|
||||
BeWoApp.SaveAppSettings();
|
||||
|
||||
UpdateCustomFilter();
|
||||
}
|
||||
UpdateCustomFilter();
|
||||
}
|
||||
|
||||
private bool mainNavigationView_ArchiveObject(IFilterableDC obj)
|
||||
{
|
||||
var cdc = obj as CompactCustomerDC;
|
||||
if (cdc != null)
|
||||
{
|
||||
if (MessageBox.Show(Translator.Translate("Wollen Sie den Klient '{0}' wirklich archivieren?", cdc.FirstName + " " + cdc.LastName), "Archivieren", MessageBoxButton.YesNo, MessageBoxImage.Exclamation) == MessageBoxResult.Yes)
|
||||
{
|
||||
ServiceFacade.DoCustomerServiceAsync(
|
||||
s =>
|
||||
{
|
||||
s.ArchiveCustomer(cdc.CustomerOid, cdc.CustomerVersion);
|
||||
return cdc;
|
||||
},
|
||||
cb => cb.CustomerVersion++);
|
||||
private bool mainNavigationView_ArchiveObject(IFilterableDC obj)
|
||||
{
|
||||
var cdc = obj as CompactCustomerDC;
|
||||
if (cdc != null)
|
||||
{
|
||||
if (MessageBox.Show(Translator.Translate("Wollen Sie den Klient '{0}' wirklich archivieren?", cdc.FirstName + " " + cdc.LastName), "Archivieren", MessageBoxButton.YesNo, MessageBoxImage.Exclamation) == MessageBoxResult.Yes)
|
||||
{
|
||||
ServiceFacade.DoCustomerServiceAsync(
|
||||
s =>
|
||||
{
|
||||
s.ArchiveCustomer(cdc.CustomerOid, cdc.CustomerVersion);
|
||||
return cdc;
|
||||
},
|
||||
cb => cb.CustomerVersion++);
|
||||
|
||||
Cache.GetInstance().ClearSupportConceptTree();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
Cache.GetInstance().ClearSupportConceptTree();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private void mainNavigationView_CreateNewObject()
|
||||
{
|
||||
VMFactory.CreateCustomerVMAsync(cb => this.Dispatch(() => MainControl.NavigateTo(new CustomerView(cb) {ParentView = this})));
|
||||
}
|
||||
private void mainNavigationView_CreateNewObject()
|
||||
{
|
||||
VMFactory.CreateCustomerVMAsync(cb => this.Dispatch(() => MainControl.NavigateTo(new CustomerView(cb) { ParentView = this })));
|
||||
}
|
||||
|
||||
private bool mainNavigationView_DeleteObject(IFilterableDC obj)
|
||||
{
|
||||
var cdc = obj as CompactCustomerDC;
|
||||
if (cdc != null)
|
||||
{
|
||||
if (MessageBox.Show(Translator.Translate("Wollen Sie den Klient '{0}' wirklich löschen?", cdc.FirstName + " " + cdc.LastName), "Löschen", MessageBoxButton.YesNo, MessageBoxImage.Exclamation) == MessageBoxResult.Yes)
|
||||
{
|
||||
private bool mainNavigationView_DeleteObject(IFilterableDC obj)
|
||||
{
|
||||
var cdc = obj as CompactCustomerDC;
|
||||
if (cdc != null)
|
||||
{
|
||||
if (MessageBox.Show(Translator.Translate("Wollen Sie den Klient '{0}' wirklich löschen?", cdc.FirstName + " " + cdc.LastName), "Löschen", MessageBoxButton.YesNo, MessageBoxImage.Exclamation) == MessageBoxResult.Yes)
|
||||
{
|
||||
|
||||
CustomerInfoDC details = ServiceFacade.DoOperationsServiceSync(s => s.GetCustomerInfosForCustomerOid(cdc.CustomerOid));
|
||||
bool delete = true;
|
||||
if (details != null)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(details.CurrentSupportConcept) && details.CurrentSupportConcept.ToLower() != Translator.Translate("Kein aktueller Hilfeplan").ToLower())
|
||||
{
|
||||
if (MessageBox.Show(Translator.Translate("Für Klient '{0}' wurde bereits ein Hilfeplan angelegt. Der Hilfeplan wird dadurch auch gelöscht!\n Möchten Sie wirklich fortfahren und den Klient löschen?", cdc.FirstName + " " + cdc.LastName), "Löschen", MessageBoxButton.YesNo, MessageBoxImage.Exclamation) == MessageBoxResult.No)
|
||||
{
|
||||
delete = false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
if (delete)
|
||||
{
|
||||
|
||||
ServiceFacade.DoCustomerServiceAsync(
|
||||
s =>
|
||||
{
|
||||
s.DeactivateCustomer(cdc.CustomerOid, cdc.CustomerVersion);
|
||||
return cdc;
|
||||
}, cb => cb.CustomerVersion++);
|
||||
CustomerInfoDC details = ServiceFacade.DoOperationsServiceSync(s => s.GetCustomerInfosForCustomerOid(cdc.CustomerOid));
|
||||
bool delete = true;
|
||||
if (details != null)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(details.CurrentSupportConcept) && details.CurrentSupportConcept.ToLower() != Translator.Translate("Kein aktueller Hilfeplan").ToLower())
|
||||
{
|
||||
if (MessageBox.Show(Translator.Translate("Für Klient '{0}' wurde bereits ein Hilfeplan angelegt. Der Hilfeplan wird dadurch auch gelöscht!\n Möchten Sie wirklich fortfahren und den Klient löschen?", cdc.FirstName + " " + cdc.LastName), "Löschen", MessageBoxButton.YesNo, MessageBoxImage.Exclamation) == MessageBoxResult.No)
|
||||
{
|
||||
delete = false;
|
||||
}
|
||||
}
|
||||
|
||||
Cache.GetInstance().ClearSupportConceptTree();
|
||||
return true;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (delete)
|
||||
{
|
||||
|
||||
return false;
|
||||
}
|
||||
ServiceFacade.DoCustomerServiceAsync(
|
||||
s =>
|
||||
{
|
||||
s.DeactivateCustomer(cdc.CustomerOid, cdc.CustomerVersion);
|
||||
return cdc;
|
||||
}, cb => cb.CustomerVersion++);
|
||||
|
||||
private void mainNavigationView_ExcelExport(object sender, EventArgs<IEnumerable<IFilterableDC>> e)
|
||||
{
|
||||
Cache.GetInstance().ClearSupportConceptTree();
|
||||
return true;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private void mainNavigationView_ExcelExport(object sender, EventArgs<IEnumerable<IFilterableDC>> e)
|
||||
{
|
||||
var path = BeWoApp.GetAndCreateUserAppDataPath() + Translator.Translate("\\Klienten.xls");
|
||||
|
||||
var sf = new SaveFileDialog { FileName = Path.GetFileName(path), Filter = "Microsoft Excel 97-2003-Arbeitsblatt|*.xls|Alle Dateien|*.*" };
|
||||
if (sf.ShowDialog() != true)
|
||||
return;
|
||||
var sf = new SaveFileDialog { FileName = Path.GetFileName(path), Filter = "Microsoft Excel 97-2003-Arbeitsblatt|*.xls|Alle Dateien|*.*" };
|
||||
if (sf.ShowDialog() != true)
|
||||
return;
|
||||
|
||||
ServiceFacade.DoDownloadServiceSync(s => BeWoUtils.WriteExcelFile(s.PrepareExcelFileCustomerExport(mainNavigationView.DownloadLinkEngine.ExcelFileId, e.Data.Cast<CompactCustomerDC>().Select(c => c.CustomerOid).ToList()), sf.FileName));
|
||||
}
|
||||
ServiceFacade.DoDownloadServiceSync(s => BeWoUtils.WriteExcelFile(s.PrepareExcelFileCustomerExport(mainNavigationView.DownloadLinkEngine.ExcelFileId, e.Data.Cast<CompactCustomerDC>().Select(c => c.CustomerOid).ToList()), sf.FileName));
|
||||
}
|
||||
|
||||
private void mainNavigationView_OpenObject(IFilterableDC obj)
|
||||
{
|
||||
var cdc = obj as CompactCustomerDC;
|
||||
if (cdc != null)
|
||||
{
|
||||
VMFactory.CreateCustomerVMAsync(cdc.CustomerOid, cb => this.Dispatch(() => MainControl.NavigateTo(new CustomerView(cb) {ParentView = this})));
|
||||
}
|
||||
}
|
||||
|
||||
public override void ChildViewClosed()
|
||||
{
|
||||
recentList = null;
|
||||
objectList = null;
|
||||
}
|
||||
private void MainNavigationView_OnReloadData()
|
||||
{
|
||||
ReloadData(true);
|
||||
}
|
||||
|
||||
private void ReloadData(bool refresh)
|
||||
private void mainNavigationView_OpenObject(IFilterableDC obj)
|
||||
{
|
||||
if (refresh || recentList == null)
|
||||
{
|
||||
ServiceFacade.DoCustomerServiceAsync(
|
||||
var cdc = obj as CompactCustomerDC;
|
||||
if (cdc != null)
|
||||
{
|
||||
VMFactory.CreateCustomerVMAsync(cdc.CustomerOid, cb => this.Dispatch(() => MainControl.NavigateTo(new CustomerView(cb) { ParentView = this })));
|
||||
}
|
||||
}
|
||||
|
||||
public override void ChildViewClosed()
|
||||
{
|
||||
recentList = null;
|
||||
objectList = null;
|
||||
}
|
||||
private void MainNavigationView_OnReloadData()
|
||||
{
|
||||
ReloadData(true);
|
||||
}
|
||||
|
||||
private void ReloadData(bool refresh)
|
||||
{
|
||||
if (refresh || recentList == null)
|
||||
{
|
||||
ServiceFacade.DoCustomerServiceAsync(
|
||||
s => s.GetAllCustomersCompact(BeWoApp.LoggedOnUser.Employee.EmployeeOid),
|
||||
r => this.Dispatch(delegate
|
||||
{
|
||||
objectList = r;
|
||||
|
||||
mainNavigationView.ShowSearchResult(objectList);
|
||||
}));
|
||||
r => this.Dispatch(delegate
|
||||
{
|
||||
objectList = r;
|
||||
|
||||
ServiceFacade.DoCustomerServiceAsync(s => s.GetLastOpenedCustomers(),
|
||||
r =>
|
||||
this.Dispatch(delegate
|
||||
{
|
||||
if(BeWoApp.LoggedOnUser.HasRight(UserRightType.CustomerView_View) || BeWoApp.LoggedOnUser.HasRight(UserRightType.ViewAll))
|
||||
{
|
||||
recentList = r;
|
||||
}
|
||||
else if(BeWoApp.LoggedOnUser.HasRight(UserRightType.Customer_ViewMyCustomers))
|
||||
{
|
||||
recentList = r.Where(w => BeWoApp.LoggedOnEmployee.RelatedCustomers.Select(s3 => s3.Customer.CustomerOid).Contains(w.CustomerOid));
|
||||
}
|
||||
else
|
||||
{
|
||||
recentList = new List<IFilterableDC>();
|
||||
}
|
||||
mainNavigationView.ShowSearchResult(objectList);
|
||||
}));
|
||||
|
||||
mainNavigationView.ShowHistory(recentList);
|
||||
ServiceFacade.DoCustomerServiceAsync(s => s.GetLastOpenedCustomers(),
|
||||
r =>
|
||||
this.Dispatch(delegate
|
||||
{
|
||||
if (BeWoApp.LoggedOnUser.HasRight(UserRightType.CustomerView_View) || BeWoApp.LoggedOnUser.HasRight(UserRightType.ViewAll))
|
||||
{
|
||||
recentList = r;
|
||||
}
|
||||
else if (BeWoApp.LoggedOnUser.HasRight(UserRightType.Customer_ViewMyCustomers))
|
||||
{
|
||||
recentList = r.Where(w => BeWoApp.LoggedOnEmployee.RelatedCustomers.Select(s3 => s3.Customer.CustomerOid).Contains(w.CustomerOid));
|
||||
}
|
||||
else
|
||||
{
|
||||
recentList = new List<IFilterableDC>();
|
||||
}
|
||||
|
||||
mainNavigationView.ShowHistory(recentList);
|
||||
|
||||
#if DEBUG
|
||||
if(DebugConfig.CurrentConfig is object && DebugConfig.CurrentConfig.DebugConfigMode == DebugConfigMode.FeatureCustomerWohnhilfe)
|
||||
{
|
||||
mainNavigationView_OpenObject(recentList.FirstOrDefault() ?? objectList.FirstOrDefault());
|
||||
}
|
||||
if (DebugConfig.CurrentConfig is object && DebugConfig.CurrentConfig.DebugConfigMode == DebugConfigMode.FeatureCustomerWohnhilfe)
|
||||
{
|
||||
mainNavigationView_OpenObject(recentList.FirstOrDefault() ?? objectList.FirstOrDefault());
|
||||
}
|
||||
#endif
|
||||
})
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
mainNavigationView.ShowSearchResult(objectList);
|
||||
mainNavigationView.ShowHistory(recentList);
|
||||
}
|
||||
}
|
||||
})
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
mainNavigationView.ShowSearchResult(objectList);
|
||||
mainNavigationView.ShowHistory(recentList);
|
||||
}
|
||||
}
|
||||
|
||||
private void Hyperlink_OnRequestNavigate(object sender, RequestNavigateEventArgs e)
|
||||
{
|
||||
//var alleVorlagen = ServiceFacade.DoOperationsServiceSync(s => s.Getvor());
|
||||
private void Hyperlink_OnRequestNavigate(object sender, RequestNavigateEventArgs e)
|
||||
{
|
||||
//var alleVorlagen = ServiceFacade.DoOperationsServiceSync(s => s.Getvor());
|
||||
|
||||
var alleVorlagen = ServiceFacade.DoOperationsServiceSync(s => s.GetDokumentvorlagenForType(TableID.Customer));
|
||||
if (alleVorlagen.Count > 0)
|
||||
{
|
||||
var c = (CompactCustomerDC)((Hyperlink)sender).Tag;
|
||||
var alleVorlagen = ServiceFacade.DoOperationsServiceSync(s => s.GetDokumentvorlagenForType(TableID.Customer));
|
||||
if (alleVorlagen.Count > 0)
|
||||
{
|
||||
var c = (CompactCustomerDC)((Hyperlink)sender).Tag;
|
||||
|
||||
DokumentViewHelper.OpenTemplateSelectionDialog(alleVorlagen, TableID.Customer, c.CustomerOid);
|
||||
}
|
||||
else
|
||||
{
|
||||
BeWoUtils.NavigateToReportUri(((Hyperlink)sender).NavigateUri.ToString(), "Druckvorschau");
|
||||
}
|
||||
//var folderDCs = VMFactory.CreateFolderList(TableID.Vorlagentabelle, (long)vm.DocTreeItemOid);
|
||||
DokumentViewHelper.OpenTemplateSelectionDialog(alleVorlagen, TableID.Customer, c.CustomerOid);
|
||||
}
|
||||
else
|
||||
{
|
||||
BeWoUtils.NavigateToReportUri(((Hyperlink)sender).NavigateUri.ToString(), "Druckvorschau");
|
||||
}
|
||||
//var folderDCs = VMFactory.CreateFolderList(TableID.Vorlagentabelle, (long)vm.DocTreeItemOid);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void MainNavigationView_OnOpenMailMergeWindow(List<IFilterableDC> allCustomers, IFilterableDC selectedCustomer)
|
||||
{
|
||||
var mmw = new MailMergeWindow(this, typeof(CustomerDC), objectList.ToList(), selectedCustomer) { Sorter = new CustomerSorter() };
|
||||
|
||||
mmw.Show();
|
||||
}
|
||||
|
||||
private void Hyperlink_Reaktivieren_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var customer = (CompactCustomerDC) ((Hyperlink)sender).Tag;
|
||||
|
||||
if (MessageBox.Show(Translator.Translate("Wollen Sie den Klient '{0}' wirklich reaktivieren?", customer.FirstName + " " + customer.LastName), "Reaktivieren", MessageBoxButton.YesNo, MessageBoxImage.Exclamation) == MessageBoxResult.No)
|
||||
{
|
||||
return;
|
||||
}
|
||||
private void MainNavigationView_OnOpenMailMergeWindow(List<IFilterableDC> allCustomers, IFilterableDC selectedCustomer)
|
||||
{
|
||||
var mmw = new MailMergeWindow(this, typeof(CustomerDC), objectList.ToList(), selectedCustomer) { Sorter = new CustomerSorter() };
|
||||
|
||||
ServiceFacade.DoCustomerServiceAsync(s =>
|
||||
{
|
||||
mmw.Show();
|
||||
}
|
||||
|
||||
private void Hyperlink_Reaktivieren_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var customer = (CompactCustomerDC)((Hyperlink)sender).Tag;
|
||||
|
||||
if (MessageBox.Show(Translator.Translate("Wollen Sie den Klient '{0}' wirklich reaktivieren?", customer.FirstName + " " + customer.LastName), "Reaktivieren", MessageBoxButton.YesNo, MessageBoxImage.Exclamation) == MessageBoxResult.No)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
ServiceFacade.DoCustomerServiceAsync(s =>
|
||||
{
|
||||
s.ReactivateCustomer(customer.CustomerOid, customer.CustomerVersion);
|
||||
return customer;
|
||||
}, cb => cb.CustomerVersion++);
|
||||
return customer;
|
||||
}, cb => cb.CustomerVersion++);
|
||||
|
||||
Cache.GetInstance().ClearSupportConceptTree();
|
||||
|
||||
customer.ActivationType = ActivationTypeId.Active;
|
||||
customer.ActivationType = ActivationTypeId.Active;
|
||||
var context = mainNavigationView.objectListBox.DataContext;
|
||||
mainNavigationView.objectListBox.DataContext = null;
|
||||
mainNavigationView.objectListBox.DataContext = context;
|
||||
}
|
||||
|
||||
private void Hyperlink_AusArchivHolen_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var customer = (CompactCustomerDC) ((Hyperlink)sender).Tag;
|
||||
}
|
||||
|
||||
if (MessageBox.Show(Translator.Translate("Wollen Sie den Klient '{0}' wirklich aus dem Archiv holen?", customer.FirstName + " " + customer.LastName), "Reaktivieren", MessageBoxButton.YesNo, MessageBoxImage.Exclamation) == MessageBoxResult.No)
|
||||
{
|
||||
return;
|
||||
}
|
||||
private void Hyperlink_AusArchivHolen_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var customer = (CompactCustomerDC)((Hyperlink)sender).Tag;
|
||||
|
||||
ServiceFacade.DoCustomerServiceAsync(s =>
|
||||
{
|
||||
if (MessageBox.Show(Translator.Translate("Wollen Sie den Klient '{0}' wirklich aus dem Archiv holen?", customer.FirstName + " " + customer.LastName), "Reaktivieren", MessageBoxButton.YesNo, MessageBoxImage.Exclamation) == MessageBoxResult.No)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
ServiceFacade.DoCustomerServiceAsync(s =>
|
||||
{
|
||||
s.ReactivateCustomer(customer.CustomerOid, customer.CustomerVersion);
|
||||
return customer;
|
||||
}, cb => cb.CustomerVersion++);
|
||||
return customer;
|
||||
}, cb => cb.CustomerVersion++);
|
||||
|
||||
Cache.GetInstance().ClearSupportConceptTree();
|
||||
|
||||
customer.ActivationType = ActivationTypeId.Active;
|
||||
customer.ActivationType = ActivationTypeId.Active;
|
||||
var context = mainNavigationView.objectListBox.DataContext;
|
||||
mainNavigationView.objectListBox.DataContext = null;
|
||||
mainNavigationView.objectListBox.DataContext = context;
|
||||
}
|
||||
}
|
||||
|
||||
private void Hyperlink_Anonymize_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var customer = (CompactCustomerDC) ((Hyperlink) sender).Tag;
|
||||
private void Hyperlink_Anonymize_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var customer = (CompactCustomerDC)((Hyperlink)sender).Tag;
|
||||
|
||||
var dialog = new MessageDialog(() =>
|
||||
{
|
||||
this.Dispatch(() =>
|
||||
{
|
||||
ServiceFacade.DoOperationsServiceAsync(s =>
|
||||
{
|
||||
s.AnonymizeCustomer(customer.CustomerOid);
|
||||
}, () =>
|
||||
{
|
||||
ReloadData(true);
|
||||
});
|
||||
});
|
||||
});
|
||||
var dialog = new MessageDialog(() =>
|
||||
{
|
||||
this.Dispatch(() =>
|
||||
{
|
||||
ServiceFacade.DoOperationsServiceAsync(s =>
|
||||
{
|
||||
s.AnonymizeCustomer(customer.CustomerOid);
|
||||
}, () =>
|
||||
{
|
||||
ReloadData(true);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
ServiceFacade.DoOperationsServiceAsync(s => s.GetMessageFromServer(TableID.Customer, customer.CustomerOid, MessageType.Anonymization), xaml =>
|
||||
{
|
||||
this.Dispatch(() =>
|
||||
{
|
||||
dialog.SetXaml(xaml);
|
||||
dialog.ShowDialog();
|
||||
});
|
||||
});
|
||||
}
|
||||
ServiceFacade.DoOperationsServiceAsync(s => s.GetMessageFromServer(TableID.Customer, customer.CustomerOid, MessageType.Anonymization), xaml =>
|
||||
{
|
||||
this.Dispatch(() =>
|
||||
{
|
||||
dialog.SetXaml(xaml);
|
||||
dialog.ShowDialog();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
private void Hyperlink_Delete_For_Good_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var customer = (CompactCustomerDC) ((Hyperlink) sender).Tag;
|
||||
private void Hyperlink_Delete_For_Good_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var customer = (CompactCustomerDC)((Hyperlink)sender).Tag;
|
||||
|
||||
var dialog = new MessageDialog(() =>
|
||||
{
|
||||
this.Dispatch(() =>
|
||||
{
|
||||
ServiceFacade.DoOperationsServiceAsync(s =>
|
||||
{
|
||||
s.DeleteCustomerForGood(customer.CustomerOid);
|
||||
}, () => { ReloadData(true); });
|
||||
});
|
||||
});
|
||||
var dialog = new MessageDialog(() =>
|
||||
{
|
||||
this.Dispatch(() =>
|
||||
{
|
||||
ServiceFacade.DoOperationsServiceAsync(s =>
|
||||
{
|
||||
s.DeleteCustomerForGood(customer.CustomerOid);
|
||||
}, () => { ReloadData(true); });
|
||||
});
|
||||
});
|
||||
|
||||
ServiceFacade.DoOperationsServiceAsync(s => s.GetMessageFromServer(TableID.Customer, customer.CustomerOid, MessageType.DeleteForGood), xaml =>
|
||||
{
|
||||
this.Dispatch(() =>
|
||||
{
|
||||
dialog.SetXaml(xaml);
|
||||
dialog.ShowDialog();
|
||||
});
|
||||
});
|
||||
}
|
||||
ServiceFacade.DoOperationsServiceAsync(s => s.GetMessageFromServer(TableID.Customer, customer.CustomerOid, MessageType.DeleteForGood), xaml =>
|
||||
{
|
||||
this.Dispatch(() =>
|
||||
{
|
||||
dialog.SetXaml(xaml);
|
||||
dialog.ShowDialog();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
private void mainNavigationView_Print(object sender, EventArgs<IEnumerable<IFilterableDC>> e)
|
||||
{
|
||||
var oids = e.Data.Cast<CompactCustomerDC>().Select(c => c.CustomerOid).ToList();
|
||||
private void mainNavigationView_Print(object sender, EventArgs<IEnumerable<IFilterableDC>> e)
|
||||
{
|
||||
var oids = e.Data.Cast<CompactCustomerDC>().Select(c => c.CustomerOid).ToList();
|
||||
|
||||
ServiceFacade.DoReportServiceAsync(s => s.CreateCustomerListReport(oids), r =>
|
||||
{
|
||||
this.Dispatch(() =>
|
||||
{
|
||||
BeWoUtils.ShowReportWindow(r, Translator.Translate("Klienten"));
|
||||
});
|
||||
});
|
||||
}
|
||||
ServiceFacade.DoReportServiceAsync(s => s.CreateCustomerListReport(oids), r =>
|
||||
{
|
||||
this.Dispatch(() =>
|
||||
{
|
||||
BeWoUtils.ShowReportWindow(r, Translator.Translate("Klienten"));
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
private void MainNavigationView_OpenAiChat()
|
||||
{
|
||||
AiChatController.ShowAiChatViewForObjects(TableID.Customer, 800, 1200);
|
||||
}
|
||||
}
|
||||
private void MainNavigationView_OpenAiChat()
|
||||
{
|
||||
AiChatController.ShowAiChatViewForObjects(TableID.Customer, 800, 1200);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -28,18 +28,18 @@ namespace BeWo.View.Windows
|
||||
if (string.IsNullOrEmpty(title))
|
||||
title = "default";
|
||||
|
||||
var control = GetAiConversationControl(uIContext, context, height, width);
|
||||
var control = GetAiConversationControl(uIContext, context);
|
||||
|
||||
var window = GetAnimatedBeWoWindow(title, control, 400, height, 1000, 500, width, 1600);
|
||||
|
||||
return window;
|
||||
}
|
||||
|
||||
public UserControl GetAiConversationControl(UIContext uIContext, Dictionary<TableID, long[]> context, double height = 600, double width = 1200)
|
||||
public UserControl GetAiConversationControl(UIContext uIContext, Dictionary<TableID, long[]> context)
|
||||
{
|
||||
var control = new AiConversationChatView();
|
||||
|
||||
control.ViewModel.UIContext = (int)(UIContext.ServiceRecord);
|
||||
control.ViewModel.UIContext = (int)uIContext;
|
||||
control.ViewModel.ContextBeWoObjects = context;
|
||||
|
||||
return control;
|
||||
|
||||
@@ -227,6 +227,11 @@
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="AI\Core\AiMapperFactory.cs" />
|
||||
<Compile Include="AI\Core\BaseAiMapping.cs" />
|
||||
<Compile Include="AI\Mappings\CompactCustomerAiMapping.cs" />
|
||||
<Compile Include="AI\Mappings\CustomerAiMapping.cs" />
|
||||
<Compile Include="AI\Mappings\ServiceRecordAiMapping.cs" />
|
||||
<Compile Include="Core\DiamantExporter.cs" />
|
||||
<Compile Include="Core\ExcelDownload.cs" />
|
||||
<Compile Include="Core\FileAttachmentUtils.cs" />
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
using BeWo.Data.Entities;
|
||||
using BeWo.Service.DCEntityMapper;
|
||||
using BS.Shared;
|
||||
using BS.Shared.DataContracts;
|
||||
using BS.Shared.DataContracts.Compact;
|
||||
using DevExpress.PivotGrid.OLAP.Mdx;
|
||||
using DevExpress.XtraRichEdit.Commands;
|
||||
using Newtonsoft.Json;
|
||||
@@ -22,12 +24,13 @@ namespace BeWo.Service.ServiceUtils
|
||||
{
|
||||
var system_prompt = getSystemPrompt(2);
|
||||
|
||||
string data = string.Empty;
|
||||
Dictionary<string, object> data = null;
|
||||
switch (uicontext)
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
data = createCustomerNavigationContext(bewoobjects);
|
||||
break;
|
||||
case 2:
|
||||
break;
|
||||
@@ -71,18 +74,38 @@ namespace BeWo.Service.ServiceUtils
|
||||
throw new NotImplementedException("UI Context unknown");
|
||||
}
|
||||
|
||||
var result = system_prompt + data;
|
||||
var text = JsonConvert.SerializeObject(data);
|
||||
|
||||
var escape = HttpUtility.JavaScriptStringEncode(result);
|
||||
var result = system_prompt + text;
|
||||
|
||||
return escape;
|
||||
return result;
|
||||
}
|
||||
|
||||
private static string createServiceRecordContext(Dictionary<TableID, long[]> bewoobjects)
|
||||
private static Dictionary<string, object> createCustomerNavigationContext(Dictionary<TableID, long[]> bewoobjects)
|
||||
{
|
||||
if (bewoobjects is null || !bewoobjects.Any())
|
||||
return null;
|
||||
|
||||
var customers = new List<Dictionary<string,object>>();
|
||||
if (bewoobjects.TryGetValue(TableID.Customer, out long[] cvalues) && (cvalues?.Length ?? 0) > 0)
|
||||
{
|
||||
var customers_e = DAOFactory.GenericDAO.GetByIDs<Customer>(cvalues);
|
||||
var customers_dc = MapperFactory.CompactCustomerDC_Customer.MapToNewDCs(customers_e);
|
||||
customers = customers_dc.Select(getCustomer).ToList();
|
||||
}
|
||||
|
||||
var dict = new Dictionary<string, object>
|
||||
{
|
||||
{ "Aktuelle Ansicht", "Klienten Navigation" },
|
||||
{ "Klienten", customers }
|
||||
};
|
||||
|
||||
return dict;
|
||||
}
|
||||
private static Dictionary<string, object> createServiceRecordContext(Dictionary<TableID, long[]> bewoobjects)
|
||||
{
|
||||
if (bewoobjects is null || !bewoobjects.Any())
|
||||
return null;
|
||||
|
||||
var selected = new Dictionary<string, object>();
|
||||
if (bewoobjects.TryGetValue(TableID.Customer, out long[] cvalues) && (cvalues?.Length ?? 0) > 0)
|
||||
@@ -114,7 +137,23 @@ namespace BeWo.Service.ServiceUtils
|
||||
|
||||
foreach (var service_record in service_records_dc)
|
||||
{
|
||||
var record_dict = new Dictionary<string, object>
|
||||
records.Add(getServiceRecord(service_record));
|
||||
}
|
||||
}
|
||||
|
||||
var dict = new Dictionary<string, object>
|
||||
{
|
||||
{ "Aktuelle Ansicht", "Zeiterfassung" },
|
||||
{ "Selected", selected },
|
||||
{ "Zeiterfassungen", records }
|
||||
};
|
||||
|
||||
return dict;
|
||||
}
|
||||
|
||||
private static Dictionary<string, object> getServiceRecord(ServiceRecordDC service_record)
|
||||
{
|
||||
var record_dict = new Dictionary<string, object>
|
||||
{
|
||||
{ "StartDate", service_record.Start },
|
||||
{ "EndDate", service_record.End },
|
||||
@@ -132,20 +171,27 @@ namespace BeWo.Service.ServiceUtils
|
||||
{ "InsertUser", service_record.InsUser },
|
||||
{ "Employee", service_record.Employee }
|
||||
};
|
||||
records.Add(record_dict);
|
||||
}
|
||||
}
|
||||
|
||||
var dict = new Dictionary<string, object>
|
||||
{
|
||||
{ "Aktuelle Ansicht", "Zeiterfassung" },
|
||||
{ "Selected", selected },
|
||||
{ "Zeiterfassungen", records }
|
||||
};
|
||||
return record_dict;
|
||||
}
|
||||
private static Dictionary<string, object> getCustomer(CompactCustomerDC customer)
|
||||
{
|
||||
var record_dict = new Dictionary<string, object>
|
||||
{
|
||||
{"Address", customer.AddressString},
|
||||
{"Alias", customer.CustomerAlias},
|
||||
{"CustomerOid", customer.CustomerOid},
|
||||
{"DateOfBirth", customer.DateOfBirthString},
|
||||
{"EqutyContribution", customer.EquityContribution},
|
||||
{"Fullname", customer.FullName},
|
||||
{"InvoiceAddress", customer.InvoiceAddressString}
|
||||
};
|
||||
|
||||
var json = JsonConvert.SerializeObject(dict);
|
||||
|
||||
return json;
|
||||
return record_dict;
|
||||
}
|
||||
private static Dictionary<string, object> getEmployee(CompactEmployeeDC compactEmployee)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
private static string getSystemPrompt(int i)
|
||||
|
||||
36
Service/ai/Core/AiMapperFactory.cs
Normal file
36
Service/ai/Core/AiMapperFactory.cs
Normal file
@@ -0,0 +1,36 @@
|
||||
using BeWo.Data.Entities;
|
||||
using BeWo.Service.AI.Mappings;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BeWo.Service.AI.Core
|
||||
{
|
||||
internal class AiMapperFactory
|
||||
{
|
||||
private readonly Dictionary<Type, object> _Mappers;
|
||||
|
||||
public AiMapperFactory()
|
||||
{
|
||||
_Mappers = new Dictionary<Type, object>()
|
||||
{
|
||||
{typeof(CompactCustomerAiMapping), new Lazy<CompactCustomerAiMapping>(() => new CompactCustomerAiMapping()) },
|
||||
{typeof(CustomerAiMapping), new Lazy<CustomerAiMapping>(() => new CustomerAiMapping()) },
|
||||
{typeof(ServiceRecordAiMapping), new Lazy<ServiceRecordAiMapping>(() => new ServiceRecordAiMapping()) },
|
||||
};
|
||||
}
|
||||
|
||||
public T GetMapper<T>() where T : class
|
||||
{
|
||||
if (_Mappers.TryGetValue(typeof(T), out var lazy))
|
||||
{
|
||||
return (lazy as Lazy<T>)?.Value;
|
||||
}
|
||||
|
||||
throw new InvalidOperationException($"No mapper registered for type {typeof(T).Name}");
|
||||
}
|
||||
}
|
||||
}
|
||||
24
Service/ai/Core/BaseAiMapping.cs
Normal file
24
Service/ai/Core/BaseAiMapping.cs
Normal file
@@ -0,0 +1,24 @@
|
||||
using BS.Shared.DataContracts;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BeWo.Service.AI.Core
|
||||
{
|
||||
internal abstract class BaseAiMapping<TDataContract> where TDataContract : IDataContract
|
||||
{
|
||||
public string ToJson(TDataContract dataContract)
|
||||
{
|
||||
var json_dict = ToJsonDictionary(dataContract);
|
||||
|
||||
var json = JsonConvert.SerializeObject(json_dict);
|
||||
|
||||
return json;
|
||||
}
|
||||
|
||||
public abstract Dictionary<string, object> ToJsonDictionary(TDataContract dataContract);
|
||||
}
|
||||
}
|
||||
18
Service/ai/Mappings/CompactCustomerAiMapping.cs
Normal file
18
Service/ai/Mappings/CompactCustomerAiMapping.cs
Normal file
@@ -0,0 +1,18 @@
|
||||
using BeWo.Service.AI.Core;
|
||||
using BS.Shared.DataContracts;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BeWo.Service.AI.Mappings
|
||||
{
|
||||
internal class CompactCustomerAiMapping : BaseAiMapping<CustomerDC>
|
||||
{
|
||||
public override Dictionary<string, object> ToJsonDictionary(CustomerDC customer)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
||||
18
Service/ai/Mappings/CustomerAiMapping.cs
Normal file
18
Service/ai/Mappings/CustomerAiMapping.cs
Normal file
@@ -0,0 +1,18 @@
|
||||
using BeWo.Service.AI.Core;
|
||||
using BS.Shared.DataContracts;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BeWo.Service.AI.Mappings
|
||||
{
|
||||
internal class CustomerAiMapping : BaseAiMapping<CustomerDC>
|
||||
{
|
||||
public override Dictionary<string, object> ToJsonDictionary(CustomerDC customer)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
||||
18
Service/ai/Mappings/ServiceRecordAiMapping.cs
Normal file
18
Service/ai/Mappings/ServiceRecordAiMapping.cs
Normal file
@@ -0,0 +1,18 @@
|
||||
using BeWo.Service.AI.Core;
|
||||
using BS.Shared.DataContracts;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BeWo.Service.AI.Mappings
|
||||
{
|
||||
internal class ServiceRecordAiMapping : BaseAiMapping<ServiceRecordDC>
|
||||
{
|
||||
public override Dictionary<string, object> ToJsonDictionary(ServiceRecordDC dataContract)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user