commit 91396d28e6a275d4f9c6394c2b9a79d581432887 Author: localuser Date: Wed Jan 22 16:30:15 2025 +0300 Init diff --git a/.idea/.idea.AvaloniaValidation/.idea/.gitignore b/.idea/.idea.AvaloniaValidation/.idea/.gitignore new file mode 100644 index 0000000..057e813 --- /dev/null +++ b/.idea/.idea.AvaloniaValidation/.idea/.gitignore @@ -0,0 +1,13 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Rider ignored files +/contentModel.xml +/projectSettingsUpdater.xml +/modules.xml +/.idea.AvaloniaValidation.iml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/.idea.AvaloniaValidation/.idea/avalonia.xml b/.idea/.idea.AvaloniaValidation/.idea/avalonia.xml new file mode 100644 index 0000000..5ad9272 --- /dev/null +++ b/.idea/.idea.AvaloniaValidation/.idea/avalonia.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/.idea/.idea.AvaloniaValidation/.idea/indexLayout.xml b/.idea/.idea.AvaloniaValidation/.idea/indexLayout.xml new file mode 100644 index 0000000..7b08163 --- /dev/null +++ b/.idea/.idea.AvaloniaValidation/.idea/indexLayout.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.AvaloniaValidation/.idea/vcs.xml b/.idea/.idea.AvaloniaValidation/.idea/vcs.xml new file mode 100644 index 0000000..d843f34 --- /dev/null +++ b/.idea/.idea.AvaloniaValidation/.idea/vcs.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/AvaloniaValidation.sln b/AvaloniaValidation.sln new file mode 100644 index 0000000..c513539 --- /dev/null +++ b/AvaloniaValidation.sln @@ -0,0 +1,16 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AvaloniaValidation", "AvaloniaValidation\AvaloniaValidation.csproj", "{06BC55A8-AD52-429E-93D7-55703ABBFE85}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {06BC55A8-AD52-429E-93D7-55703ABBFE85}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {06BC55A8-AD52-429E-93D7-55703ABBFE85}.Debug|Any CPU.Build.0 = Debug|Any CPU + {06BC55A8-AD52-429E-93D7-55703ABBFE85}.Release|Any CPU.ActiveCfg = Release|Any CPU + {06BC55A8-AD52-429E-93D7-55703ABBFE85}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection +EndGlobal diff --git a/AvaloniaValidation/App.axaml b/AvaloniaValidation/App.axaml new file mode 100644 index 0000000..07d1f77 --- /dev/null +++ b/AvaloniaValidation/App.axaml @@ -0,0 +1,10 @@ + + + + + + + \ No newline at end of file diff --git a/AvaloniaValidation/App.axaml.cs b/AvaloniaValidation/App.axaml.cs new file mode 100644 index 0000000..c1352ab --- /dev/null +++ b/AvaloniaValidation/App.axaml.cs @@ -0,0 +1,23 @@ +using Avalonia; +using Avalonia.Controls.ApplicationLifetimes; +using Avalonia.Markup.Xaml; + +namespace AvaloniaValidation; + +public partial class App : Application +{ + public override void Initialize() + { + AvaloniaXamlLoader.Load(this); + } + + public override void OnFrameworkInitializationCompleted() + { + if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) + { + desktop.MainWindow = new MainWindow(); + } + + base.OnFrameworkInitializationCompleted(); + } +} \ No newline at end of file diff --git a/AvaloniaValidation/AvaloniaValidation.csproj b/AvaloniaValidation/AvaloniaValidation.csproj new file mode 100644 index 0000000..3eb9659 --- /dev/null +++ b/AvaloniaValidation/AvaloniaValidation.csproj @@ -0,0 +1,22 @@ + + + WinExe + net8.0 + enable + true + app.manifest + true + + + + + + + + + + None + All + + + diff --git a/AvaloniaValidation/Client.cs b/AvaloniaValidation/Client.cs new file mode 100644 index 0000000..dc0028c --- /dev/null +++ b/AvaloniaValidation/Client.cs @@ -0,0 +1,51 @@ +using System; +using System.Linq; +using System.Runtime.InteropServices.JavaScript; +using System.Text.RegularExpressions; + +namespace AvaloniaValidation; + +public class Client +{ + public int Id { get; set; } + public string FIO { get; set; } + public string Gender { get; set; } + public string Role { get; set; } + public string email { get; set; } + public string phone { get; set; } + public string napravlenie { get; set; } + public string meropriyatie { get; set; } + private string _Password { get; set; } + public string confirmPassword { get; set; } + public string Password + { + get => _Password; + set + { + ValidationPassword(value); + _Password = value; + } + } + + private void ValidationPassword(string password) + { + if (password.Length < 6) + { + throw new ArgumentException("Password must be at least 6 characters long"); + } + if (!password.Any(char.IsDigit)) + { + throw new ArgumentException("Password must contain at least one digit"); + } + if (!password.Any(char.IsUpper) || !password.Any(char.IsLower)) + { + throw new ArgumentException("Password must contain at least one uppercase letter"); + } + var regex = new Regex(@"[!@#$%^&*()_+{}|{}\\|]"); + if (!regex.IsMatch(password)) + { + throw new ArgumentException("Password must contain at least one uppercase letter"); + } + + } +} \ No newline at end of file diff --git a/AvaloniaValidation/MainWindow.axaml b/AvaloniaValidation/MainWindow.axaml new file mode 100644 index 0000000..a48c294 --- /dev/null +++ b/AvaloniaValidation/MainWindow.axaml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +