Подправил чуть-чуть дезигн. Наврное, надо уже другое релизовывать.
This commit is contained in:
parent
74f1fda7c7
commit
af01b18e80
14
EmployeeManagmentDataModels/Enums/GenderType.cs
Normal file
14
EmployeeManagmentDataModels/Enums/GenderType.cs
Normal file
@ -0,0 +1,14 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace EmployeeManagmentDataModels.Enums
|
||||
{
|
||||
public enum GenderType
|
||||
{
|
||||
Мужчина,
|
||||
Женщина
|
||||
}
|
||||
}
|
@ -9,10 +9,10 @@
|
||||
<ControlTemplate TargetType="Button">
|
||||
<Grid>
|
||||
<Border Background="{TemplateBinding Background}"
|
||||
CornerRadius="15"
|
||||
BorderBrush="Transparent"
|
||||
BorderThickness="0"
|
||||
x:Name="ButtonBorder">
|
||||
CornerRadius="15"
|
||||
BorderBrush="Transparent"
|
||||
BorderThickness="0"
|
||||
x:Name="ButtonBorder">
|
||||
<Border.Effect>
|
||||
<DropShadowEffect Color="Black" BlurRadius="10" ShadowDepth="2" Opacity="0.4" />
|
||||
</Border.Effect>
|
||||
@ -24,14 +24,13 @@
|
||||
</Grid>
|
||||
|
||||
<ControlTemplate.Triggers>
|
||||
<!-- Анимация цвета при наведении -->
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Trigger.EnterActions>
|
||||
<BeginStoryboard>
|
||||
<Storyboard>
|
||||
<ColorAnimation Storyboard.TargetName="ButtonBorder"
|
||||
Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)"
|
||||
To="#0066CC" Duration="0:0:0.2" />
|
||||
Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)"
|
||||
To="#0066CC" Duration="0:0:0.2" />
|
||||
</Storyboard>
|
||||
</BeginStoryboard>
|
||||
</Trigger.EnterActions>
|
||||
@ -39,14 +38,13 @@
|
||||
<BeginStoryboard>
|
||||
<Storyboard>
|
||||
<ColorAnimation Storyboard.TargetName="ButtonBorder"
|
||||
Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)"
|
||||
To="#004890" Duration="0:0:0.2" />
|
||||
Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)"
|
||||
To="#004890" Duration="0:0:0.2" />
|
||||
</Storyboard>
|
||||
</BeginStoryboard>
|
||||
</Trigger.ExitActions>
|
||||
</Trigger>
|
||||
|
||||
<!-- Плавная анимация сжатия и тени при нажатии -->
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter Property="RenderTransformOrigin" Value="0.5,0.5" />
|
||||
<Setter Property="RenderTransform" TargetName="ButtonBorder">
|
||||
@ -64,10 +62,10 @@
|
||||
<Storyboard>
|
||||
<DoubleAnimation Storyboard.TargetName="scaleTransform"
|
||||
Storyboard.TargetProperty="ScaleX"
|
||||
To="1.0" Duration="0:0:0.1" />
|
||||
To="0.95" Duration="0:0:0.2" />
|
||||
<DoubleAnimation Storyboard.TargetName="scaleTransform"
|
||||
Storyboard.TargetProperty="ScaleY"
|
||||
To="1.0" Duration="0:0:0.1" />
|
||||
To="0.95" Duration="0:0:0.2" />
|
||||
</Storyboard>
|
||||
</BeginStoryboard>
|
||||
</Trigger.EnterActions>
|
||||
@ -76,10 +74,10 @@
|
||||
<Storyboard>
|
||||
<DoubleAnimation Storyboard.TargetName="scaleTransform"
|
||||
Storyboard.TargetProperty="ScaleX"
|
||||
To="0.95" Duration="0:0:0.2" />
|
||||
To="1.0" Duration="0:0:0.2" />
|
||||
<DoubleAnimation Storyboard.TargetName="scaleTransform"
|
||||
Storyboard.TargetProperty="ScaleY"
|
||||
To="0.95" Duration="0:0:0.2" />
|
||||
To="1.0" Duration="0:0:0.2" />
|
||||
</Storyboard>
|
||||
</BeginStoryboard>
|
||||
</Trigger.ExitActions>
|
||||
@ -90,42 +88,28 @@
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
|
||||
<!-- Стиль для закругленного TextBox -->
|
||||
<!-- Стиль для закругленного TextBox с подсветкой -->
|
||||
<Style x:Key="RoundedTextBoxStyle" TargetType="TextBox">
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="TextBox">
|
||||
<Border Background="White"
|
||||
CornerRadius="15"
|
||||
BorderBrush="Gray"
|
||||
BorderThickness="1">
|
||||
CornerRadius="15"
|
||||
BorderBrush="Gray"
|
||||
BorderThickness="1">
|
||||
<ScrollViewer Margin="5" x:Name="PART_ContentHost"/>
|
||||
</Border>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<!-- Стиль для закругленного ComboBox -->
|
||||
<Style x:Key="RoundedComboBoxStyle" TargetType="ComboBox">
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="ComboBox">
|
||||
<Border Background="White"
|
||||
CornerRadius="15"
|
||||
BorderBrush="Gray"
|
||||
BorderThickness="1">
|
||||
<Grid>
|
||||
<ToggleButton Grid.Column="2" Focusable="False"
|
||||
ClickMode="Press" />
|
||||
<ContentPresenter />
|
||||
</Grid>
|
||||
</Border>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
<Style.Triggers>
|
||||
<!-- Подсветка рамки при фокусе -->
|
||||
<Trigger Property="IsFocused" Value="True">
|
||||
<Setter Property="BorderBrush" Value="#004890"/>
|
||||
<Setter Property="BorderThickness" Value="2"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
|
||||
</Application.Resources>
|
||||
</Application>
|
||||
|
@ -3,6 +3,7 @@
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
Title="Отдел кадров УлГТУ" Height="450" Width="800" Background="#0D2D4F"
|
||||
MinWidth="400" MinHeight="300"
|
||||
WindowStartupLocation="CenterScreen"
|
||||
MaxWidth="{Binding Source={x:Static SystemParameters.PrimaryScreenWidth}}"
|
||||
MaxHeight="{Binding Source={x:Static SystemParameters.PrimaryScreenHeight}}">
|
||||
|
||||
|
@ -22,6 +22,18 @@ namespace EmployeeManagmentView
|
||||
|
||||
private void OpenPhysicalPersonManagementWindow(object sender, RoutedEventArgs e)
|
||||
{
|
||||
foreach (Window window in Application.Current.Windows)
|
||||
{
|
||||
if (window is PhysicalPersonManagementWindow)
|
||||
{
|
||||
// Если окно уже открыто, активируем его и ставим на передний план
|
||||
window.Activate();
|
||||
window.WindowStartupLocation = WindowStartupLocation.CenterScreen;
|
||||
window.Topmost = true; // Ставим окно на передний план
|
||||
window.Topmost = false; // Сразу снимаем флаг, чтобы окно не оставалось всегда наверху
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
var physicalPersonWindow = new PhysicalPersonManagementWindow(_phisicalPersonLogic);
|
||||
physicalPersonWindow.Show();
|
||||
|
@ -1,8 +1,8 @@
|
||||
<Window x:Class="EmployeeManagmentView.PhysicalPerson.AddPhysicalPersonWindow"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
Title="Добавление физического лица"
|
||||
Height="600" Width="400"
|
||||
Height="600" Width="600"
|
||||
ResizeMode="NoResize"
|
||||
WindowStartupLocation="CenterScreen"
|
||||
Background="#0D2D4F">
|
||||
@ -15,62 +15,103 @@
|
||||
Foreground="#FFFFFF"
|
||||
Margin="0,20,0,0" />
|
||||
|
||||
<!-- Стек элементов для ввода данных -->
|
||||
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,10">
|
||||
<!-- Сетка для ввода данных в два столбца -->
|
||||
<Grid Margin="0,60">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<!-- Поле для имени -->
|
||||
<TextBox x:Name="NameTextBox"
|
||||
Width="250" Height="40"
|
||||
Style="{StaticResource RoundedTextBoxStyle}"
|
||||
Margin="0,10"
|
||||
ToolTip="Введите имя" />
|
||||
<StackPanel Grid.Row="0" Grid.Column="0" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,10">
|
||||
<Label Content="Имя" Foreground="White" HorizontalAlignment="Center"/>
|
||||
<TextBox x:Name="NameTextBox"
|
||||
Width="250" Height="40"
|
||||
Style="{StaticResource RoundedTextBoxStyle}"
|
||||
Margin="0,5"
|
||||
ToolTip="Введите имя" HorizontalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
|
||||
<!-- Поле для фамилии -->
|
||||
<TextBox x:Name="SurnameTextBox"
|
||||
Width="250" Height="40"
|
||||
Style="{StaticResource RoundedTextBoxStyle}"
|
||||
Margin="0,10"
|
||||
ToolTip="Введите фамилию" />
|
||||
<StackPanel Grid.Row="0" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,10">
|
||||
<Label Content="Фамилия" Foreground="White" HorizontalAlignment="Center"/>
|
||||
<TextBox x:Name="SurnameTextBox"
|
||||
Width="250" Height="40"
|
||||
Style="{StaticResource RoundedTextBoxStyle}"
|
||||
Margin="0,5"
|
||||
ToolTip="Введите фамилию" HorizontalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
|
||||
<!-- Поле для отчества -->
|
||||
<TextBox x:Name="PatronomicTextBox"
|
||||
Width="250" Height="40"
|
||||
Style="{StaticResource RoundedTextBoxStyle}"
|
||||
Margin="0,10"
|
||||
ToolTip="Введите отчество" />
|
||||
<StackPanel Grid.Row="1" Grid.Column="0" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,10">
|
||||
<Label Content="Отчество" Foreground="White" HorizontalAlignment="Center"/>
|
||||
<TextBox x:Name="PatronomicTextBox"
|
||||
Width="250" Height="40"
|
||||
Style="{StaticResource RoundedTextBoxStyle}"
|
||||
Margin="0,5"
|
||||
ToolTip="Введите отчество" HorizontalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
|
||||
<!-- Поле для выбора даты рождения -->
|
||||
<DatePicker x:Name="BirthdayPicker"
|
||||
Width="250" Height="40"
|
||||
Margin="0,10"
|
||||
ToolTip="Выберите дату рождения" />
|
||||
<StackPanel Grid.Row="1" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,10">
|
||||
<Label Content="Дата рождения" Foreground="White" HorizontalAlignment="Center"/>
|
||||
<DatePicker x:Name="BirthdayPicker"
|
||||
Width="250" Height="40"
|
||||
Margin="0,5"
|
||||
ToolTip="Выберите дату рождения" HorizontalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
|
||||
<!-- Поле для выбора пола -->
|
||||
<TextBox x:Name="GenderTextBox"
|
||||
Width="250" Height="40"
|
||||
Style="{StaticResource RoundedTextBoxStyle}"
|
||||
Margin="0,10"
|
||||
ToolTip="Введите пол" />
|
||||
<StackPanel Grid.Row="2" Grid.Column="0" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,10">
|
||||
<Label Content="Пол" Foreground="White" HorizontalAlignment="Center"/>
|
||||
<ComboBox x:Name="GenderComboBox"
|
||||
Width="250" Height="40"
|
||||
Margin="0,5"
|
||||
ToolTip="Выберите пол"
|
||||
Background="White" HorizontalAlignment="Center">
|
||||
<ComboBoxItem Content="Мужчина"/>
|
||||
<ComboBoxItem Content="Женщина"/>
|
||||
</ComboBox>
|
||||
</StackPanel>
|
||||
|
||||
<!-- Поле для адреса -->
|
||||
<TextBox x:Name="AddressTextBox"
|
||||
Width="250" Height="40"
|
||||
Style="{StaticResource RoundedTextBoxStyle}"
|
||||
Margin="0,10"
|
||||
ToolTip="Введите адрес" />
|
||||
<StackPanel Grid.Row="2" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,10">
|
||||
<Label Content="Адрес" Foreground="White" HorizontalAlignment="Center"/>
|
||||
<TextBox x:Name="AddressTextBox"
|
||||
Width="250" Height="40"
|
||||
Style="{StaticResource RoundedTextBoxStyle}"
|
||||
Margin="0,5"
|
||||
ToolTip="Введите адрес" HorizontalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
|
||||
<!-- Поле для телефона -->
|
||||
<TextBox x:Name="TelephoneTextBox"
|
||||
Width="250" Height="40"
|
||||
Style="{StaticResource RoundedTextBoxStyle}"
|
||||
Margin="0,10"
|
||||
ToolTip="Введите номер телефона" />
|
||||
<StackPanel Grid.Row="3" Grid.Column="0" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,10">
|
||||
<Label Content="Телефон" Foreground="White" HorizontalAlignment="Center"/>
|
||||
<TextBox x:Name="TelephoneTextBox"
|
||||
Width="250" Height="40"
|
||||
Style="{StaticResource RoundedTextBoxStyle}"
|
||||
Margin="0,5"
|
||||
ToolTip="Введите номер телефона" HorizontalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
|
||||
<!-- Кнопка для добавления физического лица -->
|
||||
<Button Content="Добавить физическое лицо"
|
||||
Width="250" Height="40"
|
||||
Margin="0,10"
|
||||
<Button Grid.Row="4" Grid.ColumnSpan="2" Content="Добавить физическое лицо"
|
||||
Width="250" Height="40"
|
||||
Margin="0,10"
|
||||
Style="{StaticResource RoundedButtonStyle}"
|
||||
Click="SaveButton_Click"/>
|
||||
</StackPanel>
|
||||
Click="SaveButton_Click"
|
||||
Background="#004890" Foreground="#FFFFFF" HorizontalAlignment="Center"/>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Window>
|
||||
|
@ -1,28 +1,13 @@
|
||||
using EmployeeManagmentBusinessLogic.BusinessLogic;
|
||||
using EmployeeManagmentContracts.BusinessLogicContracts;
|
||||
using EmployeeManagmentContracts.BusinessLogicContracts;
|
||||
using EmployeeManagmentContracts.ViewModels;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace EmployeeManagmentView.PhysicalPerson
|
||||
{
|
||||
/// <summary>
|
||||
/// Логика взаимодействия для AddPhysicalPersonWindow.xaml
|
||||
/// </summary>
|
||||
public partial class AddPhysicalPersonWindow : Window
|
||||
{
|
||||
private readonly IPhisicalPersonLogic _phisicalPersonLogic;
|
||||
private static AddPhysicalPersonWindow _instance;
|
||||
|
||||
public AddPhysicalPersonWindow(IPhisicalPersonLogic phisicalPersonLogic)
|
||||
{
|
||||
@ -34,30 +19,24 @@ namespace EmployeeManagmentView.PhysicalPerson
|
||||
{
|
||||
try
|
||||
{
|
||||
// Создаем модель и заполняем её значениями из элементов интерфейса
|
||||
var model = new PhisicalPersonViewModel
|
||||
{
|
||||
Name = NameTextBox.Text,
|
||||
Surname = SurnameTextBox.Text,
|
||||
Patronymic = PatronomicTextBox.Text,
|
||||
Birthday = BirthdayPicker.SelectedDate.Value.ToUniversalTime(), // Проверка на null не нужна, так как поле обязательное
|
||||
Gender = GenderTextBox.Text,
|
||||
Birthday = BirthdayPicker.SelectedDate.Value.ToUniversalTime(),
|
||||
Gender = GenderComboBox.Text,
|
||||
Address = AddressTextBox.Text,
|
||||
Telephone = TelephoneTextBox.Text
|
||||
};
|
||||
|
||||
// Вызываем метод Insert из бизнес-логики для добавления данных в базу
|
||||
_phisicalPersonLogic.Insert(model);
|
||||
|
||||
// Показываем сообщение об успешном добавлении
|
||||
MessageBox.Show("Данные успешно сохранены!");
|
||||
|
||||
// Закрываем окно
|
||||
this.Close();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
// В случае ошибки показываем сообщение об ошибке
|
||||
MessageBox.Show($"Ошибка: {ex.Message}");
|
||||
}
|
||||
}
|
||||
|
@ -2,7 +2,7 @@
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
Title="Управление физическими лицами"
|
||||
Height="300" Width="400"
|
||||
Height="400" Width="400"
|
||||
ResizeMode="NoResize"
|
||||
WindowStartupLocation="CenterScreen"
|
||||
Background="#0D2D4F">
|
||||
@ -20,6 +20,7 @@ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
<Button Content="Удаление физического лица"
|
||||
Width="250" Height="40"
|
||||
Margin="0,0,0,10"
|
||||
Background="#004890" Foreground="#FFFFFF"
|
||||
Style="{StaticResource RoundedButtonStyle}" />
|
||||
|
||||
<!-- Кнопка "Добавление физического лица" -->
|
||||
@ -27,18 +28,21 @@ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
Width="250" Height="40"
|
||||
Margin="0,0,0,10"
|
||||
Style="{StaticResource RoundedButtonStyle}"
|
||||
Background="#004890" Foreground="#FFFFFF"
|
||||
Click="OpenAddPhysicalPersonWindow"/>
|
||||
|
||||
<!-- Кнопка "Редактирование физического лица" -->
|
||||
<Button Content="Редактирование физического лица"
|
||||
Width="250" Height="40"
|
||||
Margin="0,0,0,10"
|
||||
Style="{StaticResource RoundedButtonStyle}" />
|
||||
Style="{StaticResource RoundedButtonStyle}"
|
||||
Background="#004890" Foreground="#FFFFFF"/>
|
||||
|
||||
<!-- Кнопка "Просмотр физических лиц" -->
|
||||
<Button Content="Просмотр физических лиц"
|
||||
Width="250" Height="40"
|
||||
Style="{StaticResource RoundedButtonStyle}" />
|
||||
Style="{StaticResource RoundedButtonStyle}"
|
||||
Background="#004890" Foreground="#FFFFFF"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Window>
|
||||
|
@ -1,28 +1,12 @@
|
||||
using EmployeeManagmentContracts.BusinessLogicContracts;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace EmployeeManagmentView.PhysicalPerson
|
||||
{
|
||||
/// <summary>
|
||||
/// Логика взаимодействия для PhysicalPersonManagementWindow.xaml
|
||||
/// </summary>
|
||||
public partial class PhysicalPersonManagementWindow : Window
|
||||
{
|
||||
private readonly IPhisicalPersonLogic _phisicalPersonLogic;
|
||||
|
||||
// Constructor with Dependency Injection
|
||||
public PhysicalPersonManagementWindow(IPhisicalPersonLogic phisicalPersonLogic)
|
||||
{
|
||||
_phisicalPersonLogic = phisicalPersonLogic;
|
||||
@ -31,8 +15,24 @@ namespace EmployeeManagmentView.PhysicalPerson
|
||||
|
||||
private void OpenAddPhysicalPersonWindow(object sender, RoutedEventArgs e)
|
||||
{
|
||||
// Проверяем, если окно уже открыто
|
||||
foreach (Window window in Application.Current.Windows)
|
||||
{
|
||||
if (window is AddPhysicalPersonWindow)
|
||||
{
|
||||
// Если окно уже открыто, активируем его и ставим на передний план
|
||||
window.Activate();
|
||||
window.WindowStartupLocation = WindowStartupLocation.CenterScreen;
|
||||
window.Topmost = true; // Ставим окно на передний план
|
||||
window.Topmost = false; // Сразу снимаем флаг, чтобы окно не оставалось всегда наверху
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// Если окно не найдено, открываем новое
|
||||
var physicalPersonWindow = new AddPhysicalPersonWindow(_phisicalPersonLogic);
|
||||
physicalPersonWindow.Show();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user