feat: expand cockpit integrations and support workflows

Add Phoenix remote desktop, action connector, documentation engine, and gamification support. Refactor support-case processing and search/action UI, and update installer assets and dependencies.
This commit is contained in:
Meik
2026-07-13 11:16:53 +02:00
parent bbedbf71c8
commit 0b52999b1d
303 changed files with 11235 additions and 3580 deletions

View File

@@ -15,18 +15,18 @@ namespace FasdDesktopUi.Basics.UserControls
public event EventHandler<EventArgs> OnPauseStarted;
private static List<DateTime> startTimes = new List<DateTime>();
private static List<DateTime> endTimes = new List<DateTime>();
private static List<DateTime> pausedTimesStart = new List<DateTime>();
private static List<DateTime> pausedTimesEnd = new List<DateTime>();
private static readonly List<DateTime> _startTimes = new List<DateTime>();
private static readonly List<DateTime> _endTimes = new List<DateTime>();
private static readonly List<DateTime> _pausedTimesStart = new List<DateTime>();
private static readonly List<DateTime> _pausedTimesEnd = new List<DateTime>();
public static List<cF4SDCaseTime> caseTimes = new List<cF4SDCaseTime>();
private static Dictionary<string, object> finalWorkingTimes = new Dictionary<string, object>();
public static List<cF4SDCaseTime> CaseTimes = new List<cF4SDCaseTime>();
private static Dictionary<string, object> _finalWorkingTimes = new Dictionary<string, object>();
private static DispatcherTimer timer;
private static TimeSpan elapsedTime;
private static TimeSpan totalPausedTime = TimeSpan.Zero;
private static TimeSpan pauseDuration;
private static DispatcherTimer _timer;
private static TimeSpan _elapsedTime;
private static TimeSpan _totalPausedTime = TimeSpan.Zero;
private static TimeSpan _pauseDuration;
#endregion
@@ -39,13 +39,13 @@ namespace FasdDesktopUi.Basics.UserControls
public static void ResetTimer()
{
startTimes.Clear();
endTimes.Clear();
pausedTimesEnd.Clear();
pausedTimesStart.Clear();
finalWorkingTimes.Clear();
elapsedTime = TimeSpan.Zero;
caseTimes.Clear();
_startTimes.Clear();
_endTimes.Clear();
_pausedTimesEnd.Clear();
_pausedTimesStart.Clear();
_finalWorkingTimes.Clear();
_elapsedTime = TimeSpan.Zero;
CaseTimes.Clear();
StartTimer();
}
@@ -54,8 +54,8 @@ namespace FasdDesktopUi.Basics.UserControls
{
try
{
startTimes?.Add(DateTime.UtcNow);
timer?.Start();
_startTimes?.Add(DateTime.UtcNow);
_timer?.Start();
}
catch (Exception E)
{
@@ -67,8 +67,8 @@ namespace FasdDesktopUi.Basics.UserControls
{
try
{
endTimes?.Add(DateTime.UtcNow);
timer?.Stop();
_endTimes?.Add(DateTime.UtcNow);
_timer?.Stop();
UpdateTimerControl();
}
catch (Exception E)
@@ -83,7 +83,7 @@ namespace FasdDesktopUi.Basics.UserControls
{
ResetTimer();
timer = new DispatcherTimer(TimeSpan.FromSeconds(1.0), DispatcherPriority.Loaded, new EventHandler((s, args) =>
_timer = new DispatcherTimer(TimeSpan.FromSeconds(1.0), DispatcherPriority.Loaded, new EventHandler((s, args) =>
{
try { UpdateTimerControl(); }
catch { }
@@ -100,8 +100,8 @@ namespace FasdDesktopUi.Basics.UserControls
{
try
{
TimerControl.Text = elapsedTime.ToString(@"hh\:mm\:ss");
elapsedTime = elapsedTime.Add(TimeSpan.FromSeconds(1.0));
TimerControl.Text = _elapsedTime.ToString(@"hh\:mm\:ss");
_elapsedTime = _elapsedTime.Add(TimeSpan.FromSeconds(1.0));
}
catch (Exception E)
{
@@ -113,44 +113,44 @@ namespace FasdDesktopUi.Basics.UserControls
{
try
{
var currentDate = DateTime.Now.Date.ToString("d");
var startDateTime = startTimes.First();
var currentDate = DateTime.UtcNow.Date.ToString("d");
var startDateTime = _startTimes.First();
var endDateTime = DateTime.UtcNow;
var bruttoWorkingTime = TimeSpan.Zero;
var nettoWorkingTime = TimeSpan.Zero;
if (pausedTimesStart.Count == 0)
if (_pausedTimesStart.Count == 0)
{
totalPausedTime = TimeSpan.Zero;
_totalPausedTime = TimeSpan.Zero;
}
if (pausedTimesEnd.Count > 0)
if (_pausedTimesEnd.Count > 0)
{
totalPausedTime = TimeSpan.Zero;
_totalPausedTime = TimeSpan.Zero;
for (int i = 0; i < pausedTimesStart.Count; i++)
for (int i = 0; i < _pausedTimesStart.Count; i++)
{
var start = pausedTimesStart[i];
var end = pausedTimesEnd[i];
var start = _pausedTimesStart[i];
var end = _pausedTimesEnd[i];
pauseDuration = end - start;
_pauseDuration = end - start;
totalPausedTime += pauseDuration;
_totalPausedTime += _pauseDuration;
}
}
bruttoWorkingTime = endDateTime - startDateTime;
nettoWorkingTime = bruttoWorkingTime - totalPausedTime;
nettoWorkingTime = bruttoWorkingTime - _totalPausedTime;
finalWorkingTimes = new Dictionary<string, object>()
_finalWorkingTimes = new Dictionary<string, object>()
{
{"CurrentDate", currentDate},
{"StartTime", startTimes.First()},
{"StartTime", _startTimes.First()},
{"EndTime", endDateTime },
{"BruttoWorkingTime", bruttoWorkingTime },
{"NettoWorkingTime", nettoWorkingTime.TotalSeconds },
{"TotalPausedTime", totalPausedTime }
{"TotalPausedTime", _totalPausedTime }
};
}
catch (Exception E)
@@ -158,7 +158,7 @@ namespace FasdDesktopUi.Basics.UserControls
LogException(E);
}
return finalWorkingTimes;
return _finalWorkingTimes;
}
#endregion
@@ -169,13 +169,13 @@ namespace FasdDesktopUi.Basics.UserControls
{
try
{
if (timer?.IsEnabled == true)
if (_timer?.IsEnabled == true)
return;
timer?.Start();
pausedTimesEnd?.Add(DateTime.UtcNow);
_timer?.Start();
_pausedTimesEnd?.Add(DateTime.UtcNow);
caseTimes.Add(new cF4SDCaseTime()
CaseTimes.Add(new cF4SDCaseTime()
{
StatusId = CaseStatus.InProgress,
CaseTime = DateTime.UtcNow
@@ -191,10 +191,10 @@ namespace FasdDesktopUi.Basics.UserControls
{
try
{
timer?.Stop();
pausedTimesStart?.Add(DateTime.UtcNow);
_timer?.Stop();
_pausedTimesStart?.Add(DateTime.UtcNow);
caseTimes.Add(new cF4SDCaseTime()
CaseTimes.Add(new cF4SDCaseTime()
{
StatusId = CaseStatus.OnHold,
CaseTime = DateTime.UtcNow
@@ -209,17 +209,9 @@ namespace FasdDesktopUi.Basics.UserControls
}
}
private void Border_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
PauseButton_Click();
}
private void Border_Click(object sender, InputEventArgs e)
=> PauseButton_Click();
#endregion
private void Border_TouchDown(object sender, TouchEventArgs e)
{
PauseButton_Click();
}
}
}