aktueller stand

This commit is contained in:
Meik
2025-11-13 17:35:09 +01:00
parent 5856ff4df8
commit 567584faf0
32 changed files with 1253 additions and 1762 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -229,7 +229,10 @@ namespace FasdDesktopUi.Basics.Models
{
Dispatcher.CurrentDispatcher.Invoke(() => splashScreen?.SetStatusText(cMultiLanguageSupport.GetItem("StartUp.SplashScreen.AuthenticateUser")));
ApiConnectionStatus = enumOnlineStatus.unauthorized;
const string cockpitUserRole = "Cockpit.User";
const string cockpitUserRole = "Cockpit.User";
#if isNewFeature
const string cockpitTicketAgentRole = "Cockpit.TicketAgent";
#endif
userInfo = await cFasdCockpitCommunicationBase.Instance.WinLogon();
lock (cFasdCockpitCommunicationBase.CockpitUserInfoLock)
{
@@ -244,6 +247,10 @@ namespace FasdDesktopUi.Basics.Models
{
await Task.Run(async () => await cFasdCockpitConfig.Instance.InstantiateAnalyticsAsync(cFasdCockpitConfig.SessionId));
ApiConnectionStatus = enumOnlineStatus.online;
#if isNewFeature
if (userInfo.Roles.Contains(cockpitTicketAgentRole))
cCockpitConfiguration.Instance.ticketSupport.EditTicket = true;
#endif
}
}
}

View File

@@ -22,6 +22,9 @@ namespace FasdDesktopUi.Basics.Models
[JsonConverter(typeof(StringEnumConverter))]
public enumHighlightColor? HighlightColor { get; set; }
[JsonIgnore]
public enumHistoryTitleType? PresentationStyle { get; set; } = enumHistoryTitleType.none;
[JsonIgnore]
public cUiActionBase UiAction { get; set; }

View File

@@ -35,8 +35,7 @@ namespace FasdDesktopUi.Basics.Services.ProtocollService
quickActionCopyData.Name = quickActionDefinition.Names.GetValue();
quickActionCopyData.ExecutionTime = DateTime.UtcNow;
if (dataProvider.HealthCardDataHelper.HeadingData.TryGetValue(enumFasdInformationClass.Computer, out var computerHeadingData))
quickActionCopyData.AffectedDeviceName = computerHeadingData.HeadingText;
quickActionCopyData.AffectedDeviceName = dataProvider.HealthCardDataHelper.GetInformationObjectHeadingName(enumFasdInformationClass.Computer);
quickActionCopyData.WasRunningOnAffectedDevice = wasRunningOnAffectedDevice;
quickActionCopyData.QuickActionOutput = quickActionOutput;

View File

@@ -432,7 +432,7 @@ namespace FasdDesktopUi.Basics
{
try
{
var couldGetHealthCard = HealthCardDataHelper.TryGetHealthcard(requiredInformationClasses);
var couldGetHealthCard = HealthCardDataHelper.TrySetSelectedHealthcard(requiredInformationClasses);
if (!couldGetHealthCard)
{
@@ -452,7 +452,7 @@ namespace FasdDesktopUi.Basics
}
}
var isOk = await HealthCardDataHelper.GetHealthCardRawDataAsync(new cF4sdHealthCardRawDataRequest()
var isOk = await HealthCardDataHelper.LoadingHelper.GetHealthCardRawDataAsync(new cF4sdHealthCardRawDataRequest()
{
Identities = Identities,
Tables = requiredTables.ToList(),
@@ -460,7 +460,7 @@ namespace FasdDesktopUi.Basics
});
if (isNewCase)
HealthCardDataHelper.LastDataRequest = DateTime.Now;
HealthCardDataHelper.LoadingHelper.LastDataRequest = DateTime.Now;
if (isOk == false)
{

View File

@@ -39,7 +39,7 @@ namespace FasdDesktopUi.Basics.UiActions
return null;
if (cF4SDCustomDialogConfig.Instance.CustomDialogContainers.TryGetValue(name, out var containerConfig))
output = dataProvider.HealthCardDataHelper.GetContainerDataFromConfig(containerConfig);
output = dataProvider.HealthCardDataHelper.CustomizableSectionHelper.GetContainerDataFromConfig(containerConfig);
}
catch (Exception E)
{

View File

@@ -55,7 +55,7 @@ namespace FasdDesktopUi.Basics.UiActions
return false;
DataProvider = dataProvider;
DataProvider.HealthCardDataHelper.DataRefreshed += (s, e) => CachedDetails.Clear();
DataProvider.HealthCardDataHelper.LoadingHelper.DataRefreshed += (s, e) => CachedDetails.Clear();
Mouse.OverrideCursor = Cursors.Wait;

View File

@@ -204,7 +204,7 @@
DropDownClosed="ComboBoxControl_DropDownClosed"
Background="{Binding ElementName=ComboBoxPagableUc, Path=ComboBoxBackground}"
BorderBrush="{Binding ElementName=ComboBoxPagableUc, Path=BorderBrush}"
BorderThickness="0"
BorderThickness="{Binding ElementName=ComboBoxPagableUc, Path=BorderThickness}"
ItemsSource="{Binding ElementName=ComboBoxPagableUc, Path=ItemData}"
SelectedItem="{Binding RelativeSource={RelativeSource AncestorType={x:Type local:ComboBoxPageable}}, Path=SelectedItem, Mode=TwoWay}"
DisplayMemberPath="Key"

View File

@@ -33,8 +33,8 @@ namespace FasdDesktopUi.Basics.UserControls
if (DataCanvasData.GetDetailedDataAsync != null)
{
if (dataProvider != null)
dataProvider.HealthCardDataHelper.DataRefreshed -= HealthCardDataHelper_DataRefreshed;
value.HealthCardDataHelper.DataRefreshed += HealthCardDataHelper_DataRefreshed;
dataProvider.HealthCardDataHelper.LoadingHelper.DataRefreshed -= HealthCardDataHelper_DataRefreshed;
value.HealthCardDataHelper.LoadingHelper.DataRefreshed += HealthCardDataHelper_DataRefreshed;
}
dataProvider = value;
@@ -57,10 +57,10 @@ namespace FasdDesktopUi.Basics.UserControls
if (_me.dataProvider != null)
{
if (oldData.GetDetailedDataAsync != null)
_me.dataProvider.HealthCardDataHelper.DataRefreshed -= _me.HealthCardDataHelper_DataRefreshed;
_me.dataProvider.HealthCardDataHelper.LoadingHelper.DataRefreshed -= _me.HealthCardDataHelper_DataRefreshed;
if (newData.GetDetailedDataAsync != null)
_me.dataProvider.HealthCardDataHelper.DataRefreshed += _me.HealthCardDataHelper_DataRefreshed;
_me.dataProvider.HealthCardDataHelper.LoadingHelper.DataRefreshed += _me.HealthCardDataHelper_DataRefreshed;
}
_me.QuickActionStatusUc.CancelQuickAction();

View File

@@ -181,7 +181,8 @@
<Grid>
<ComboBox x:Name="ComboBoxControl"
Background="{Binding ElementName=HierarchySelector, Path=ComboBoxBackground}"
BorderBrush="{Binding ElementName=HierarchySelector, Path=BorderBrush}"
BorderBrush="Transparent"
BorderThickness="0"
Foreground="{DynamicResource FontColor.Menu.Categories}"
ItemsSource="{Binding VisibleItems, ElementName=HierarchySelector}"
DisplayMemberPath="FullPath"

View File

@@ -5,7 +5,6 @@ using FasdDesktopUi.Basics.CustomEvents;
using FasdDesktopUi.Basics.Models;
using FasdDesktopUi.Basics.UserControls.AdaptableIcon;
using FasdDesktopUi.Pages.AdvancedSearchPage;
using Microsoft.Internal.VisualStudio.PlatformUI;
using System;
using System.Collections.Generic;
using System.Linq;

View File

@@ -181,6 +181,7 @@
SelectedItem="{Binding SelectedCategory, ElementName=CloseCaseDialogUc, Mode=TwoWay}"
ComboBoxBackground="{DynamicResource BackgroundColor.DetailsPage.DataHistory.ValueColumn}"
BorderBrush="Transparent"
BorderThickness="0"
SearchPlaceholderText="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Searchbar.Placeholder}"
DropDownOpened="DropDownOpened"
DropDownClosed="DropDownClosed"

View File

@@ -25,7 +25,8 @@
<local:ComboBoxPageable x:Name="RoleSelectionControl"
SelectedItem="{Binding ElementName=ForwardTicketDialogUc, Path=SelectedRole, Mode=TwoWay}"
ComboBoxBackground="{DynamicResource BackgroundColor.DetailsPage.DataHistory.ValueColumn}"
BorderBrush="Transparent" />
BorderBrush="Transparent"
BorderThickness="0" />
</Border>
<TextBlock Text="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Dialog.CloseCase.ForwardTicket.ResponsiblePerson}"
@@ -38,7 +39,8 @@
<local:ComboBoxPageable x:Name="PersonSelectionControl"
SelectedItem="{Binding ElementName=ForwardTicketDialogUc, Path=SelectedPerson, Mode=TwoWay}"
ComboBoxBackground="{DynamicResource BackgroundColor.DetailsPage.DataHistory.ValueColumn}"
BorderBrush="Transparent" />
BorderBrush="Transparent"
BorderThickness="0" />
</Border>
<TextBlock Text="{Binding Converter={StaticResource LanguageConverter}, ConverterParameter=Dialog.CloseCase.ForwardTicket.Comment}"

View File

@@ -386,221 +386,6 @@ namespace FasdDesktopUi.Basics
return false;
}
#region Ascii
public static string GetQuickActionAsciiString(cQuickActionCopyData copyData, cFasdQuickAction quickActionDefinition)
{
string output = string.Empty;
try
{
output += GetQuickActionAsciiDescriptionString(copyData.Name, copyData.AffectedDeviceName, copyData.WasRunningOnAffectedDevice, copyData.ExecutionTime, copyData.QuickActionOutput?.ResultCode);
output += GetQuickActionAsciiErrorString(copyData.QuickActionOutput?.ErrorDescription);
output += GetQuickActionAsciiOutputString(copyData.QuickActionOutput, quickActionDefinition);
output += GetQuickActionAsciiValueComparisonString(copyData.MeasureValues);
}
catch (Exception E)
{
LogException(E);
}
return output;
}
private static string GetQuickActionAsciiDescriptionString(string quickActionName, string deviceName, bool wasRunningOnAffectedDevice, DateTime executionTime, enumQuickActionSuccess? quickActionStatus)
{
string output = string.Empty;
try
{
var quickActionStatusString = string.Empty;
switch (quickActionStatus)
{
case null:
case enumQuickActionSuccess.successfull:
quickActionStatusString = cMultiLanguageSupport.GetItem("QuickAction.Copy.RevisionStatus.Successfull");
break;
case enumQuickActionSuccess.error:
quickActionStatusString = cMultiLanguageSupport.GetItem("QuickAction.Copy.RevisionStatus.Error");
break;
}
var rawDescription = wasRunningOnAffectedDevice ? cMultiLanguageSupport.GetItem("QuickAction.Remote.Copy.Description") : cMultiLanguageSupport.GetItem("QuickAction.Local.Copy.Description");
output = string.Format(rawDescription, quickActionName, deviceName, executionTime.ToString("g", new CultureInfo(cFasdCockpitConfig.Instance.SelectedLanguage)), quickActionStatusString);
}
catch (Exception E)
{
LogException(E);
}
return output;
}
private static string GetQuickActionAsciiErrorString(string errorMessage)
{
string output = string.Empty;
try
{
if (!string.IsNullOrWhiteSpace(errorMessage))
output = "\n\n" + errorMessage;
}
catch (Exception E)
{
LogException(E);
}
return output;
}
private static string GetQuickActionAsciiOutputString(QuickActionStatusMonitor.cQuickActionOutput quickActionOutput, cFasdQuickAction quickActionDefinition)
{
string output = string.Empty;
try
{
if (!string.IsNullOrWhiteSpace(quickActionOutput?.ErrorDescription))
return output;
switch (quickActionOutput)
{
case QuickActionStatusMonitor.cQuickActionOutputSingle singleOutput:
{
if (singleOutput.Value is null)
return output;
output += "\n\n";
output += cMultiLanguageSupport.GetItem("QuickAction.Copy.Output") + " ";
output += singleOutput.GetDisplayValue(quickActionDefinition.ColumnOutputFormattings);
break;
}
case QuickActionStatusMonitor.cQuickActionOutputList listOutput:
{
output += "\n\n";
output += cMultiLanguageSupport.GetItem("QuickAction.Copy.Output") + "\n";
foreach (var value in listOutput.Values[0])
{
if (ShouldHideQuickActionOutput(value.Key, quickActionDefinition))
continue;
if (quickActionDefinition.ColumnOutputFormattings?.TryGetValue(value.Key, out var outputFormatting) ?? false)
output += outputFormatting.Names.GetValue();
else
output += value.Key;
output += " | ";
}
for (int i = 0; i < listOutput.Values.Count; i++)
{
output += "\n";
for (int j = 0; j < listOutput.Values[i].Count; j++)
{
string valueKey = listOutput.Values[0][j].Key;
if (ShouldHideQuickActionOutput(valueKey, quickActionDefinition))
continue;
string displayValue = listOutput.GetDisplayValue(i, j, quickActionDefinition.ColumnOutputFormattings);
if (string.IsNullOrWhiteSpace(displayValue))
continue;
output += displayValue;
output += " | ";
}
}
break;
}
case QuickActionStatusMonitor.cQuickActionOutputObject objectOutput:
{
output += "\n\n";
output += cMultiLanguageSupport.GetItem("QuickAction.Copy.Output") + "\n";
for (int i = 0; i < objectOutput.Values.Count; i++)
{
var value = objectOutput.Values[i];
if (ShouldHideQuickActionOutput(value.Key, quickActionDefinition))
continue;
string columnTitle = string.Empty;
if (quickActionDefinition.ColumnOutputFormattings?.TryGetValue(value.Key, out var outputFormatting) ?? false)
columnTitle = outputFormatting.Names.GetValue();
else
columnTitle = value.Key;
if (!string.IsNullOrEmpty(columnTitle))
output += $"{columnTitle}: ";
string displayValue = objectOutput.GetDisplayValue(i, quickActionDefinition.ColumnOutputFormattings);
output += !string.IsNullOrWhiteSpace(displayValue) ? displayValue : null;
output += "\n";
}
break;
}
}
}
catch (Exception E)
{
LogException(E);
}
return output;
}
private static string GetQuickActionAsciiValueComparisonString(List<QuickActionStatusMonitor.cQuickActionMeasureValue> measureValues)
{
string output = string.Empty;
try
{
if (measureValues is null || measureValues.Count <= 0)
return output;
output += "\n\n" + cMultiLanguageSupport.GetItem("QuickAction.Copy.Measure");
RawValueFormatter.SetDefaultCulture(new System.Globalization.CultureInfo(cFasdCockpitConfig.Instance.SelectedLanguage));
foreach (var measureValue in measureValues)
{
try
{
string value = RawValueFormatter.GetDisplayValue(measureValue.Value, measureValue.Display);
string postValue = RawValueFormatter.GetDisplayValue(measureValue.PostValue, measureValue.Display);
string difference = string.Empty;
if (measureValue.Difference != null)
difference = $" (∆ {RawValueFormatter.GetDisplayValue(measureValue.Difference, measureValue.Display)})";
output += "\n" + measureValue.Names.GetValue(cF4SDCockpitXmlConfig.Instance.HealthCardConfig.ProtocollLanguage) + ": " + value + " ➜ " + postValue + difference;
}
catch (Exception E)
{
LogException(E);
}
}
}
catch (Exception E)
{
LogException(E);
}
return output;
}
#endregion
#region Html
public static string GetHtmlFrame(string Content)
{
var strLen1 = (Content.Length + 142).ToString("D10");
@@ -618,229 +403,6 @@ namespace FasdDesktopUi.Basics
return RetVal;
}
public static string GetQuickActionHtmlString(cQuickActionCopyData copyData, cFasdQuickAction quickActionDefinition)
{
string output = string.Empty;
try
{
output += GetQuickActionHtmlDescriptionString(copyData.Name, copyData.AffectedDeviceName, copyData.WasRunningOnAffectedDevice, copyData.ExecutionTime, copyData.QuickActionOutput?.ResultCode);
output += GetQuickActionHtmlErrorString(copyData.QuickActionOutput?.ErrorDescription);
output += GetQuickActionHtmlOutputString(copyData.QuickActionOutput, quickActionDefinition);
output += GetQuickActionHtmlValueComparisonString(copyData.MeasureValues);
}
catch (Exception E)
{
LogException(E);
}
return output;
}
private static string GetQuickActionHtmlDescriptionString(string quickActionName, string deviceName, bool wasRunningOnAffectedDevice, DateTime executionTime, enumQuickActionSuccess? quickActionStatus)
{
string output = string.Empty;
try
{
var quickActionStatusString = string.Empty;
switch (quickActionStatus)
{
case null:
case enumQuickActionSuccess.successfull:
quickActionStatusString = cMultiLanguageSupport.GetItem("QuickAction.Copy.RevisionStatus.Successfull");
break;
case enumQuickActionSuccess.error:
quickActionStatusString = cMultiLanguageSupport.GetItem("QuickAction.Copy.RevisionStatus.Error");
break;
}
var rawDescription = wasRunningOnAffectedDevice ? cMultiLanguageSupport.GetItem("QuickAction.Remote.Copy.Description.Html") : cMultiLanguageSupport.GetItem("QuickAction.Local.Copy.Description.Html");
output = string.Format(rawDescription, quickActionName, deviceName, executionTime.ToString("g", new CultureInfo(cFasdCockpitConfig.Instance.SelectedLanguage)), quickActionStatusString);
}
catch (Exception E)
{
LogException(E);
}
return output;
}
private static string GetQuickActionHtmlErrorString(string errorMessage)
{
string output = string.Empty;
try
{
if (!string.IsNullOrWhiteSpace(errorMessage))
output = "<br/><p style=\"color:red\">" + errorMessage + "</p>";
}
catch (Exception E)
{
LogException(E);
}
return output;
}
public static string GetQuickActionHtmlOutputString(QuickActionStatusMonitor.cQuickActionOutput quickActionOutput, cFasdQuickAction quickActionDefinition)
{
string output = string.Empty;
try
{
if (!string.IsNullOrWhiteSpace(quickActionOutput?.ErrorDescription))
return output;
output += "<br/>";
switch (quickActionOutput)
{
case QuickActionStatusMonitor.cQuickActionOutputSingle singleOutput:
{
if (singleOutput.Value is null)
return output;
var displayValue = singleOutput.GetDisplayValue(quickActionDefinition?.ColumnOutputFormattings);
output += "<p>" + cMultiLanguageSupport.GetItem("QuickAction.Copy.Output.Html") + " " + displayValue + "</p>";
break;
}
case QuickActionStatusMonitor.cQuickActionOutputList listOutput:
{
output += "<p>" + cMultiLanguageSupport.GetItem("QuickAction.Copy.Output.Html") + "</p>";
output += "<table border=\"1\">";
output += "<tr>";
foreach (var value in listOutput.Values[0])
{
if (ShouldHideQuickActionOutput(value.Key, quickActionDefinition))
continue;
string headingValue = value.Key;
if (quickActionDefinition.ColumnOutputFormattings?.TryGetValue(value.Key, out var outputFormatting) ?? false)
headingValue = outputFormatting.Names.GetValue();
output += "<th align=\"left\">";
output += headingValue;
output += "</th>";
}
output += "</tr>";
for (int i = 0; i < listOutput.Values.Count; i++)
{
output += "<tr>";
for (int j = 0; j < listOutput.Values[i].Count; j++)
{
string valueKey = listOutput.Values[0][j].Key;
if (ShouldHideQuickActionOutput(valueKey, quickActionDefinition))
continue;
string displayValue = listOutput.GetDisplayValue(i, j, quickActionDefinition.ColumnOutputFormattings);
if (string.IsNullOrWhiteSpace(displayValue))
continue;
output += "<td>";
output += displayValue;
output += "</td>";
}
output += "</tr>";
}
output += "</table>";
break;
}
case QuickActionStatusMonitor.cQuickActionOutputObject objectOutput:
{
output += "<p>" + cMultiLanguageSupport.GetItem("QuickAction.Copy.Output.Html") + "</p>";
output += "<table border=\"1\">";
for (int i = 0; i < objectOutput.Values.Count; i++)
{
var value = objectOutput.Values[i];
if (ShouldHideQuickActionOutput(value.Key, quickActionDefinition))
continue;
string headingValue = value.Key;
if (quickActionDefinition.ColumnOutputFormattings?.TryGetValue(value.Key, out var outputFormatting) ?? false)
headingValue = outputFormatting.Names.GetValue();
output += "<tr>";
output += "<td>";
output += headingValue;
output += "</td>";
output += "<td>";
string displayValue = objectOutput.GetDisplayValue(i, quickActionDefinition.ColumnOutputFormattings);
output += !string.IsNullOrWhiteSpace(displayValue) ? displayValue : null;
output += "</td>";
output += "</tr>";
}
output += "</table>";
break;
}
}
}
catch (Exception E)
{
LogException(E);
}
return output;
}
public static string GetQuickActionHtmlValueComparisonString(List<QuickActionStatusMonitor.cQuickActionMeasureValue> measureValues)
{
string output = string.Empty;
try
{
if (measureValues is null || measureValues.Count <= 0)
return output;
output += "<p>" + cMultiLanguageSupport.GetItem("QuickAction.Copy.Measure.Html") + "</p>";
RawValueFormatter.SetDefaultCulture(new System.Globalization.CultureInfo(cFasdCockpitConfig.Instance.SelectedLanguage));
foreach (var measureValue in measureValues)
{
try
{
string value = RawValueFormatter.GetDisplayValue(measureValue.Value, measureValue.Display);
string postValue = RawValueFormatter.GetDisplayValue(measureValue.PostValue, measureValue.Display);
string difference = string.Empty;
if (measureValue.Difference != null)
difference = $" (∆ {RawValueFormatter.GetDisplayValue(measureValue.Difference, measureValue.Display)})";
output += "<p>";
output += "<b>" + measureValue.Names.GetValue(cF4SDCockpitXmlConfig.Instance.HealthCardConfig.ProtocollLanguage) + ": </b>" + value + " ➜ " + postValue + difference;
output += "</p>";
}
catch (Exception E)
{
LogException(E);
}
}
}
catch (Exception E)
{
LogException(E);
}
return output;
}
#endregion
#endregion
#region ToolTipHandling