+
+
+ Languages, frameworks, tools, and any open-source contributions
+
+ }
+
+
+ placeholder="@(_application.Role == ApplicationRole.Developer
+ ? "What areas interest you? Architecture, frontend, backend, DevOps, security..."
+ : "What devices/platforms can you test on? What kind of testing experience do you have?")" rows="4" />
@@ -249,6 +256,11 @@
private readonly string[] _availablePlatforms = { "Windows", "macOS", "Linux", "Android", "iOS", "Other" };
+ private static readonly List<(string Id, string Label)> _timezones = TimeZoneInfo.GetSystemTimeZones()
+ .OrderBy(tz => tz.BaseUtcOffset)
+ .Select(tz => (tz.Id, $"(UTC{(tz.BaseUtcOffset >= TimeSpan.Zero ? "+" : "")}{tz.BaseUtcOffset:hh\\:mm}) {tz.DisplayName}"))
+ .ToList();
+
private static readonly System.Text.RegularExpressions.Regex UsernamePattern =
new(@"^[a-zA-Z0-9_-]{3,30}$", System.Text.RegularExpressions.RegexOptions.Compiled);
diff --git a/BlazorApp/Models/DeveloperApplication.cs b/BlazorApp/Models/DeveloperApplication.cs
index a254fee..3f51768 100644
--- a/BlazorApp/Models/DeveloperApplication.cs
+++ b/BlazorApp/Models/DeveloperApplication.cs
@@ -36,8 +36,8 @@ public class DeveloperApplication
[Compare("Password", ErrorMessage = "Passwords do not match")]
public string ConfirmPassword { get; set; } = string.Empty;
- [Required(ErrorMessage = "Please tell us why you want to join")]
- [StringLength(2000, MinimumLength = 20, ErrorMessage = "Motivation must be between 20 and 2000 characters")]
+ [Required(ErrorMessage = "Please tell us how you'll contribute")]
+ [StringLength(2000, MinimumLength = 20, ErrorMessage = "Please write at least 20 characters")]
public string Motivation { get; set; } = string.Empty;
}