From ef5185a738d07a363e76825a3e533732c7f574ab Mon Sep 17 00:00:00 2001 From: PoisnFang Date: Wed, 2 Jan 2019 12:08:59 -0700 Subject: [PATCH] Init --- .template.config/template.json | 30 + Areas/Identity/IdentityHostingStartup.cs | 21 + .../Pages/Account/AccessDenied.cshtml | 10 + .../Pages/Account/AccessDenied.cshtml.cs | 17 + .../Pages/Account/ConfirmEmail.cshtml | 12 + .../Pages/Account/ConfirmEmail.cshtml.cs | 46 + .../Pages/Account/ExternalLogin.cshtml | 34 + .../Pages/Account/ExternalLogin.cshtml.cs | 142 + .../Pages/Account/ForgotPassword.cshtml | 26 + .../Pages/Account/ForgotPassword.cshtml.cs | 69 + .../Account/ForgotPasswordConfirmation.cshtml | 11 + .../ForgotPasswordConfirmation.cshtml.cs | 16 + Areas/Identity/Pages/Account/Lockout.cshtml | 10 + .../Identity/Pages/Account/Lockout.cshtml.cs | 18 + Areas/Identity/Pages/Account/Login.cshtml | 82 + Areas/Identity/Pages/Account/Login.cshtml.cs | 114 + .../Pages/Account/LoginWith2fa.cshtml | 41 + .../Pages/Account/LoginWith2fa.cshtml.cs | 100 + .../Account/LoginWithRecoveryCode.cshtml | 29 + .../Account/LoginWithRecoveryCode.cshtml.cs | 91 + Areas/Identity/Pages/Account/Logout.cshtml | 10 + Areas/Identity/Pages/Account/Logout.cshtml.cs | 45 + .../Account/Manage/ChangePassword.cshtml | 35 + .../Account/Manage/ChangePassword.cshtml.cs | 103 + .../Account/Manage/DeletePersonalData.cshtml | 34 + .../Manage/DeletePersonalData.cshtml.cs | 85 + .../Pages/Account/Manage/Disable2fa.cshtml | 26 + .../Pages/Account/Manage/Disable2fa.cshtml.cs | 65 + .../Manage/DownloadPersonalData.cshtml | 12 + .../Manage/DownloadPersonalData.cshtml.cs | 52 + .../Account/Manage/EnableAuthenticator.cshtml | 54 + .../Manage/EnableAuthenticator.cshtml.cs | 158 + .../Account/Manage/ExternalLogins.cshtml | 52 + .../Account/Manage/ExternalLogins.cshtml.cs | 110 + .../Manage/GenerateRecoveryCodes.cshtml | 27 + .../Manage/GenerateRecoveryCodes.cshtml.cs | 74 + .../Pages/Account/Manage/Index.cshtml | 57 + .../Pages/Account/Manage/Index.cshtml.cs | 181 + .../Pages/Account/Manage/ManageNavPages.cs | 46 + .../Pages/Account/Manage/PersonalData.cshtml | 27 + .../Account/Manage/PersonalData.cshtml.cs | 35 + .../Account/Manage/ResetAuthenticator.cshtml | 24 + .../Manage/ResetAuthenticator.cshtml.cs | 62 + .../Pages/Account/Manage/SetPassword.cshtml | 35 + .../Account/Manage/SetPassword.cshtml.cs | 94 + .../Pages/Account/Manage/Subscriptions.cshtml | 116 + .../Account/Manage/Subscriptions.cshtml.cs | 237 + .../Manage/TwoFactorAuthentication.cshtml | 56 + .../Manage/TwoFactorAuthentication.cshtml.cs | 73 + .../Pages/Account/Manage/_Layout.cshtml | 22 + .../Pages/Account/Manage/_ManageNav.cshtml | 15 + .../Account/Manage/_StatusMessage.cshtml | 10 + .../Pages/Account/Manage/_ViewImports.cshtml | 1 + Areas/Identity/Pages/Account/Register.cshtml | 58 + .../Identity/Pages/Account/Register.cshtml.cs | 136 + .../Pages/Account/ResetPassword.cshtml | 37 + .../Pages/Account/ResetPassword.cshtml.cs | 90 + .../Account/ResetPasswordConfirmation.cshtml | 10 + .../ResetPasswordConfirmation.cshtml.cs | 18 + .../Pages/Account/_ViewImports.cshtml | 1 + Areas/Identity/Pages/Error.cshtml | 23 + Areas/Identity/Pages/Error.cshtml.cs | 26 + .../Pages/_ValidationScriptsPartial.cshtml | 18 + Areas/Identity/Pages/_ViewImports.cshtml | 6 + Areas/Identity/Pages/_ViewStart.cshtml | 3 + Data/ApplicationDbContext.cs | 27 + Data/DbInitializer.cs | 20 + ...000000000_CreateIdentitySchema.Designer.cs | 236 + .../00000000000000_CreateIdentitySchema.cs | 220 + .../ApplicationDbContextModelSnapshot.cs | 234 + Data/Models/ApplicationUser.cs | 38 + Data/Models/UserSubscription.cs | 26 + Extensions/EmailSenderExtensions.cs | 25 + Extensions/EnumExtensions.cs | 28 + Extensions/IEnumerableExtensions.cs | 22 + .../PageConventionCollectionExtensions.cs | 51 + Extensions/ReflectionExtensions.cs | 15 + Extensions/UrlHelperExtensions.cs | 38 + LICENSE.md | 20 + Pages/About.cshtml | 9 + Pages/About.cshtml.cs | 18 + Pages/Contact.cshtml | 19 + Pages/Contact.cshtml.cs | 18 + Pages/Error.cshtml | 23 + Pages/Error.cshtml.cs | 23 + Pages/Index.cshtml | 98 + Pages/Index.cshtml.cs | 17 + Pages/Privacy.cshtml | 8 + Pages/Privacy.cshtml.cs | 16 + Pages/Shared/_CookieConsentPartial.cshtml | 25 + Pages/Shared/_Layout.cshtml | 107 + Pages/Shared/_LoginPartial.cshtml | 40 + Pages/Shared/_ValidationScriptsPartial.cshtml | 18 + Pages/_ViewImports.cshtml | 6 + Pages/_ViewStart.cshtml | 3 + Program.cs | 44 + README.md | 20 + RazorStripe.csproj | 68 + RazorStripe.sln | 25 + Services/EmailSender.cs | 44 + Services/StripeSettings.cs | 13 + Startup.cs | 173 + appsettings.Development.json | 9 + appsettings.json | 15 + bundleconfig.json | 14 + libman.json | 30 + wwwroot/css/site.css | 253 ++ wwwroot/css/site.min.css | 1 + wwwroot/favicon.ico | Bin 0 -> 85387 bytes wwwroot/images/banner1.svg | 1 + wwwroot/images/banner2.svg | 1 + wwwroot/images/banner3.svg | 1 + wwwroot/images/banner4.svg | 1 + wwwroot/js/Subscriptions.js | 56 + wwwroot/js/site.js | 1 + wwwroot/js/site.min.js | 0 wwwroot/lib/fontawesome/js/all.js | 3846 +++++++++++++++++ wwwroot/lib/fontawesome/js/all.min.js | 5 + wwwroot/lib/fontawesome/js/brands.js | 540 +++ wwwroot/lib/fontawesome/js/brands.min.js | 5 + wwwroot/lib/fontawesome/js/fontawesome.js | 2001 +++++++++ wwwroot/lib/fontawesome/js/fontawesome.min.js | 5 + wwwroot/lib/fontawesome/js/regular.js | 277 ++ wwwroot/lib/fontawesome/js/regular.min.js | 5 + wwwroot/lib/fontawesome/js/solid.js | 1040 +++++ wwwroot/lib/fontawesome/js/solid.min.js | 5 + wwwroot/lib/fontawesome/js/v4-shims.js | 68 + wwwroot/lib/fontawesome/js/v4-shims.min.js | 5 + .../jquery-validation-unobtrusive/.bower.json | 44 + .../jquery.validate.unobtrusive.js | 416 ++ .../jquery.validate.unobtrusive.min.js | 5 + wwwroot/lib/jquery-validation/.bower.json | 40 + wwwroot/lib/jquery-validation/LICENSE.md | 22 + .../dist/additional-methods.js | 998 +++++ .../jquery-validation/dist/jquery.validate.js | 1398 ++++++ wwwroot/webfonts/fa-brands-400.eot | Bin 0 -> 115052 bytes wwwroot/webfonts/fa-brands-400.svg | 1127 +++++ wwwroot/webfonts/fa-brands-400.ttf | Bin 0 -> 114816 bytes wwwroot/webfonts/fa-brands-400.woff | Bin 0 -> 73920 bytes wwwroot/webfonts/fa-brands-400.woff2 | Bin 0 -> 63376 bytes wwwroot/webfonts/fa-regular-400.eot | Bin 0 -> 40744 bytes wwwroot/webfonts/fa-regular-400.svg | 467 ++ wwwroot/webfonts/fa-regular-400.ttf | Bin 0 -> 40516 bytes wwwroot/webfonts/fa-regular-400.woff | Bin 0 -> 18212 bytes wwwroot/webfonts/fa-regular-400.woff2 | Bin 0 -> 14952 bytes wwwroot/webfonts/fa-solid-900.eot | Bin 0 -> 160768 bytes wwwroot/webfonts/fa-solid-900.svg | 2231 ++++++++++ wwwroot/webfonts/fa-solid-900.ttf | Bin 0 -> 160548 bytes wwwroot/webfonts/fa-solid-900.woff | Bin 0 -> 76632 bytes wwwroot/webfonts/fa-solid-900.woff2 | Bin 0 -> 59572 bytes 150 files changed, 20146 insertions(+) create mode 100644 .template.config/template.json create mode 100644 Areas/Identity/IdentityHostingStartup.cs create mode 100644 Areas/Identity/Pages/Account/AccessDenied.cshtml create mode 100644 Areas/Identity/Pages/Account/AccessDenied.cshtml.cs create mode 100644 Areas/Identity/Pages/Account/ConfirmEmail.cshtml create mode 100644 Areas/Identity/Pages/Account/ConfirmEmail.cshtml.cs create mode 100644 Areas/Identity/Pages/Account/ExternalLogin.cshtml create mode 100644 Areas/Identity/Pages/Account/ExternalLogin.cshtml.cs create mode 100644 Areas/Identity/Pages/Account/ForgotPassword.cshtml create mode 100644 Areas/Identity/Pages/Account/ForgotPassword.cshtml.cs create mode 100644 Areas/Identity/Pages/Account/ForgotPasswordConfirmation.cshtml create mode 100644 Areas/Identity/Pages/Account/ForgotPasswordConfirmation.cshtml.cs create mode 100644 Areas/Identity/Pages/Account/Lockout.cshtml create mode 100644 Areas/Identity/Pages/Account/Lockout.cshtml.cs create mode 100644 Areas/Identity/Pages/Account/Login.cshtml create mode 100644 Areas/Identity/Pages/Account/Login.cshtml.cs create mode 100644 Areas/Identity/Pages/Account/LoginWith2fa.cshtml create mode 100644 Areas/Identity/Pages/Account/LoginWith2fa.cshtml.cs create mode 100644 Areas/Identity/Pages/Account/LoginWithRecoveryCode.cshtml create mode 100644 Areas/Identity/Pages/Account/LoginWithRecoveryCode.cshtml.cs create mode 100644 Areas/Identity/Pages/Account/Logout.cshtml create mode 100644 Areas/Identity/Pages/Account/Logout.cshtml.cs create mode 100644 Areas/Identity/Pages/Account/Manage/ChangePassword.cshtml create mode 100644 Areas/Identity/Pages/Account/Manage/ChangePassword.cshtml.cs create mode 100644 Areas/Identity/Pages/Account/Manage/DeletePersonalData.cshtml create mode 100644 Areas/Identity/Pages/Account/Manage/DeletePersonalData.cshtml.cs create mode 100644 Areas/Identity/Pages/Account/Manage/Disable2fa.cshtml create mode 100644 Areas/Identity/Pages/Account/Manage/Disable2fa.cshtml.cs create mode 100644 Areas/Identity/Pages/Account/Manage/DownloadPersonalData.cshtml create mode 100644 Areas/Identity/Pages/Account/Manage/DownloadPersonalData.cshtml.cs create mode 100644 Areas/Identity/Pages/Account/Manage/EnableAuthenticator.cshtml create mode 100644 Areas/Identity/Pages/Account/Manage/EnableAuthenticator.cshtml.cs create mode 100644 Areas/Identity/Pages/Account/Manage/ExternalLogins.cshtml create mode 100644 Areas/Identity/Pages/Account/Manage/ExternalLogins.cshtml.cs create mode 100644 Areas/Identity/Pages/Account/Manage/GenerateRecoveryCodes.cshtml create mode 100644 Areas/Identity/Pages/Account/Manage/GenerateRecoveryCodes.cshtml.cs create mode 100644 Areas/Identity/Pages/Account/Manage/Index.cshtml create mode 100644 Areas/Identity/Pages/Account/Manage/Index.cshtml.cs create mode 100644 Areas/Identity/Pages/Account/Manage/ManageNavPages.cs create mode 100644 Areas/Identity/Pages/Account/Manage/PersonalData.cshtml create mode 100644 Areas/Identity/Pages/Account/Manage/PersonalData.cshtml.cs create mode 100644 Areas/Identity/Pages/Account/Manage/ResetAuthenticator.cshtml create mode 100644 Areas/Identity/Pages/Account/Manage/ResetAuthenticator.cshtml.cs create mode 100644 Areas/Identity/Pages/Account/Manage/SetPassword.cshtml create mode 100644 Areas/Identity/Pages/Account/Manage/SetPassword.cshtml.cs create mode 100644 Areas/Identity/Pages/Account/Manage/Subscriptions.cshtml create mode 100644 Areas/Identity/Pages/Account/Manage/Subscriptions.cshtml.cs create mode 100644 Areas/Identity/Pages/Account/Manage/TwoFactorAuthentication.cshtml create mode 100644 Areas/Identity/Pages/Account/Manage/TwoFactorAuthentication.cshtml.cs create mode 100644 Areas/Identity/Pages/Account/Manage/_Layout.cshtml create mode 100644 Areas/Identity/Pages/Account/Manage/_ManageNav.cshtml create mode 100644 Areas/Identity/Pages/Account/Manage/_StatusMessage.cshtml create mode 100644 Areas/Identity/Pages/Account/Manage/_ViewImports.cshtml create mode 100644 Areas/Identity/Pages/Account/Register.cshtml create mode 100644 Areas/Identity/Pages/Account/Register.cshtml.cs create mode 100644 Areas/Identity/Pages/Account/ResetPassword.cshtml create mode 100644 Areas/Identity/Pages/Account/ResetPassword.cshtml.cs create mode 100644 Areas/Identity/Pages/Account/ResetPasswordConfirmation.cshtml create mode 100644 Areas/Identity/Pages/Account/ResetPasswordConfirmation.cshtml.cs create mode 100644 Areas/Identity/Pages/Account/_ViewImports.cshtml create mode 100644 Areas/Identity/Pages/Error.cshtml create mode 100644 Areas/Identity/Pages/Error.cshtml.cs create mode 100644 Areas/Identity/Pages/_ValidationScriptsPartial.cshtml create mode 100644 Areas/Identity/Pages/_ViewImports.cshtml create mode 100644 Areas/Identity/Pages/_ViewStart.cshtml create mode 100644 Data/ApplicationDbContext.cs create mode 100644 Data/DbInitializer.cs create mode 100644 Data/Migrations/00000000000000_CreateIdentitySchema.Designer.cs create mode 100644 Data/Migrations/00000000000000_CreateIdentitySchema.cs create mode 100644 Data/Migrations/ApplicationDbContextModelSnapshot.cs create mode 100644 Data/Models/ApplicationUser.cs create mode 100644 Data/Models/UserSubscription.cs create mode 100644 Extensions/EmailSenderExtensions.cs create mode 100644 Extensions/EnumExtensions.cs create mode 100644 Extensions/IEnumerableExtensions.cs create mode 100644 Extensions/PageConventionCollectionExtensions.cs create mode 100644 Extensions/ReflectionExtensions.cs create mode 100644 Extensions/UrlHelperExtensions.cs create mode 100644 LICENSE.md create mode 100644 Pages/About.cshtml create mode 100644 Pages/About.cshtml.cs create mode 100644 Pages/Contact.cshtml create mode 100644 Pages/Contact.cshtml.cs create mode 100644 Pages/Error.cshtml create mode 100644 Pages/Error.cshtml.cs create mode 100644 Pages/Index.cshtml create mode 100644 Pages/Index.cshtml.cs create mode 100644 Pages/Privacy.cshtml create mode 100644 Pages/Privacy.cshtml.cs create mode 100644 Pages/Shared/_CookieConsentPartial.cshtml create mode 100644 Pages/Shared/_Layout.cshtml create mode 100644 Pages/Shared/_LoginPartial.cshtml create mode 100644 Pages/Shared/_ValidationScriptsPartial.cshtml create mode 100644 Pages/_ViewImports.cshtml create mode 100644 Pages/_ViewStart.cshtml create mode 100644 Program.cs create mode 100644 README.md create mode 100644 RazorStripe.csproj create mode 100644 RazorStripe.sln create mode 100644 Services/EmailSender.cs create mode 100644 Services/StripeSettings.cs create mode 100644 Startup.cs create mode 100644 appsettings.Development.json create mode 100644 appsettings.json create mode 100644 bundleconfig.json create mode 100644 libman.json create mode 100644 wwwroot/css/site.css create mode 100644 wwwroot/css/site.min.css create mode 100644 wwwroot/favicon.ico create mode 100644 wwwroot/images/banner1.svg create mode 100644 wwwroot/images/banner2.svg create mode 100644 wwwroot/images/banner3.svg create mode 100644 wwwroot/images/banner4.svg create mode 100644 wwwroot/js/Subscriptions.js create mode 100644 wwwroot/js/site.js create mode 100644 wwwroot/js/site.min.js create mode 100644 wwwroot/lib/fontawesome/js/all.js create mode 100644 wwwroot/lib/fontawesome/js/all.min.js create mode 100644 wwwroot/lib/fontawesome/js/brands.js create mode 100644 wwwroot/lib/fontawesome/js/brands.min.js create mode 100644 wwwroot/lib/fontawesome/js/fontawesome.js create mode 100644 wwwroot/lib/fontawesome/js/fontawesome.min.js create mode 100644 wwwroot/lib/fontawesome/js/regular.js create mode 100644 wwwroot/lib/fontawesome/js/regular.min.js create mode 100644 wwwroot/lib/fontawesome/js/solid.js create mode 100644 wwwroot/lib/fontawesome/js/solid.min.js create mode 100644 wwwroot/lib/fontawesome/js/v4-shims.js create mode 100644 wwwroot/lib/fontawesome/js/v4-shims.min.js create mode 100644 wwwroot/lib/jquery-validation-unobtrusive/.bower.json create mode 100644 wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js create mode 100644 wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js create mode 100644 wwwroot/lib/jquery-validation/.bower.json create mode 100644 wwwroot/lib/jquery-validation/LICENSE.md create mode 100644 wwwroot/lib/jquery-validation/dist/additional-methods.js create mode 100644 wwwroot/lib/jquery-validation/dist/jquery.validate.js create mode 100644 wwwroot/webfonts/fa-brands-400.eot create mode 100644 wwwroot/webfonts/fa-brands-400.svg create mode 100644 wwwroot/webfonts/fa-brands-400.ttf create mode 100644 wwwroot/webfonts/fa-brands-400.woff create mode 100644 wwwroot/webfonts/fa-brands-400.woff2 create mode 100644 wwwroot/webfonts/fa-regular-400.eot create mode 100644 wwwroot/webfonts/fa-regular-400.svg create mode 100644 wwwroot/webfonts/fa-regular-400.ttf create mode 100644 wwwroot/webfonts/fa-regular-400.woff create mode 100644 wwwroot/webfonts/fa-regular-400.woff2 create mode 100644 wwwroot/webfonts/fa-solid-900.eot create mode 100644 wwwroot/webfonts/fa-solid-900.svg create mode 100644 wwwroot/webfonts/fa-solid-900.ttf create mode 100644 wwwroot/webfonts/fa-solid-900.woff create mode 100644 wwwroot/webfonts/fa-solid-900.woff2 diff --git a/.template.config/template.json b/.template.config/template.json new file mode 100644 index 0000000..5098c64 --- /dev/null +++ b/.template.config/template.json @@ -0,0 +1,30 @@ +{ + "$schema": "http://json.schemastore.org/template", + "identity": "RazorStripe", + "author": "Dragon Mastery LLC", + "classifications": [ "Web/MVC/Razor Pages" ], + "name": "ASP.NET Core 2.2 Web App Razor Stripe", + "shortName": "razorstripe", + "tags": { + "language": "C#" + }, + "sourceName": "RazorStripe", + "symbols":{ + "copyrightName": { + "type": "parameter", + "defaultValue": "Company", + "replaces":"Dragon Mastery LLC" + } + }, + "postActions": [ + { + "condition": "(!skipRestore)", + "description": "Restore NuGet packages required by this project.", + "manualInstructions": [ + { "text": "Run 'dotnet restore'" } + ], + "actionId": "210D431B-A78B-4D2F-B762-4ED3E3EA9025", + "continueOnError": true + } + ] +} diff --git a/Areas/Identity/IdentityHostingStartup.cs b/Areas/Identity/IdentityHostingStartup.cs new file mode 100644 index 0000000..de6facb --- /dev/null +++ b/Areas/Identity/IdentityHostingStartup.cs @@ -0,0 +1,21 @@ +using System; +using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Identity; +using Microsoft.AspNetCore.Identity.UI; +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using RazorStripe.Data; + +[assembly: HostingStartup(typeof(RazorStripe.Areas.Identity.IdentityHostingStartup))] +namespace RazorStripe.Areas.Identity +{ + public class IdentityHostingStartup : IHostingStartup + { + public void Configure(IWebHostBuilder builder) + { + builder.ConfigureServices((context, services) => { + }); + } + } +} \ No newline at end of file diff --git a/Areas/Identity/Pages/Account/AccessDenied.cshtml b/Areas/Identity/Pages/Account/AccessDenied.cshtml new file mode 100644 index 0000000..017f6ff --- /dev/null +++ b/Areas/Identity/Pages/Account/AccessDenied.cshtml @@ -0,0 +1,10 @@ +@page +@model AccessDeniedModel +@{ + ViewData["Title"] = "Access denied"; +} + +
+

@ViewData["Title"]

+

You do not have access to this resource.

+
diff --git a/Areas/Identity/Pages/Account/AccessDenied.cshtml.cs b/Areas/Identity/Pages/Account/AccessDenied.cshtml.cs new file mode 100644 index 0000000..96e342a --- /dev/null +++ b/Areas/Identity/Pages/Account/AccessDenied.cshtml.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc.RazorPages; + +namespace RazorStripe.Areas.Identity.Pages.Account +{ + public class AccessDeniedModel : PageModel + { + public void OnGet() + { + + } + } +} + diff --git a/Areas/Identity/Pages/Account/ConfirmEmail.cshtml b/Areas/Identity/Pages/Account/ConfirmEmail.cshtml new file mode 100644 index 0000000..401bf32 --- /dev/null +++ b/Areas/Identity/Pages/Account/ConfirmEmail.cshtml @@ -0,0 +1,12 @@ +@page +@model ConfirmEmailModel +@{ + ViewData["Title"] = "Confirm email"; +} + +

@ViewData["Title"]

+
+

+ Thank you for confirming your email. +

+
diff --git a/Areas/Identity/Pages/Account/ConfirmEmail.cshtml.cs b/Areas/Identity/Pages/Account/ConfirmEmail.cshtml.cs new file mode 100644 index 0000000..274af13 --- /dev/null +++ b/Areas/Identity/Pages/Account/ConfirmEmail.cshtml.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Identity; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; +using RazorStripe.Data; +using RazorStripe.Data.Models; + +namespace RazorStripe.Areas.Identity.Pages.Account +{ + [AllowAnonymous] + public class ConfirmEmailModel : PageModel + { + private readonly UserManager _userManager; + + public ConfirmEmailModel(UserManager userManager) + { + _userManager = userManager; + } + + public async Task OnGetAsync(string userId, string code) + { + if (userId == null || code == null) + { + return RedirectToPage("/Index"); + } + + var user = await _userManager.FindByIdAsync(userId); + if (user == null) + { + return NotFound($"Unable to load user with ID '{userId}'."); + } + + var result = await _userManager.ConfirmEmailAsync(user, code); + if (!result.Succeeded) + { + throw new InvalidOperationException($"Error confirming email for user with ID '{userId}':"); + } + + return Page(); + } + } +} diff --git a/Areas/Identity/Pages/Account/ExternalLogin.cshtml b/Areas/Identity/Pages/Account/ExternalLogin.cshtml new file mode 100644 index 0000000..54273e2 --- /dev/null +++ b/Areas/Identity/Pages/Account/ExternalLogin.cshtml @@ -0,0 +1,34 @@ +@page +@model ExternalLoginModel +@{ + ViewData["Title"] = "Register"; +} + +

@ViewData["Title"]

+

Associate your @Model.LoginProvider account.

+
+ +

+ You've successfully authenticated with @Model.LoginProvider. + Please enter an email address for this site below and click the Register button to finish + logging in. +

+ +
+
+
+
+
+ + + +
+ +
+
+
+ +@section Scripts { + +} + diff --git a/Areas/Identity/Pages/Account/ExternalLogin.cshtml.cs b/Areas/Identity/Pages/Account/ExternalLogin.cshtml.cs new file mode 100644 index 0000000..9ce9d95 --- /dev/null +++ b/Areas/Identity/Pages/Account/ExternalLogin.cshtml.cs @@ -0,0 +1,142 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Security.Claims; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Identity; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; +using Microsoft.Extensions.Logging; +using RazorStripe.Data; +using RazorStripe.Data.Models; + +namespace RazorStripe.Areas.Identity.Pages.Account +{ + [AllowAnonymous] + public class ExternalLoginModel : PageModel + { + private readonly SignInManager _signInManager; + private readonly UserManager _userManager; + private readonly ILogger _logger; + + public ExternalLoginModel( + SignInManager signInManager, + UserManager userManager, + ILogger logger) + { + _signInManager = signInManager; + _userManager = userManager; + _logger = logger; + } + + [BindProperty] + public InputModel Input { get; set; } + + public string LoginProvider { get; set; } + + public string ReturnUrl { get; set; } + + [TempData] + public string ErrorMessage { get; set; } + + public class InputModel + { + [Required] + [EmailAddress] + public string Email { get; set; } + } + + public IActionResult OnGetAsync() + { + return RedirectToPage("./Login"); + } + + public IActionResult OnPost(string provider, string returnUrl = null) + { + // Request a redirect to the external login provider. + var redirectUrl = Url.Page("./ExternalLogin", pageHandler: "Callback", values: new { returnUrl }); + var properties = _signInManager.ConfigureExternalAuthenticationProperties(provider, redirectUrl); + return new ChallengeResult(provider, properties); + } + + public async Task OnGetCallbackAsync(string returnUrl = null, string remoteError = null) + { + returnUrl = returnUrl ?? Url.Content("~/"); + if (remoteError != null) + { + ErrorMessage = $"Error from external provider: {remoteError}"; + return RedirectToPage("./Login", new {ReturnUrl = returnUrl }); + } + var info = await _signInManager.GetExternalLoginInfoAsync(); + if (info == null) + { + ErrorMessage = "Error loading external login information."; + return RedirectToPage("./Login", new { ReturnUrl = returnUrl }); + } + + // Sign in the user with this external login provider if the user already has a login. + var result = await _signInManager.ExternalLoginSignInAsync(info.LoginProvider, info.ProviderKey, isPersistent: false, bypassTwoFactor : true); + if (result.Succeeded) + { + _logger.LogInformation("{Name} logged in with {LoginProvider} provider.", info.Principal.Identity.Name, info.LoginProvider); + return LocalRedirect(returnUrl); + } + if (result.IsLockedOut) + { + return RedirectToPage("./Lockout"); + } + else + { + // If the user does not have an account, then ask the user to create an account. + ReturnUrl = returnUrl; + LoginProvider = info.LoginProvider; + if (info.Principal.HasClaim(c => c.Type == ClaimTypes.Email)) + { + Input = new InputModel + { + Email = info.Principal.FindFirstValue(ClaimTypes.Email) + }; + } + return Page(); + } + } + + public async Task OnPostConfirmationAsync(string returnUrl = null) + { + returnUrl = returnUrl ?? Url.Content("~/"); + // Get the information about the user from the external login provider + var info = await _signInManager.GetExternalLoginInfoAsync(); + if (info == null) + { + ErrorMessage = "Error loading external login information during confirmation."; + return RedirectToPage("./Login", new { ReturnUrl = returnUrl }); + } + + if (ModelState.IsValid) + { + var user = new ApplicationUser { UserName = Input.Email, Email = Input.Email }; + var result = await _userManager.CreateAsync(user); + if (result.Succeeded) + { + result = await _userManager.AddLoginAsync(user, info); + if (result.Succeeded) + { + await _signInManager.SignInAsync(user, isPersistent: false); + _logger.LogInformation("User created an account using {Name} provider.", info.LoginProvider); + return LocalRedirect(returnUrl); + } + } + foreach (var error in result.Errors) + { + ModelState.AddModelError(string.Empty, error.Description); + } + } + + LoginProvider = info.LoginProvider; + ReturnUrl = returnUrl; + return Page(); + } + } +} diff --git a/Areas/Identity/Pages/Account/ForgotPassword.cshtml b/Areas/Identity/Pages/Account/ForgotPassword.cshtml new file mode 100644 index 0000000..1342aa7 --- /dev/null +++ b/Areas/Identity/Pages/Account/ForgotPassword.cshtml @@ -0,0 +1,26 @@ +@page +@model ForgotPasswordModel +@{ + ViewData["Title"] = "Forgot your password?"; +} + +

@ViewData["Title"]

+

Enter your email.

+
+
+
+
+
+
+ + + +
+ +
+
+
+ +@section Scripts { + +} diff --git a/Areas/Identity/Pages/Account/ForgotPassword.cshtml.cs b/Areas/Identity/Pages/Account/ForgotPassword.cshtml.cs new file mode 100644 index 0000000..72b20bd --- /dev/null +++ b/Areas/Identity/Pages/Account/ForgotPassword.cshtml.cs @@ -0,0 +1,69 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Text.Encodings.Web; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Identity; +using Microsoft.AspNetCore.Identity.UI.Services; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; +using RazorStripe.Data; +using RazorStripe.Data.Models; + +namespace RazorStripe.Areas.Identity.Pages.Account +{ + [AllowAnonymous] + public class ForgotPasswordModel : PageModel + { + private readonly UserManager _userManager; + private readonly IEmailSender _emailSender; + + public ForgotPasswordModel(UserManager userManager, IEmailSender emailSender) + { + _userManager = userManager; + _emailSender = emailSender; + } + + [BindProperty] + public InputModel Input { get; set; } + + public class InputModel + { + [Required] + [EmailAddress] + public string Email { get; set; } + } + + public async Task OnPostAsync() + { + if (ModelState.IsValid) + { + var user = await _userManager.FindByEmailAsync(Input.Email); + if (user == null || !(await _userManager.IsEmailConfirmedAsync(user))) + { + // Don't reveal that the user does not exist or is not confirmed + return RedirectToPage("./ForgotPasswordConfirmation"); + } + + // For more information on how to enable account confirmation and password reset please + // visit https://go.microsoft.com/fwlink/?LinkID=532713 + var code = await _userManager.GeneratePasswordResetTokenAsync(user); + var callbackUrl = Url.Page( + "/Account/ResetPassword", + pageHandler: null, + values: new { code }, + protocol: Request.Scheme); + + await _emailSender.SendEmailAsync( + Input.Email, + "Reset Password", + $"Please reset your password by clicking here."); + + return RedirectToPage("./ForgotPasswordConfirmation"); + } + + return Page(); + } + } +} diff --git a/Areas/Identity/Pages/Account/ForgotPasswordConfirmation.cshtml b/Areas/Identity/Pages/Account/ForgotPasswordConfirmation.cshtml new file mode 100644 index 0000000..9468da0 --- /dev/null +++ b/Areas/Identity/Pages/Account/ForgotPasswordConfirmation.cshtml @@ -0,0 +1,11 @@ +@page +@model ForgotPasswordConfirmation +@{ + ViewData["Title"] = "Forgot password confirmation"; +} + +

@ViewData["Title"]

+

+ Please check your email to reset your password. +

+ diff --git a/Areas/Identity/Pages/Account/ForgotPasswordConfirmation.cshtml.cs b/Areas/Identity/Pages/Account/ForgotPasswordConfirmation.cshtml.cs new file mode 100644 index 0000000..d30ea66 --- /dev/null +++ b/Areas/Identity/Pages/Account/ForgotPasswordConfirmation.cshtml.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc.RazorPages; + +namespace RazorStripe.Areas.Identity.Pages.Account +{ + [AllowAnonymous] + public class ForgotPasswordConfirmation : PageModel + { + public void OnGet() + { + } + } +} diff --git a/Areas/Identity/Pages/Account/Lockout.cshtml b/Areas/Identity/Pages/Account/Lockout.cshtml new file mode 100644 index 0000000..4eded88 --- /dev/null +++ b/Areas/Identity/Pages/Account/Lockout.cshtml @@ -0,0 +1,10 @@ +@page +@model LockoutModel +@{ + ViewData["Title"] = "Locked out"; +} + +
+

@ViewData["Title"]

+

This account has been locked out, please try again later.

+
diff --git a/Areas/Identity/Pages/Account/Lockout.cshtml.cs b/Areas/Identity/Pages/Account/Lockout.cshtml.cs new file mode 100644 index 0000000..05d44d4 --- /dev/null +++ b/Areas/Identity/Pages/Account/Lockout.cshtml.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc.RazorPages; + +namespace RazorStripe.Areas.Identity.Pages.Account +{ + [AllowAnonymous] + public class LockoutModel : PageModel + { + public void OnGet() + { + + } + } +} diff --git a/Areas/Identity/Pages/Account/Login.cshtml b/Areas/Identity/Pages/Account/Login.cshtml new file mode 100644 index 0000000..917d3a2 --- /dev/null +++ b/Areas/Identity/Pages/Account/Login.cshtml @@ -0,0 +1,82 @@ +@page +@model LoginModel + +@{ + ViewData["Title"] = "Log in"; +} + +

@ViewData["Title"]

+
+
+
+
+

Use a local account to log in.

+
+
+
+ + + +
+
+ + + +
+
+
+ +
+
+
+ +
+ +
+
+
+
+
+

Use another service to log in.

+
+ @{ + if ((Model.ExternalLogins?.Count ?? 0) == 0) + { +
+

+ There are no external authentication services configured. See this article + for details on setting up this ASP.NET application to support logging in via external services. +

+
+ } + else + { +
+
+

+ @foreach (var provider in Model.ExternalLogins) + { + + } +

+
+
+ } + } +
+
+
+ +@section Scripts { + +} \ No newline at end of file diff --git a/Areas/Identity/Pages/Account/Login.cshtml.cs b/Areas/Identity/Pages/Account/Login.cshtml.cs new file mode 100644 index 0000000..bfee255 --- /dev/null +++ b/Areas/Identity/Pages/Account/Login.cshtml.cs @@ -0,0 +1,114 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Authentication; +using Microsoft.AspNetCore.Identity; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; +using Microsoft.Extensions.Logging; +using RazorStripe.Data; +using RazorStripe.Data.Models; + +namespace RazorStripe.Areas.Identity.Pages.Account +{ + [AllowAnonymous] + public class LoginModel : PageModel + { + private readonly SignInManager _signInManager; + private readonly UserManager _userManager; + + private readonly ILogger _logger; + + public LoginModel(SignInManager signInManager, UserManager userManager, + ILogger logger) + { + _signInManager = signInManager; + _userManager = userManager; + _logger = logger; + } + + [BindProperty] + public InputModel Input { get; set; } + + public IList ExternalLogins { get; set; } + + public string ReturnUrl { get; set; } + + [TempData] + public string ErrorMessage { get; set; } + + public class InputModel + { + [Required] + [Display(Name = "Username/Email")] + public string Username_Email { get; set; } + + [Required] + [DataType(DataType.Password)] + public string Password { get; set; } + + [Display(Name = "Remember me?")] + public bool RememberMe { get; set; } + } + + public async Task OnGetAsync(string returnUrl = null) + { + if (!string.IsNullOrEmpty(ErrorMessage)) + { + ModelState.AddModelError(string.Empty, ErrorMessage); + } + + returnUrl = returnUrl ?? Url.Content("~/"); + + // Clear the existing external cookie to ensure a clean login process + await HttpContext.SignOutAsync(IdentityConstants.ExternalScheme); + + ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList(); + + ReturnUrl = returnUrl; + } + + public async Task OnPostAsync(string returnUrl = null) + { + returnUrl = returnUrl ?? Url.Content("~/"); + + if (ModelState.IsValid) + { + // This doesn't count login failures towards account lockout + // To enable password failures to trigger account lockout, set lockoutOnFailure: true + var user = await _userManager.FindByNameAsync(Input.Username_Email) ?? await _userManager.FindByEmailAsync(Input.Username_Email); + if (user == null) + { + ModelState.AddModelError(string.Empty, "User not found."); + return Page(); + } + var result = await _signInManager.PasswordSignInAsync(user, Input.Password, Input.RememberMe, lockoutOnFailure: true); + if (result.Succeeded) + { + _logger.LogInformation("User logged in."); + return LocalRedirect(returnUrl); + } + if (result.RequiresTwoFactor) + { + return RedirectToPage("./LoginWith2fa", new { ReturnUrl = returnUrl, RememberMe = Input.RememberMe }); + } + if (result.IsLockedOut) + { + _logger.LogWarning("User account locked out."); + return RedirectToPage("./Lockout"); + } + else + { + ModelState.AddModelError(string.Empty, "Password is incorrect."); + return Page(); + } + } + + // If we got this far, something failed, redisplay form + return Page(); + } + } +} \ No newline at end of file diff --git a/Areas/Identity/Pages/Account/LoginWith2fa.cshtml b/Areas/Identity/Pages/Account/LoginWith2fa.cshtml new file mode 100644 index 0000000..a9d25fd --- /dev/null +++ b/Areas/Identity/Pages/Account/LoginWith2fa.cshtml @@ -0,0 +1,41 @@ +@page +@model LoginWith2faModel +@{ + ViewData["Title"] = "Two-factor authentication"; +} + +

@ViewData["Title"]

+
+

Your login is protected with an authenticator app. Enter your authenticator code below.

+
+
+
+ +
+
+ + + +
+
+
+ +
+
+
+ +
+
+
+
+

+ Don't have access to your authenticator device? You can + log in with a recovery code. +

+ +@section Scripts { + +} \ No newline at end of file diff --git a/Areas/Identity/Pages/Account/LoginWith2fa.cshtml.cs b/Areas/Identity/Pages/Account/LoginWith2fa.cshtml.cs new file mode 100644 index 0000000..0be4d06 --- /dev/null +++ b/Areas/Identity/Pages/Account/LoginWith2fa.cshtml.cs @@ -0,0 +1,100 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Identity; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; +using Microsoft.Extensions.Logging; +using RazorStripe.Data; +using RazorStripe.Data.Models; + +namespace RazorStripe.Areas.Identity.Pages.Account +{ + [AllowAnonymous] + public class LoginWith2faModel : PageModel + { + private readonly SignInManager _signInManager; + private readonly ILogger _logger; + + public LoginWith2faModel(SignInManager signInManager, ILogger logger) + { + _signInManager = signInManager; + _logger = logger; + } + + [BindProperty] + public InputModel Input { get; set; } + + public bool RememberMe { get; set; } + + public string ReturnUrl { get; set; } + + public class InputModel + { + [Required] + [StringLength(7, ErrorMessage = "The {0} must be at least {2} and at max {1} characters long.", MinimumLength = 6)] + [DataType(DataType.Text)] + [Display(Name = "Authenticator code")] + public string TwoFactorCode { get; set; } + + [Display(Name = "Remember this machine")] + public bool RememberMachine { get; set; } + } + + public async Task OnGetAsync(bool rememberMe, string returnUrl = null) + { + // Ensure the user has gone through the username & password screen first + var user = await _signInManager.GetTwoFactorAuthenticationUserAsync(); + + if (user == null) + { + throw new InvalidOperationException($"Unable to load two-factor authentication user."); + } + + ReturnUrl = returnUrl; + RememberMe = rememberMe; + + return Page(); + } + + public async Task OnPostAsync(bool rememberMe, string returnUrl = null) + { + if (!ModelState.IsValid) + { + return Page(); + } + + returnUrl = returnUrl ?? Url.Content("~/"); + + var user = await _signInManager.GetTwoFactorAuthenticationUserAsync(); + if (user == null) + { + throw new InvalidOperationException($"Unable to load two-factor authentication user."); + } + + var authenticatorCode = Input.TwoFactorCode.Replace(" ", string.Empty).Replace("-", string.Empty); + + var result = await _signInManager.TwoFactorAuthenticatorSignInAsync(authenticatorCode, rememberMe, Input.RememberMachine); + + if (result.Succeeded) + { + _logger.LogInformation("User with ID '{UserId}' logged in with 2fa.", user.Id); + return LocalRedirect(returnUrl); + } + else if (result.IsLockedOut) + { + _logger.LogWarning("User with ID '{UserId}' account locked out.", user.Id); + return RedirectToPage("./Lockout"); + } + else + { + _logger.LogWarning("Invalid authenticator code entered for user with ID '{UserId}'.", user.Id); + ModelState.AddModelError(string.Empty, "Invalid authenticator code."); + return Page(); + } + } + } +} diff --git a/Areas/Identity/Pages/Account/LoginWithRecoveryCode.cshtml b/Areas/Identity/Pages/Account/LoginWithRecoveryCode.cshtml new file mode 100644 index 0000000..abd45aa --- /dev/null +++ b/Areas/Identity/Pages/Account/LoginWithRecoveryCode.cshtml @@ -0,0 +1,29 @@ +@page +@model LoginWithRecoveryCodeModel +@{ + ViewData["Title"] = "Recovery code verification"; +} + +

@ViewData["Title"]

+
+

+ You have requested to log in with a recovery code. This login will not be remembered until you provide + an authenticator app code at log in or disable 2FA and log in again. +

+
+
+
+
+
+ + + +
+ +
+
+
+ + @section Scripts { + +} \ No newline at end of file diff --git a/Areas/Identity/Pages/Account/LoginWithRecoveryCode.cshtml.cs b/Areas/Identity/Pages/Account/LoginWithRecoveryCode.cshtml.cs new file mode 100644 index 0000000..ccb2d86 --- /dev/null +++ b/Areas/Identity/Pages/Account/LoginWithRecoveryCode.cshtml.cs @@ -0,0 +1,91 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Identity; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; +using Microsoft.Extensions.Logging; +using RazorStripe.Data; +using RazorStripe.Data.Models; + +namespace RazorStripe.Areas.Identity.Pages.Account +{ + [AllowAnonymous] + public class LoginWithRecoveryCodeModel : PageModel + { + private readonly SignInManager _signInManager; + private readonly ILogger _logger; + + public LoginWithRecoveryCodeModel(SignInManager signInManager, ILogger logger) + { + _signInManager = signInManager; + _logger = logger; + } + + [BindProperty] + public InputModel Input { get; set; } + + public string ReturnUrl { get; set; } + + public class InputModel + { + [BindProperty] + [Required] + [DataType(DataType.Text)] + [Display(Name = "Recovery Code")] + public string RecoveryCode { get; set; } + } + + public async Task OnGetAsync(string returnUrl = null) + { + // Ensure the user has gone through the username & password screen first + var user = await _signInManager.GetTwoFactorAuthenticationUserAsync(); + if (user == null) + { + throw new InvalidOperationException($"Unable to load two-factor authentication user."); + } + + ReturnUrl = returnUrl; + + return Page(); + } + + public async Task OnPostAsync(string returnUrl = null) + { + if (!ModelState.IsValid) + { + return Page(); + } + + var user = await _signInManager.GetTwoFactorAuthenticationUserAsync(); + if (user == null) + { + throw new InvalidOperationException($"Unable to load two-factor authentication user."); + } + + var recoveryCode = Input.RecoveryCode.Replace(" ", string.Empty); + + var result = await _signInManager.TwoFactorRecoveryCodeSignInAsync(recoveryCode); + + if (result.Succeeded) + { + _logger.LogInformation("User with ID '{UserId}' logged in with a recovery code.", user.Id); + return LocalRedirect(returnUrl ?? Url.Content("~/")); + } + if (result.IsLockedOut) + { + _logger.LogWarning("User with ID '{UserId}' account locked out.", user.Id); + return RedirectToPage("./Lockout"); + } + else + { + _logger.LogWarning("Invalid recovery code entered for user with ID '{UserId}' ", user.Id); + ModelState.AddModelError(string.Empty, "Invalid recovery code entered."); + return Page(); + } + } + } +} diff --git a/Areas/Identity/Pages/Account/Logout.cshtml b/Areas/Identity/Pages/Account/Logout.cshtml new file mode 100644 index 0000000..cb864ef --- /dev/null +++ b/Areas/Identity/Pages/Account/Logout.cshtml @@ -0,0 +1,10 @@ +@page +@model LogoutModel +@{ + ViewData["Title"] = "Log out"; +} + +
+

@ViewData["Title"]

+

You have successfully logged out of the application.

+
\ No newline at end of file diff --git a/Areas/Identity/Pages/Account/Logout.cshtml.cs b/Areas/Identity/Pages/Account/Logout.cshtml.cs new file mode 100644 index 0000000..d5edd7c --- /dev/null +++ b/Areas/Identity/Pages/Account/Logout.cshtml.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Identity; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; +using Microsoft.Extensions.Logging; +using RazorStripe.Data; +using RazorStripe.Data.Models; + +namespace RazorStripe.Areas.Identity.Pages.Account +{ + [AllowAnonymous] + public class LogoutModel : PageModel + { + private readonly SignInManager _signInManager; + private readonly ILogger _logger; + + public LogoutModel(SignInManager signInManager, ILogger logger) + { + _signInManager = signInManager; + _logger = logger; + } + + public void OnGet() + { + } + + public async Task OnPost(string returnUrl = null) + { + await _signInManager.SignOutAsync(); + _logger.LogInformation("User logged out."); + if (returnUrl != null) + { + return LocalRedirect(returnUrl); + } + else + { + return Page(); + } + } + } +} \ No newline at end of file diff --git a/Areas/Identity/Pages/Account/Manage/ChangePassword.cshtml b/Areas/Identity/Pages/Account/Manage/ChangePassword.cshtml new file mode 100644 index 0000000..5f3e58c --- /dev/null +++ b/Areas/Identity/Pages/Account/Manage/ChangePassword.cshtml @@ -0,0 +1,35 @@ +@page +@model ChangePasswordModel +@{ + ViewData["Title"] = "Change password"; +} + +

@ViewData["Title"]

+@await Html.PartialAsync("_StatusMessage", Model.StatusMessage) +
+
+
+
+
+ + + +
+
+ + + +
+
+ + + +
+ +
+
+
+ +@section Scripts { + +} \ No newline at end of file diff --git a/Areas/Identity/Pages/Account/Manage/ChangePassword.cshtml.cs b/Areas/Identity/Pages/Account/Manage/ChangePassword.cshtml.cs new file mode 100644 index 0000000..057b434 --- /dev/null +++ b/Areas/Identity/Pages/Account/Manage/ChangePassword.cshtml.cs @@ -0,0 +1,103 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Identity; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; +using Microsoft.Extensions.Logging; +using RazorStripe.Data; +using RazorStripe.Data.Models; + +namespace RazorStripe.Areas.Identity.Pages.Account.Manage +{ + public class ChangePasswordModel : PageModel + { + private readonly UserManager _userManager; + private readonly SignInManager _signInManager; + private readonly ILogger _logger; + + public ChangePasswordModel( + UserManager userManager, + SignInManager signInManager, + ILogger logger) + { + _userManager = userManager; + _signInManager = signInManager; + _logger = logger; + } + + [BindProperty] + public InputModel Input { get; set; } + + [TempData] + public string StatusMessage { get; set; } + + public class InputModel + { + [Required] + [DataType(DataType.Password)] + [Display(Name = "Current password")] + public string OldPassword { get; set; } + + [Required] + [StringLength(100, ErrorMessage = "The {0} must be at least {2} and at max {1} characters long.", MinimumLength = 6)] + [DataType(DataType.Password)] + [Display(Name = "New password")] + public string NewPassword { get; set; } + + [DataType(DataType.Password)] + [Display(Name = "Confirm new password")] + [Compare("NewPassword", ErrorMessage = "The new password and confirmation password do not match.")] + public string ConfirmPassword { get; set; } + } + + public async Task OnGetAsync() + { + var user = await _userManager.GetUserAsync(User); + if (user == null) + { + return NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."); + } + + var hasPassword = await _userManager.HasPasswordAsync(user); + if (!hasPassword) + { + return RedirectToPage("./SetPassword"); + } + + return Page(); + } + + public async Task OnPostAsync() + { + if (!ModelState.IsValid) + { + return Page(); + } + + var user = await _userManager.GetUserAsync(User); + if (user == null) + { + return NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."); + } + + var changePasswordResult = await _userManager.ChangePasswordAsync(user, Input.OldPassword, Input.NewPassword); + if (!changePasswordResult.Succeeded) + { + foreach (var error in changePasswordResult.Errors) + { + ModelState.AddModelError(string.Empty, error.Description); + } + return Page(); + } + + await _signInManager.RefreshSignInAsync(user); + _logger.LogInformation("User changed their password successfully."); + StatusMessage = "Your password has been changed."; + + return RedirectToPage(); + } + } +} diff --git a/Areas/Identity/Pages/Account/Manage/DeletePersonalData.cshtml b/Areas/Identity/Pages/Account/Manage/DeletePersonalData.cshtml new file mode 100644 index 0000000..4a8eb27 --- /dev/null +++ b/Areas/Identity/Pages/Account/Manage/DeletePersonalData.cshtml @@ -0,0 +1,34 @@ +@page +@model DeletePersonalDataModel +@{ + ViewData["Title"] = "Delete Personal Data"; + ViewData["ActivePage"] = ManageNavPages.DeletePersonalData; +} + +

@ViewData["Title"]

+ + + +
+
+
+ @if (Model.RequirePassword) + { +
+ + + +
+ } + +
+
+ +@section Scripts { + +} \ No newline at end of file diff --git a/Areas/Identity/Pages/Account/Manage/DeletePersonalData.cshtml.cs b/Areas/Identity/Pages/Account/Manage/DeletePersonalData.cshtml.cs new file mode 100644 index 0000000..3f707d5 --- /dev/null +++ b/Areas/Identity/Pages/Account/Manage/DeletePersonalData.cshtml.cs @@ -0,0 +1,85 @@ +using System; +using System.ComponentModel.DataAnnotations; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Identity; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; +using Microsoft.Extensions.Logging; +using RazorStripe.Data; +using RazorStripe.Data.Models; + +namespace RazorStripe.Areas.Identity.Pages.Account.Manage +{ + public class DeletePersonalDataModel : PageModel + { + private readonly UserManager _userManager; + private readonly SignInManager _signInManager; + private readonly ILogger _logger; + + public DeletePersonalDataModel( + UserManager userManager, + SignInManager signInManager, + ILogger logger) + { + _userManager = userManager; + _signInManager = signInManager; + _logger = logger; + } + + [BindProperty] + public InputModel Input { get; set; } + + public class InputModel + { + [Required] + [DataType(DataType.Password)] + public string Password { get; set; } + } + + public bool RequirePassword { get; set; } + + public async Task OnGet() + { + var user = await _userManager.GetUserAsync(User); + if (user == null) + { + return NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."); + } + + RequirePassword = await _userManager.HasPasswordAsync(user); + return Page(); + } + + public async Task OnPostAsync() + { + var user = await _userManager.GetUserAsync(User); + if (user == null) + { + return NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."); + } + + RequirePassword = await _userManager.HasPasswordAsync(user); + if (RequirePassword) + { + if (!await _userManager.CheckPasswordAsync(user, Input.Password)) + { + ModelState.AddModelError(string.Empty, "Password not correct."); + return Page(); + } + } + + var result = await _userManager.DeleteAsync(user); + var userId = await _userManager.GetUserIdAsync(user); + if (!result.Succeeded) + { + throw new InvalidOperationException($"Unexpected error occurred deleteing user with ID '{userId}'."); + } + + await _signInManager.SignOutAsync(); + + _logger.LogInformation("User with ID '{UserId}' deleted themselves.", userId); + + return Redirect("~/"); + } + } +} \ No newline at end of file diff --git a/Areas/Identity/Pages/Account/Manage/Disable2fa.cshtml b/Areas/Identity/Pages/Account/Manage/Disable2fa.cshtml new file mode 100644 index 0000000..f64f11e --- /dev/null +++ b/Areas/Identity/Pages/Account/Manage/Disable2fa.cshtml @@ -0,0 +1,26 @@ +@page +@model Disable2faModel +@{ + ViewData["Title"] = "Disable two-factor authentication (2FA)"; + ViewData["ActivePage"] = ManageNavPages.TwoFactorAuthentication; +} + +@await Html.PartialAsync("_StatusMessage", Model.StatusMessage) +

@ViewData["Title"]

+ + + +
+
+ +
+
\ No newline at end of file diff --git a/Areas/Identity/Pages/Account/Manage/Disable2fa.cshtml.cs b/Areas/Identity/Pages/Account/Manage/Disable2fa.cshtml.cs new file mode 100644 index 0000000..184a23e --- /dev/null +++ b/Areas/Identity/Pages/Account/Manage/Disable2fa.cshtml.cs @@ -0,0 +1,65 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Identity; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; +using Microsoft.Extensions.Logging; +using RazorStripe.Data; +using RazorStripe.Data.Models; + +namespace RazorStripe.Areas.Identity.Pages.Account.Manage +{ + public class Disable2faModel : PageModel + { + private readonly UserManager _userManager; + private readonly ILogger _logger; + + public Disable2faModel( + UserManager userManager, + ILogger logger) + { + _userManager = userManager; + _logger = logger; + } + + [TempData] + public string StatusMessage { get; set; } + + public async Task OnGet() + { + var user = await _userManager.GetUserAsync(User); + if (user == null) + { + return NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."); + } + + if (!await _userManager.GetTwoFactorEnabledAsync(user)) + { + throw new InvalidOperationException($"Cannot disable 2FA for user with ID '{_userManager.GetUserId(User)}' as it's not currently enabled."); + } + + return Page(); + } + + public async Task OnPostAsync() + { + var user = await _userManager.GetUserAsync(User); + if (user == null) + { + return NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."); + } + + var disable2faResult = await _userManager.SetTwoFactorEnabledAsync(user, false); + if (!disable2faResult.Succeeded) + { + throw new InvalidOperationException($"Unexpected error occurred disabling 2FA for user with ID '{_userManager.GetUserId(User)}'."); + } + + _logger.LogInformation("User with ID '{UserId}' has disabled 2fa.", _userManager.GetUserId(User)); + StatusMessage = "2fa has been disabled. You can reenable 2fa when you setup an authenticator app"; + return RedirectToPage("./TwoFactorAuthentication"); + } + } +} \ No newline at end of file diff --git a/Areas/Identity/Pages/Account/Manage/DownloadPersonalData.cshtml b/Areas/Identity/Pages/Account/Manage/DownloadPersonalData.cshtml new file mode 100644 index 0000000..0bf709f --- /dev/null +++ b/Areas/Identity/Pages/Account/Manage/DownloadPersonalData.cshtml @@ -0,0 +1,12 @@ +@page +@model DownloadPersonalDataModel +@{ + ViewData["Title"] = "Download Your Data"; + ViewData["ActivePage"] = ManageNavPages.DownloadPersonalData; +} + +

@ViewData["Title"]

+ +@section Scripts { + +} \ No newline at end of file diff --git a/Areas/Identity/Pages/Account/Manage/DownloadPersonalData.cshtml.cs b/Areas/Identity/Pages/Account/Manage/DownloadPersonalData.cshtml.cs new file mode 100644 index 0000000..d145d3b --- /dev/null +++ b/Areas/Identity/Pages/Account/Manage/DownloadPersonalData.cshtml.cs @@ -0,0 +1,52 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Identity; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; +using Microsoft.Extensions.Logging; +using Newtonsoft.Json; +using RazorStripe.Data; +using RazorStripe.Data.Models; + +namespace RazorStripe.Areas.Identity.Pages.Account.Manage +{ + public class DownloadPersonalDataModel : PageModel + { + private readonly UserManager _userManager; + private readonly ILogger _logger; + + public DownloadPersonalDataModel( + UserManager userManager, + ILogger logger) + { + _userManager = userManager; + _logger = logger; + } + + public async Task OnPostAsync() + { + var user = await _userManager.GetUserAsync(User); + if (user == null) + { + return NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."); + } + + _logger.LogInformation("User with ID '{UserId}' asked for their personal data.", _userManager.GetUserId(User)); + + // Only include personal data for download + var personalData = new Dictionary(); + var personalDataProps = typeof(ApplicationUser).GetProperties().Where( + prop => Attribute.IsDefined(prop, typeof(PersonalDataAttribute))); + foreach (var p in personalDataProps) + { + personalData.Add(p.Name, p.GetValue(user)?.ToString() ?? "null"); + } + + Response.Headers.Add("Content-Disposition", "attachment; filename=PersonalData.json"); + return new FileContentResult(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(personalData)), "text/json"); + } + } +} diff --git a/Areas/Identity/Pages/Account/Manage/EnableAuthenticator.cshtml b/Areas/Identity/Pages/Account/Manage/EnableAuthenticator.cshtml new file mode 100644 index 0000000..abdd39c --- /dev/null +++ b/Areas/Identity/Pages/Account/Manage/EnableAuthenticator.cshtml @@ -0,0 +1,54 @@ +@page +@model EnableAuthenticatorModel +@{ + ViewData["Title"] = "Configure authenticator app"; + ViewData["ActivePage"] = ManageNavPages.TwoFactorAuthentication; +} + +@await Html.PartialAsync("_StatusMessage", Model.StatusMessage) +

@ViewData["Title"]

+
+

To use an authenticator app go through the following steps:

+
    +
  1. +

    + Download a two-factor authenticator app like Microsoft Authenticator for + Windows Phone, + Android and + iOS or + Google Authenticator for + Android and + iOS. +

    +
  2. +
  3. +

    Scan the QR Code or enter this key @Model.SharedKey into your two factor authenticator app. Spaces and casing do not matter.

    +
    To enable QR code generation please read our documentation.
    +
    +
    +
  4. +
  5. +

    + Once you have scanned the QR code or input the key above, your two factor authentication app will provide you + with a unique code. Enter the code in the confirmation box below. +

    +
    +
    +
    +
    + + + +
    + +
    +
    +
    +
    +
  6. +
+
+ +@section Scripts { + +} \ No newline at end of file diff --git a/Areas/Identity/Pages/Account/Manage/EnableAuthenticator.cshtml.cs b/Areas/Identity/Pages/Account/Manage/EnableAuthenticator.cshtml.cs new file mode 100644 index 0000000..19326ac --- /dev/null +++ b/Areas/Identity/Pages/Account/Manage/EnableAuthenticator.cshtml.cs @@ -0,0 +1,158 @@ +using System; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; +using System.Collections.Generic; +using System.Text; +using System.Text.Encodings.Web; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Identity; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; +using Microsoft.Extensions.Logging; +using RazorStripe.Data; +using RazorStripe.Data.Models; + +namespace RazorStripe.Areas.Identity.Pages.Account.Manage +{ + public class EnableAuthenticatorModel : PageModel + { + private readonly UserManager _userManager; + private readonly ILogger _logger; + private readonly UrlEncoder _urlEncoder; + + private const string AuthenticatorUriFormat = "otpauth://totp/{0}:{1}?secret={2}&issuer={0}&digits=6"; + + public EnableAuthenticatorModel( + UserManager userManager, + ILogger logger, + UrlEncoder urlEncoder) + { + _userManager = userManager; + _logger = logger; + _urlEncoder = urlEncoder; + } + + public string SharedKey { get; set; } + + public string AuthenticatorUri { get; set; } + + [TempData] + public string[] RecoveryCodes { get; set; } + + [TempData] + public string StatusMessage { get; set; } + + [BindProperty] + public InputModel Input { get; set; } + + public class InputModel + { + [Required] + [StringLength(7, ErrorMessage = "The {0} must be at least {2} and at max {1} characters long.", MinimumLength = 6)] + [DataType(DataType.Text)] + [Display(Name = "Verification Code")] + public string Code { get; set; } + } + + public async Task OnGetAsync() + { + var user = await _userManager.GetUserAsync(User); + if (user == null) + { + return NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."); + } + + await LoadSharedKeyAndQrCodeUriAsync(user); + + return Page(); + } + + public async Task OnPostAsync() + { + var user = await _userManager.GetUserAsync(User); + if (user == null) + { + return NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."); + } + + if (!ModelState.IsValid) + { + await LoadSharedKeyAndQrCodeUriAsync(user); + return Page(); + } + + // Strip spaces and hypens + var verificationCode = Input.Code.Replace(" ", string.Empty).Replace("-", string.Empty); + + var is2faTokenValid = await _userManager.VerifyTwoFactorTokenAsync( + user, _userManager.Options.Tokens.AuthenticatorTokenProvider, verificationCode); + + if (!is2faTokenValid) + { + ModelState.AddModelError("Input.Code", "Verification code is invalid."); + await LoadSharedKeyAndQrCodeUriAsync(user); + return Page(); + } + + await _userManager.SetTwoFactorEnabledAsync(user, true); + var userId = await _userManager.GetUserIdAsync(user); + _logger.LogInformation("User with ID '{UserId}' has enabled 2FA with an authenticator app.", userId); + + StatusMessage = "Your authenticator app has been verified."; + + if (await _userManager.CountRecoveryCodesAsync(user) == 0) + { + var recoveryCodes = await _userManager.GenerateNewTwoFactorRecoveryCodesAsync(user, 10); + RecoveryCodes = recoveryCodes.ToArray(); + return RedirectToPage("./ShowRecoveryCodes"); + } + else + { + return RedirectToPage("./TwoFactorAuthentication"); + } + } + + private async Task LoadSharedKeyAndQrCodeUriAsync(ApplicationUser user) + { + // Load the authenticator key & QR code URI to display on the form + var unformattedKey = await _userManager.GetAuthenticatorKeyAsync(user); + if (string.IsNullOrEmpty(unformattedKey)) + { + await _userManager.ResetAuthenticatorKeyAsync(user); + unformattedKey = await _userManager.GetAuthenticatorKeyAsync(user); + } + + SharedKey = FormatKey(unformattedKey); + + var email = await _userManager.GetEmailAsync(user); + AuthenticatorUri = GenerateQrCodeUri(email, unformattedKey); + } + + private string FormatKey(string unformattedKey) + { + var result = new StringBuilder(); + int currentPosition = 0; + while (currentPosition + 4 < unformattedKey.Length) + { + result.Append(unformattedKey.Substring(currentPosition, 4)).Append(" "); + currentPosition += 4; + } + if (currentPosition < unformattedKey.Length) + { + result.Append(unformattedKey.Substring(currentPosition)); + } + + return result.ToString().ToLowerInvariant(); + } + + private string GenerateQrCodeUri(string email, string unformattedKey) + { + return string.Format( + AuthenticatorUriFormat, + _urlEncoder.Encode("RazorStripe"), + _urlEncoder.Encode(email), + unformattedKey); + } + } +} diff --git a/Areas/Identity/Pages/Account/Manage/ExternalLogins.cshtml b/Areas/Identity/Pages/Account/Manage/ExternalLogins.cshtml new file mode 100644 index 0000000..31027a6 --- /dev/null +++ b/Areas/Identity/Pages/Account/Manage/ExternalLogins.cshtml @@ -0,0 +1,52 @@ +@page +@model ExternalLoginsModel +@{ + ViewData["Title"] = "Manage your external logins"; +} + +@await Html.PartialAsync("_StatusMessage", Model.StatusMessage) +@if (Model.CurrentLogins?.Count > 0) +{ +

Registered Logins

+ + + @foreach (var login in Model.CurrentLogins) + { + + + + + } + +
@login.LoginProvider + @if (Model.ShowRemoveButton) + { +
+
+ + + +
+
+ } + else + { + @:   + } +
+} +@if (Model.OtherLogins?.Count > 0) +{ +

Add another service to log in.

+
+ +} \ No newline at end of file diff --git a/Areas/Identity/Pages/Account/Manage/ExternalLogins.cshtml.cs b/Areas/Identity/Pages/Account/Manage/ExternalLogins.cshtml.cs new file mode 100644 index 0000000..6ce1c11 --- /dev/null +++ b/Areas/Identity/Pages/Account/Manage/ExternalLogins.cshtml.cs @@ -0,0 +1,110 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Authentication; +using Microsoft.AspNetCore.Identity; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; +using RazorStripe.Data; +using RazorStripe.Data.Models; + +namespace RazorStripe.Areas.Identity.Pages.Account.Manage +{ + public class ExternalLoginsModel : PageModel + { + private readonly UserManager _userManager; + private readonly SignInManager _signInManager; + + public ExternalLoginsModel( + UserManager userManager, + SignInManager signInManager) + { + _userManager = userManager; + _signInManager = signInManager; + } + + public IList CurrentLogins { get; set; } + + public IList OtherLogins { get; set; } + + public bool ShowRemoveButton { get; set; } + + [TempData] + public string StatusMessage { get; set; } + + public async Task OnGetAsync() + { + var user = await _userManager.GetUserAsync(User); + if (user == null) + { + return NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."); + } + + CurrentLogins = await _userManager.GetLoginsAsync(user); + OtherLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()) + .Where(auth => CurrentLogins.All(ul => auth.Name != ul.LoginProvider)) + .ToList(); + ShowRemoveButton = user.PasswordHash != null || CurrentLogins.Count > 1; + return Page(); + } + + public async Task OnPostRemoveLoginAsync(string loginProvider, string providerKey) + { + var user = await _userManager.GetUserAsync(User); + if (user == null) + { + return NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."); + } + + var result = await _userManager.RemoveLoginAsync(user, loginProvider, providerKey); + if (!result.Succeeded) + { + var userId = await _userManager.GetUserIdAsync(user); + throw new InvalidOperationException($"Unexpected error occurred removing external login for user with ID '{userId}'."); + } + + await _signInManager.RefreshSignInAsync(user); + StatusMessage = "The external login was removed."; + return RedirectToPage(); + } + + public async Task OnPostLinkLoginAsync(string provider) + { + // Clear the existing external cookie to ensure a clean login process + await HttpContext.SignOutAsync(IdentityConstants.ExternalScheme); + + // Request a redirect to the external login provider to link a login for the current user + var redirectUrl = Url.Page("./ExternalLogins", pageHandler: "LinkLoginCallback"); + var properties = _signInManager.ConfigureExternalAuthenticationProperties(provider, redirectUrl, _userManager.GetUserId(User)); + return new ChallengeResult(provider, properties); + } + + public async Task OnGetLinkLoginCallbackAsync() + { + var user = await _userManager.GetUserAsync(User); + if (user == null) + { + return NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."); + } + + var info = await _signInManager.GetExternalLoginInfoAsync(await _userManager.GetUserIdAsync(user)); + if (info == null) + { + throw new InvalidOperationException($"Unexpected error occurred loading external login info for user with ID '{user.Id}'."); + } + + var result = await _userManager.AddLoginAsync(user, info); + if (!result.Succeeded) + { + throw new InvalidOperationException($"Unexpected error occurred adding external login for user with ID '{user.Id}'."); + } + + // Clear the existing external cookie to ensure a clean login process + await HttpContext.SignOutAsync(IdentityConstants.ExternalScheme); + + StatusMessage = "The external login was added."; + return RedirectToPage(); + } + } +} diff --git a/Areas/Identity/Pages/Account/Manage/GenerateRecoveryCodes.cshtml b/Areas/Identity/Pages/Account/Manage/GenerateRecoveryCodes.cshtml new file mode 100644 index 0000000..7d8d822 --- /dev/null +++ b/Areas/Identity/Pages/Account/Manage/GenerateRecoveryCodes.cshtml @@ -0,0 +1,27 @@ +@page +@model GenerateRecoveryCodesModel +@{ + ViewData["Title"] = "Generate two-factor authentication (2FA) recovery codes"; + ViewData["ActivePage"] = ManageNavPages.TwoFactorAuthentication; +} + +@await Html.PartialAsync("_StatusMessage", Model.StatusMessage) +

@ViewData["Title"]

+ +
+
+ +
+
\ No newline at end of file diff --git a/Areas/Identity/Pages/Account/Manage/GenerateRecoveryCodes.cshtml.cs b/Areas/Identity/Pages/Account/Manage/GenerateRecoveryCodes.cshtml.cs new file mode 100644 index 0000000..b1407cd --- /dev/null +++ b/Areas/Identity/Pages/Account/Manage/GenerateRecoveryCodes.cshtml.cs @@ -0,0 +1,74 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Identity; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; +using Microsoft.Extensions.Logging; +using RazorStripe.Data; +using RazorStripe.Data.Models; + +namespace RazorStripe.Areas.Identity.Pages.Account.Manage +{ + public class GenerateRecoveryCodesModel : PageModel + { + private readonly UserManager _userManager; + private readonly ILogger _logger; + + public GenerateRecoveryCodesModel( + UserManager userManager, + ILogger logger) + { + _userManager = userManager; + _logger = logger; + } + + [TempData] + public string[] RecoveryCodes { get; set; } + + [TempData] + public string StatusMessage { get; set; } + + public async Task OnGetAsync() + { + var user = await _userManager.GetUserAsync(User); + if (user == null) + { + return NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."); + } + + var isTwoFactorEnabled = await _userManager.GetTwoFactorEnabledAsync(user); + if (!isTwoFactorEnabled) + { + var userId = await _userManager.GetUserIdAsync(user); + throw new InvalidOperationException($"Cannot generate recovery codes for user with ID '{userId}' because they do not have 2FA enabled."); + } + + return Page(); + } + + public async Task OnPostAsync() + { + var user = await _userManager.GetUserAsync(User); + if (user == null) + { + return NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."); + } + + var isTwoFactorEnabled = await _userManager.GetTwoFactorEnabledAsync(user); + var userId = await _userManager.GetUserIdAsync(user); + if (!isTwoFactorEnabled) + { + throw new InvalidOperationException($"Cannot generate recovery codes for user with ID '{userId}' as they do not have 2FA enabled."); + } + + var recoveryCodes = await _userManager.GenerateNewTwoFactorRecoveryCodesAsync(user, 10); + RecoveryCodes = recoveryCodes.ToArray(); + + _logger.LogInformation("User with ID '{UserId}' has generated new 2FA recovery codes.", userId); + StatusMessage = "You have generated new recovery codes."; + return RedirectToPage("./ShowRecoveryCodes"); + } + } +} \ No newline at end of file diff --git a/Areas/Identity/Pages/Account/Manage/Index.cshtml b/Areas/Identity/Pages/Account/Manage/Index.cshtml new file mode 100644 index 0000000..76e987c --- /dev/null +++ b/Areas/Identity/Pages/Account/Manage/Index.cshtml @@ -0,0 +1,57 @@ +@page +@model IndexModel +@{ + ViewData["Title"] = "Profile"; +} + +

@ViewData["Title"]

+@await Html.PartialAsync("_StatusMessage", Model.StatusMessage) +
+
+
+
+
+ + +
+
+ + @if (Model.IsEmailConfirmed) + { +
+ + +
+ } + else + { + + + } + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + +
+
+
+ +@section Scripts { + +} \ No newline at end of file diff --git a/Areas/Identity/Pages/Account/Manage/Index.cshtml.cs b/Areas/Identity/Pages/Account/Manage/Index.cshtml.cs new file mode 100644 index 0000000..a844e6e --- /dev/null +++ b/Areas/Identity/Pages/Account/Manage/Index.cshtml.cs @@ -0,0 +1,181 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Data.SqlClient; +using System.Linq; +using System.Text.Encodings.Web; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Identity; +using Microsoft.AspNetCore.Identity.UI.Services; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; +using Microsoft.AspNetCore.Mvc.Rendering; +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Logging; +using RazorStripe.Data; +using RazorStripe.Data.Models; + +namespace RazorStripe.Areas.Identity.Pages.Account.Manage +{ + public partial class IndexModel : PageModel + { + private readonly SignInManager _signInManager; + private readonly UserManager _userManager; + private readonly ILogger _logger; + private readonly IEmailSender _emailSender; + private readonly RoleManager _roleManager; + private readonly ApplicationDbContext _db; + + public IndexModel( + UserManager userManager, + SignInManager signInManager, + ILogger logger, + IEmailSender emailSender, + RoleManager roleManager, + ApplicationDbContext db) + { + _roleManager = roleManager; + _db = db; + _userManager = userManager; + _signInManager = signInManager; + _logger = logger; + _emailSender = emailSender; + } + + public string Username { get; set; } + + public bool IsEmailConfirmed { get; set; } + + [TempData] + public string StatusMessage { get; set; } + + [BindProperty] + public InputModel Input { get; set; } + + public class InputModel + { + [Required] + [Display(Name = "First Name")] + public string FirstName { get; set; } + + [Required] + [Display(Name = "Last Name")] + public string LastName { get; set; } + + [Required] + [EmailAddress] + public string Email { get; set; } + + [Phone] + [Display(Name = "Phone number")] + public string PhoneNumber { get; set; } + + } + + public async Task OnGetAsync() + { + var user = await _userManager.GetUserAsync(User); + if (user == null) + { + return NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."); + } + + var userName = await _userManager.GetUserNameAsync(user); + var email = await _userManager.GetEmailAsync(user); + var phoneNumber = await _userManager.GetPhoneNumberAsync(user); + + Username = userName; + + Input = new InputModel + { + FirstName = user.FirstName, + LastName = user.LastName, + Email = email, + PhoneNumber = phoneNumber, + }; + + IsEmailConfirmed = await _userManager.IsEmailConfirmedAsync(user); + + return Page(); + } + + public async Task OnPostAsync() + { + if (!ModelState.IsValid) + { + return Page(); + } + + var user = await _userManager.GetUserAsync(User); + if (user == null) + { + return NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."); + } + + var email = await _userManager.GetEmailAsync(user); + if (Input.Email != email) + { + var setEmailResult = await _userManager.SetEmailAsync(user, Input.Email); + if (!setEmailResult.Succeeded) + { + var userId = await _userManager.GetUserIdAsync(user); + throw new InvalidOperationException($"Unexpected error occurred setting email for user with ID '{userId}'."); + } + } + + var phoneNumber = await _userManager.GetPhoneNumberAsync(user); + if (Input.PhoneNumber != phoneNumber) + { + var setPhoneResult = await _userManager.SetPhoneNumberAsync(user, Input.PhoneNumber); + if (!setPhoneResult.Succeeded) + { + var userId = await _userManager.GetUserIdAsync(user); + throw new InvalidOperationException($"Unexpected error occurred setting phone number for user with ID '{userId}'."); + } + } + + + ApplicationUser userInDb = _db.Users.Where(u => u.Email.ToLower().Equals(Input.Email.ToLower())).FirstOrDefault(); + userInDb.FirstName = Input.FirstName; + userInDb.LastName = Input.LastName; + + + await _db.SaveChangesAsync(); + + await _signInManager.RefreshSignInAsync(user); + StatusMessage = "Your profile has been updated"; + return RedirectToPage(); + } + + public async Task OnPostSendVerificationEmailAsync() + { + if (!ModelState.IsValid) + { + return Page(); + } + + var user = await _userManager.GetUserAsync(User); + if (user == null) + { + return NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."); + } + + var userId = await _userManager.GetUserIdAsync(user); + var email = await _userManager.GetEmailAsync(user); + var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); + var callbackUrl = Url.Page( + "/Account/ConfirmEmail", + pageHandler: null, + values: new { userId = userId, code = code }, + protocol: Request.Scheme); + await _emailSender.SendEmailAsync( + email, + "Confirm your email", + $"Please confirm your account by clicking here."); + + StatusMessage = "Verification email sent. Please check your email."; + return RedirectToPage(); + } + + } +} \ No newline at end of file diff --git a/Areas/Identity/Pages/Account/Manage/ManageNavPages.cs b/Areas/Identity/Pages/Account/Manage/ManageNavPages.cs new file mode 100644 index 0000000..2cf1db0 --- /dev/null +++ b/Areas/Identity/Pages/Account/Manage/ManageNavPages.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc.Rendering; + +namespace RazorStripe.Areas.Identity.Pages.Account.Manage +{ + public static class ManageNavPages + { + public static string Index => "Index"; + + public static string ChangePassword => "ChangePassword"; + + public static string DownloadPersonalData => "DownloadPersonalData"; + + public static string DeletePersonalData => "DeletePersonalData"; + + public static string ExternalLogins => "ExternalLogins"; + + public static string PersonalData => "PersonalData"; + + public static string TwoFactorAuthentication => "TwoFactorAuthentication"; + + public static string IndexNavClass(ViewContext viewContext) => PageNavClass(viewContext, Index); + + public static string ChangePasswordNavClass(ViewContext viewContext) => PageNavClass(viewContext, ChangePassword); + + public static string DownloadPersonalDataNavClass(ViewContext viewContext) => PageNavClass(viewContext, DownloadPersonalData); + + public static string DeletePersonalDataNavClass(ViewContext viewContext) => PageNavClass(viewContext, DeletePersonalData); + + public static string ExternalLoginsNavClass(ViewContext viewContext) => PageNavClass(viewContext, ExternalLogins); + + public static string PersonalDataNavClass(ViewContext viewContext) => PageNavClass(viewContext, PersonalData); + + public static string TwoFactorAuthenticationNavClass(ViewContext viewContext) => PageNavClass(viewContext, TwoFactorAuthentication); + + public static string PageNavClass(ViewContext viewContext, string page) + { + var activePage = viewContext.ViewData["ActivePage"] as string + ?? System.IO.Path.GetFileNameWithoutExtension(viewContext.ActionDescriptor.DisplayName); + return string.Equals(activePage, page, StringComparison.OrdinalIgnoreCase) ? "active" : null; + } + } +} diff --git a/Areas/Identity/Pages/Account/Manage/PersonalData.cshtml b/Areas/Identity/Pages/Account/Manage/PersonalData.cshtml new file mode 100644 index 0000000..0aa5213 --- /dev/null +++ b/Areas/Identity/Pages/Account/Manage/PersonalData.cshtml @@ -0,0 +1,27 @@ +@page +@model PersonalDataModel +@{ + ViewData["Title"] = "Personal Data"; + ViewData["ActivePage"] = ManageNavPages.PersonalData; +} + +

@ViewData["Title"]

+ +
+
+

Your account contains personal data that you have given us. This page allows you to download or delete that data.

+

+ Deleting this data will permanently remove your account, and this cannot be recovered. +

+
+ +
+

+ Delete +

+
+
+ +@section Scripts { + +} \ No newline at end of file diff --git a/Areas/Identity/Pages/Account/Manage/PersonalData.cshtml.cs b/Areas/Identity/Pages/Account/Manage/PersonalData.cshtml.cs new file mode 100644 index 0000000..279c0c2 --- /dev/null +++ b/Areas/Identity/Pages/Account/Manage/PersonalData.cshtml.cs @@ -0,0 +1,35 @@ +using System.Threading.Tasks; +using Microsoft.AspNetCore.Identity; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; +using Microsoft.Extensions.Logging; +using RazorStripe.Data; +using RazorStripe.Data.Models; + +namespace RazorStripe.Areas.Identity.Pages.Account.Manage +{ + public class PersonalDataModel : PageModel + { + private readonly UserManager _userManager; + private readonly ILogger _logger; + + public PersonalDataModel( + UserManager userManager, + ILogger logger) + { + _userManager = userManager; + _logger = logger; + } + + public async Task OnGet() + { + var user = await _userManager.GetUserAsync(User); + if (user == null) + { + return NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."); + } + + return Page(); + } + } +} \ No newline at end of file diff --git a/Areas/Identity/Pages/Account/Manage/ResetAuthenticator.cshtml b/Areas/Identity/Pages/Account/Manage/ResetAuthenticator.cshtml new file mode 100644 index 0000000..d4eb529 --- /dev/null +++ b/Areas/Identity/Pages/Account/Manage/ResetAuthenticator.cshtml @@ -0,0 +1,24 @@ +@page +@model ResetAuthenticatorModel +@{ + ViewData["Title"] = "Reset authenticator key"; + ViewData["ActivePage"] = ManageNavPages.TwoFactorAuthentication; +} + +@await Html.PartialAsync("_StatusMessage", Model.StatusMessage) +

@ViewData["Title"]

+ +
+
+ +
+
\ No newline at end of file diff --git a/Areas/Identity/Pages/Account/Manage/ResetAuthenticator.cshtml.cs b/Areas/Identity/Pages/Account/Manage/ResetAuthenticator.cshtml.cs new file mode 100644 index 0000000..64e5876 --- /dev/null +++ b/Areas/Identity/Pages/Account/Manage/ResetAuthenticator.cshtml.cs @@ -0,0 +1,62 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Identity; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; +using Microsoft.Extensions.Logging; +using RazorStripe.Data; +using RazorStripe.Data.Models; + +namespace RazorStripe.Areas.Identity.Pages.Account.Manage +{ + public class ResetAuthenticatorModel : PageModel + { + UserManager _userManager; + private readonly SignInManager _signInManager; + ILogger _logger; + + public ResetAuthenticatorModel( + UserManager userManager, + SignInManager signInManager, + ILogger logger) + { + _userManager = userManager; + _signInManager = signInManager; + _logger = logger; + } + + [TempData] + public string StatusMessage { get; set; } + + public async Task OnGet() + { + var user = await _userManager.GetUserAsync(User); + if (user == null) + { + return NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."); + } + + return Page(); + } + + public async Task OnPostAsync() + { + var user = await _userManager.GetUserAsync(User); + if (user == null) + { + return NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."); + } + + await _userManager.SetTwoFactorEnabledAsync(user, false); + await _userManager.ResetAuthenticatorKeyAsync(user); + _logger.LogInformation("User with ID '{UserId}' has reset their authentication app key.", user.Id); + + await _signInManager.RefreshSignInAsync(user); + StatusMessage = "Your authenticator app key has been reset, you will need to configure your authenticator app using the new key."; + + return RedirectToPage("./EnableAuthenticator"); + } + } +} \ No newline at end of file diff --git a/Areas/Identity/Pages/Account/Manage/SetPassword.cshtml b/Areas/Identity/Pages/Account/Manage/SetPassword.cshtml new file mode 100644 index 0000000..eadd2f2 --- /dev/null +++ b/Areas/Identity/Pages/Account/Manage/SetPassword.cshtml @@ -0,0 +1,35 @@ +@page +@model SetPasswordModel +@{ + ViewData["Title"] = "Set password"; + ViewData["ActivePage"] = ManageNavPages.ChangePassword; +} + +

Set your password

+@await Html.PartialAsync("_StatusMessage", Model.StatusMessage) +

+ You do not have a local username/password for this site. Add a local + account so you can log in without an external login. +

+
+
+
+
+
+ + + +
+
+ + + +
+ +
+
+
+ +@section Scripts { + +} \ No newline at end of file diff --git a/Areas/Identity/Pages/Account/Manage/SetPassword.cshtml.cs b/Areas/Identity/Pages/Account/Manage/SetPassword.cshtml.cs new file mode 100644 index 0000000..e9bb147 --- /dev/null +++ b/Areas/Identity/Pages/Account/Manage/SetPassword.cshtml.cs @@ -0,0 +1,94 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Identity; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; +using RazorStripe.Data; +using RazorStripe.Data.Models; + +namespace RazorStripe.Areas.Identity.Pages.Account.Manage +{ + public class SetPasswordModel : PageModel + { + private readonly UserManager _userManager; + private readonly SignInManager _signInManager; + + public SetPasswordModel( + UserManager userManager, + SignInManager signInManager) + { + _userManager = userManager; + _signInManager = signInManager; + } + + [BindProperty] + public InputModel Input { get; set; } + + [TempData] + public string StatusMessage { get; set; } + + public class InputModel + { + [Required] + [StringLength(100, ErrorMessage = "The {0} must be at least {2} and at max {1} characters long.", MinimumLength = 6)] + [DataType(DataType.Password)] + [Display(Name = "New password")] + public string NewPassword { get; set; } + + [DataType(DataType.Password)] + [Display(Name = "Confirm new password")] + [Compare("NewPassword", ErrorMessage = "The new password and confirmation password do not match.")] + public string ConfirmPassword { get; set; } + } + + public async Task OnGetAsync() + { + var user = await _userManager.GetUserAsync(User); + if (user == null) + { + return NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."); + } + + var hasPassword = await _userManager.HasPasswordAsync(user); + + if (hasPassword) + { + return RedirectToPage("./ChangePassword"); + } + + return Page(); + } + + public async Task OnPostAsync() + { + if (!ModelState.IsValid) + { + return Page(); + } + + var user = await _userManager.GetUserAsync(User); + if (user == null) + { + return NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."); + } + + var addPasswordResult = await _userManager.AddPasswordAsync(user, Input.NewPassword); + if (!addPasswordResult.Succeeded) + { + foreach (var error in addPasswordResult.Errors) + { + ModelState.AddModelError(string.Empty, error.Description); + } + return Page(); + } + + await _signInManager.RefreshSignInAsync(user); + StatusMessage = "Your password has been set."; + + return RedirectToPage(); + } + } +} diff --git a/Areas/Identity/Pages/Account/Manage/Subscriptions.cshtml b/Areas/Identity/Pages/Account/Manage/Subscriptions.cshtml new file mode 100644 index 0000000..692823e --- /dev/null +++ b/Areas/Identity/Pages/Account/Manage/Subscriptions.cshtml @@ -0,0 +1,116 @@ +@page +@model SubscriptionsModel +@{ + ViewData["Title"] = "Subscriptions"; +} + +

Subcriptions

+@await Html.PartialAsync("_StatusMessage", Model.StatusMessage) +
+ @{ if (Model.StripeCustomerId != null) + { + if (Model.Subscriptions.Any()) + { + foreach (var subscription in Model.Subscriptions) + { +
+ Status: @subscription.Status

@subscription.Plan.Nickname : @subscription.Plan.Amount @subscription.Plan.Currency : @subscription.Start - @subscription.CurrentPeriodEnd

+
+ } + + } + + } + else + { + + } + } +
+
+
+
+
+ + +
+
+ + +
+
+ + +
+ + @* +
+ +
+ +
+ + + +
+
+
+ +
+
+ + +
+
+ + +
+
+
+ +
+
+
+ +
+
+ +
+
+
+ +
+ *@ + +
+
+ +@section Scripts { + + + @* + *@ +} \ No newline at end of file diff --git a/Areas/Identity/Pages/Account/Manage/Subscriptions.cshtml.cs b/Areas/Identity/Pages/Account/Manage/Subscriptions.cshtml.cs new file mode 100644 index 0000000..34e4aca --- /dev/null +++ b/Areas/Identity/Pages/Account/Manage/Subscriptions.cshtml.cs @@ -0,0 +1,237 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Data.SqlClient; +using System.Linq; +using System.Text.Encodings.Web; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Identity; +using Microsoft.AspNetCore.Identity.UI.Services; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; +using Microsoft.AspNetCore.Mvc.Rendering; +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; +using RazorStripe.Data; +using RazorStripe.Data.Models; +using RazorStripe.Extensions; +using RazorStripe.Services; +using Stripe; +using Stripe.Infrastructure; + +namespace RazorStripe.Areas.Identity.Pages.Account.Manage +{ + public class SubscriptionsModel : PageModel + { + private readonly SignInManager _signInManager; + private readonly UserManager _userManager; + private readonly ILogger _logger; + private readonly IEmailSender _emailSender; + private readonly RoleManager _roleManager; + private readonly ApplicationDbContext _db; + private readonly StripeSettings _stripeSettings; + + public SubscriptionsModel( + UserManager userManager, + SignInManager signInManager, + ILogger logger, + IEmailSender emailSender, + RoleManager roleManager, + ApplicationDbContext db, + IOptions stripeSettings) + { + _roleManager = roleManager; + _db = db; + _userManager = userManager; + _signInManager = signInManager; + _logger = logger; + _emailSender = emailSender; + _stripeSettings = stripeSettings.Value; + } + + [TempData] + public string StatusMessage { get; set; } + + [BindProperty] + public InputModel Input { get; set; } + + public SelectList SubscriptionProducts { get; set; } + public SelectList SubscriptionPlans { get; set; } + + public List Subscriptions { get; set; } + + public string StripeKey { get; set; } + public string UserEmail { get; set; } + public string StripeCustomerId { get; set; } + + public long? PlanPrice { get; set; } + + public class InputModel + { + public string ProductId { get; set; } + + public string PlanId { get; set; } + } + + public JsonResult OnGetProducts(string productId) + { + if (string.IsNullOrEmpty(productId)) + { + return new JsonResult(null); + } + StripeList plans = GetProductPlans(productId); + SubscriptionPlans = new SelectList(plans, "Id", "Nickname"); + return new JsonResult(SubscriptionPlans); + } + + public JsonResult OnGetPlanPrice(string planId) + { + if (string.IsNullOrEmpty(planId)) + { + return new JsonResult(null); + } + PlanPrice = GetPlanPrice(planId); + + return new JsonResult(PlanPrice); + } + + public async Task OnGetAsync() + { + var user = await _userManager.GetUserAsync(User); + StripeCustomerId = user.CustomerIdentifier; + var nullCustomerId = string.IsNullOrEmpty(StripeCustomerId); + UserEmail = user.Email; + + if (user == null) + { + return NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."); + } + + var product = new ProductService(); + var productsOptions = new ProductListOptions + { + }; + StripeList products = product.List(productsOptions); + + SubscriptionProducts = new SelectList(products, "Id", "Name"); + + if (!nullCustomerId) + { + var subcriptionService = new SubscriptionService(); + IEnumerable response = subcriptionService.List(new SubscriptionListOptions + { + CustomerId = StripeCustomerId + }); + Subscriptions = response.ToList(); + } + + StripeKey = _stripeSettings.PublishableKey; + + return Page(); + } + + public async Task OnPostAsync([FromForm]string stripeToken) + { + if (!ModelState.IsValid) + { + return Page(); + } + + var user = await _userManager.GetUserAsync(User); + UserEmail = user.Email; + StripeCustomerId = user.CustomerIdentifier; + var nullCustomerId = string.IsNullOrEmpty(StripeCustomerId); + var planId = Input.PlanId; + var planAmount = GetPlanPrice(planId); + + var customerService = new CustomerService(); + Customer customerLookup = new Customer(); + + if (!nullCustomerId) + { + customerLookup = customerService.Get(StripeCustomerId); + } + + if (user == null) + { + return NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."); + } + + //Create new customer if doesnt exist + if (nullCustomerId || customerLookup.Deleted == true) + { + var customers = new CustomerService(); + + var customer = customers.Create(new CustomerCreateOptions + { + Email = UserEmail, + SourceToken = stripeToken, + PlanId = planId, + Description = UserEmail + " " + "[" + user.Id + "]" + }); + + user.CustomerIdentifier = customer.Id; + StripeCustomerId = user.CustomerIdentifier; + } + else + { + var subcriptionService = new SubscriptionService(); + var subscriptionItems = new List + { + new SubscriptionItemOption + { + PlanId = planId + } + }; + var stripeSubscription = subcriptionService.Create(new SubscriptionCreateOptions + { + CustomerId = StripeCustomerId, + Items = subscriptionItems + }); + } + + Charge charge = new Charge(); + if (planAmount > 0) + { + var chargeOptions = new ChargeCreateOptions + { + Amount = planAmount, + Currency = "usd", + Description = "RazorStripe for" + " " + UserEmail, + CustomerId = StripeCustomerId, + }; + var chargeService = new ChargeService(); + charge = chargeService.Create(chargeOptions); + } + await _db.SaveChangesAsync(); + + await _signInManager.RefreshSignInAsync(user); + + StatusMessage = "Your payment: " + charge.Status; + + return RedirectToPage(); + } + + private StripeList GetProductPlans(string productId) + { + var service = new PlanService(); + var serviceOptions = new PlanListOptions + { + ProductId = productId + }; + StripeList plans = service.List(serviceOptions); + + return plans; + } + + private long? GetPlanPrice(string planId) + { + var service = new PlanService(); + Plan plan = service.Get(planId); + long? planPrice = plan.Amount; + + return planPrice; + } + } +} \ No newline at end of file diff --git a/Areas/Identity/Pages/Account/Manage/TwoFactorAuthentication.cshtml b/Areas/Identity/Pages/Account/Manage/TwoFactorAuthentication.cshtml new file mode 100644 index 0000000..b36988f --- /dev/null +++ b/Areas/Identity/Pages/Account/Manage/TwoFactorAuthentication.cshtml @@ -0,0 +1,56 @@ +@page +@model TwoFactorAuthenticationModel +@{ + ViewData["Title"] = "Two-factor authentication (2FA)"; +} + +@await Html.PartialAsync("_StatusMessage", Model.StatusMessage) +

@ViewData["Title"]

+@if (Model.Is2faEnabled) +{ + if (Model.RecoveryCodesLeft == 0) + { +
+ You have no recovery codes left. +

You must generate a new set of recovery codes before you can log in with a recovery code.

+
+ } + else if (Model.RecoveryCodesLeft == 1) + { +
+ You have 1 recovery code left. +

You can generate a new set of recovery codes.

+
+ } + else if (Model.RecoveryCodesLeft <= 3) + { +
+ You have @Model.RecoveryCodesLeft recovery codes left. +

You should generate a new set of recovery codes.

+
+ } + + if (Model.IsMachineRemembered) + { +
+ +
+ } + Disable 2FA + Reset recovery codes +} + +
Authenticator app
+@if (!Model.HasAuthenticator) +{ + Add authenticator app +} +else +{ + Setup authenticator app + Reset authenticator app +} + +@section Scripts { + +} \ No newline at end of file diff --git a/Areas/Identity/Pages/Account/Manage/TwoFactorAuthentication.cshtml.cs b/Areas/Identity/Pages/Account/Manage/TwoFactorAuthentication.cshtml.cs new file mode 100644 index 0000000..eb4972a --- /dev/null +++ b/Areas/Identity/Pages/Account/Manage/TwoFactorAuthentication.cshtml.cs @@ -0,0 +1,73 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Identity; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; +using Microsoft.Extensions.Logging; +using RazorStripe.Data; +using RazorStripe.Data.Models; + +namespace RazorStripe.Areas.Identity.Pages.Account.Manage +{ + public class TwoFactorAuthenticationModel : PageModel + { + private const string AuthenicatorUriFormat = "otpauth://totp/{0}:{1}?secret={2}&issuer={0}"; + + private readonly UserManager _userManager; + private readonly SignInManager _signInManager; + private readonly ILogger _logger; + + public TwoFactorAuthenticationModel( + UserManager userManager, + SignInManager signInManager, + ILogger logger) + { + _userManager = userManager; + _signInManager = signInManager; + _logger = logger; + } + + public bool HasAuthenticator { get; set; } + + public int RecoveryCodesLeft { get; set; } + + [BindProperty] + public bool Is2faEnabled { get; set; } + + public bool IsMachineRemembered { get; set; } + + [TempData] + public string StatusMessage { get; set; } + + public async Task OnGet() + { + var user = await _userManager.GetUserAsync(User); + if (user == null) + { + return NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."); + } + + HasAuthenticator = await _userManager.GetAuthenticatorKeyAsync(user) != null; + Is2faEnabled = await _userManager.GetTwoFactorEnabledAsync(user); + IsMachineRemembered = await _signInManager.IsTwoFactorClientRememberedAsync(user); + RecoveryCodesLeft = await _userManager.CountRecoveryCodesAsync(user); + + return Page(); + } + + public async Task OnPost() + { + var user = await _userManager.GetUserAsync(User); + if (user == null) + { + return NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."); + } + + await _signInManager.ForgetTwoFactorClientAsync(); + StatusMessage = "The current browser has been forgotten. When you login again from this browser you will be prompted for your 2fa code."; + return RedirectToPage(); + } + } +} \ No newline at end of file diff --git a/Areas/Identity/Pages/Account/Manage/_Layout.cshtml b/Areas/Identity/Pages/Account/Manage/_Layout.cshtml new file mode 100644 index 0000000..66d5ecd --- /dev/null +++ b/Areas/Identity/Pages/Account/Manage/_Layout.cshtml @@ -0,0 +1,22 @@ +@{ + Layout = "/Areas/Identity/Pages/_Layout.cshtml"; +} + +

Manage your account

+ +
+

Change your account settings

+
+
+
+ +
+
+ @RenderBody() +
+
+
+ +@section Scripts { + @RenderSection("Scripts", required: false) +} diff --git a/Areas/Identity/Pages/Account/Manage/_ManageNav.cshtml b/Areas/Identity/Pages/Account/Manage/_ManageNav.cshtml new file mode 100644 index 0000000..cd90abe --- /dev/null +++ b/Areas/Identity/Pages/Account/Manage/_ManageNav.cshtml @@ -0,0 +1,15 @@ +@using RazorStripe.Data.Models +@inject SignInManager SignInManager +@{ + var hasExternalLogins = (await SignInManager.GetExternalAuthenticationSchemesAsync()).Any(); +} + diff --git a/Areas/Identity/Pages/Account/Manage/_StatusMessage.cshtml b/Areas/Identity/Pages/Account/Manage/_StatusMessage.cshtml new file mode 100644 index 0000000..e996841 --- /dev/null +++ b/Areas/Identity/Pages/Account/Manage/_StatusMessage.cshtml @@ -0,0 +1,10 @@ +@model string + +@if (!String.IsNullOrEmpty(Model)) +{ + var statusMessageClass = Model.StartsWith("Error") ? "danger" : "success"; + +} diff --git a/Areas/Identity/Pages/Account/Manage/_ViewImports.cshtml b/Areas/Identity/Pages/Account/Manage/_ViewImports.cshtml new file mode 100644 index 0000000..01b8c9f --- /dev/null +++ b/Areas/Identity/Pages/Account/Manage/_ViewImports.cshtml @@ -0,0 +1 @@ +@using RazorStripe.Areas.Identity.Pages.Account.Manage diff --git a/Areas/Identity/Pages/Account/Register.cshtml b/Areas/Identity/Pages/Account/Register.cshtml new file mode 100644 index 0000000..fc7821f --- /dev/null +++ b/Areas/Identity/Pages/Account/Register.cshtml @@ -0,0 +1,58 @@ +@page +@model RegisterModel +@{ + ViewData["Title"] = "Register"; +} + +

@ViewData["Title"]

+ +
+
+
+

Create a new account.

+
+
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+ +
+ + + +
+
+ + + +
+ +
+
+
+ +@section Scripts { + +} \ No newline at end of file diff --git a/Areas/Identity/Pages/Account/Register.cshtml.cs b/Areas/Identity/Pages/Account/Register.cshtml.cs new file mode 100644 index 0000000..0fc1938 --- /dev/null +++ b/Areas/Identity/Pages/Account/Register.cshtml.cs @@ -0,0 +1,136 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Security.Claims; +using System.Text.Encodings.Web; +using System.Threading.Tasks; +using System.Linq; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Identity; +using Microsoft.AspNetCore.Identity.UI.Services; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; +using Microsoft.Extensions.Logging; +using RazorStripe.Data; +using RazorStripe.Data.Models; + +namespace RazorStripe.Areas.Identity.Pages.Account +{ + [AllowAnonymous] + public class RegisterModel : PageModel + { + private readonly SignInManager _signInManager; + private readonly UserManager _userManager; + private readonly ILogger _logger; + private readonly IEmailSender _emailSender; + private readonly RoleManager _roleManager; + private readonly ApplicationDbContext _db; + + public RegisterModel( + UserManager userManager, + SignInManager signInManager, + ILogger logger, + IEmailSender emailSender, + RoleManager roleManager, + ApplicationDbContext db) + { + _roleManager = roleManager; + _db = db; + _userManager = userManager; + _signInManager = signInManager; + _logger = logger; + _emailSender = emailSender; + } + + [BindProperty] + public InputModel Input { get; set; } + + public string ReturnUrl { get; set; } + + public class InputModel + { + [Required] + public string Username { get; set; } + + [Required] + [EmailAddress] + [Display(Name = "Email")] + public string Email { get; set; } + + [Required] + [StringLength(100, ErrorMessage = "The {0} must be at least {2} and at max {1} characters long.", MinimumLength = 6)] + [DataType(DataType.Password)] + [Display(Name = "Password")] + public string Password { get; set; } + + [DataType(DataType.Password)] + [Display(Name = "Confirm password")] + [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")] + public string ConfirmPassword { get; set; } + + [Required] + [Display(Name = "First Name")] + public string FirstName { get; set; } + + [Required] + [Display(Name = "Last Name")] + public string LastName { get; set; } + + [Phone] + [Display(Name = "Phone number")] + public string PhoneNumber { get; set; } + } + + public void OnGet(string returnUrl = null) + { + ReturnUrl = returnUrl; + } + + public async Task OnPostAsync(string returnUrl = null) + { + returnUrl = returnUrl ?? Url.Content("~/"); + if (ModelState.IsValid) + { + var user = new ApplicationUser + { + UserName = Input.Username, + Email = Input.Email, + FirstName = Input.FirstName, + LastName = Input.LastName, + PhoneNumber = Input.PhoneNumber + }; + + var result = await _userManager.CreateAsync(user, Input.Password); + + if (result.Succeeded) + { + + await _db.SaveChangesAsync(); + + + _logger.LogInformation("User created a new account with password."); + + var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); + var callbackUrl = Url.Page( + "/Account/ConfirmEmail", + pageHandler: null, + values: new { userId = user.Id, code = code }, + protocol: Request.Scheme); + + await _emailSender.SendEmailAsync(Input.Email, "Confirm your email", + $"Please confirm your account by clicking here."); + + await _signInManager.SignInAsync(user, isPersistent: true); + return LocalRedirect(returnUrl); + } + foreach (var error in result.Errors) + { + ModelState.AddModelError(string.Empty, error.Description); + } + } + + // If we got this far, something failed, redisplay form + return Page(); + } + } +} \ No newline at end of file diff --git a/Areas/Identity/Pages/Account/ResetPassword.cshtml b/Areas/Identity/Pages/Account/ResetPassword.cshtml new file mode 100644 index 0000000..ba4d6ef --- /dev/null +++ b/Areas/Identity/Pages/Account/ResetPassword.cshtml @@ -0,0 +1,37 @@ +@page +@model ResetPasswordModel +@{ + ViewData["Title"] = "Reset password"; +} + +

@ViewData["Title"]

+

Reset your password.

+
+
+
+
+
+ +
+ + + +
+
+ + + +
+
+ + + +
+ +
+
+
+ +@section Scripts { + +} diff --git a/Areas/Identity/Pages/Account/ResetPassword.cshtml.cs b/Areas/Identity/Pages/Account/ResetPassword.cshtml.cs new file mode 100644 index 0000000..955d1dc --- /dev/null +++ b/Areas/Identity/Pages/Account/ResetPassword.cshtml.cs @@ -0,0 +1,90 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Identity; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; +using RazorStripe.Data; +using RazorStripe.Data.Models; + +namespace RazorStripe.Areas.Identity.Pages.Account +{ + [AllowAnonymous] + public class ResetPasswordModel : PageModel + { + private readonly UserManager _userManager; + + public ResetPasswordModel(UserManager userManager) + { + _userManager = userManager; + } + + [BindProperty] + public InputModel Input { get; set; } + + public class InputModel + { + [Required] + [EmailAddress] + public string Email { get; set; } + + [Required] + [StringLength(100, ErrorMessage = "The {0} must be at least {2} and at max {1} characters long.", MinimumLength = 6)] + [DataType(DataType.Password)] + public string Password { get; set; } + + [DataType(DataType.Password)] + [Display(Name = "Confirm password")] + [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")] + public string ConfirmPassword { get; set; } + + public string Code { get; set; } + } + + public IActionResult OnGet(string code = null) + { + if (code == null) + { + return BadRequest("A code must be supplied for password reset."); + } + else + { + Input = new InputModel + { + Code = code + }; + return Page(); + } + } + + public async Task OnPostAsync() + { + if (!ModelState.IsValid) + { + return Page(); + } + + var user = await _userManager.FindByEmailAsync(Input.Email); + if (user == null) + { + // Don't reveal that the user does not exist + return RedirectToPage("./ResetPasswordConfirmation"); + } + + var result = await _userManager.ResetPasswordAsync(user, Input.Code, Input.Password); + if (result.Succeeded) + { + return RedirectToPage("./ResetPasswordConfirmation"); + } + + foreach (var error in result.Errors) + { + ModelState.AddModelError(string.Empty, error.Description); + } + return Page(); + } + } +} diff --git a/Areas/Identity/Pages/Account/ResetPasswordConfirmation.cshtml b/Areas/Identity/Pages/Account/ResetPasswordConfirmation.cshtml new file mode 100644 index 0000000..a9972d4 --- /dev/null +++ b/Areas/Identity/Pages/Account/ResetPasswordConfirmation.cshtml @@ -0,0 +1,10 @@ +@page +@model ResetPasswordConfirmationModel +@{ + ViewData["Title"] = "Reset password confirmation"; +} + +

@ViewData["Title"]

+

+ Your password has been reset. Please click here to log in. +

diff --git a/Areas/Identity/Pages/Account/ResetPasswordConfirmation.cshtml.cs b/Areas/Identity/Pages/Account/ResetPasswordConfirmation.cshtml.cs new file mode 100644 index 0000000..3c35680 --- /dev/null +++ b/Areas/Identity/Pages/Account/ResetPasswordConfirmation.cshtml.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc.RazorPages; + +namespace RazorStripe.Areas.Identity.Pages.Account +{ + [AllowAnonymous] + public class ResetPasswordConfirmationModel : PageModel + { + public void OnGet() + { + + } + } +} diff --git a/Areas/Identity/Pages/Account/_ViewImports.cshtml b/Areas/Identity/Pages/Account/_ViewImports.cshtml new file mode 100644 index 0000000..9c64c25 --- /dev/null +++ b/Areas/Identity/Pages/Account/_ViewImports.cshtml @@ -0,0 +1 @@ +@using RazorStripe.Areas.Identity.Pages.Account \ No newline at end of file diff --git a/Areas/Identity/Pages/Error.cshtml b/Areas/Identity/Pages/Error.cshtml new file mode 100644 index 0000000..b1f3143 --- /dev/null +++ b/Areas/Identity/Pages/Error.cshtml @@ -0,0 +1,23 @@ +@page +@model ErrorModel +@{ + ViewData["Title"] = "Error"; +} + +

Error.

+

An error occurred while processing your request.

+ +@if (Model.ShowRequestId) +{ +

+ Request ID: @Model.RequestId +

+} + +

Development Mode

+

+ Swapping to Development environment will display more detailed information about the error that occurred. +

+

+ Development environment should not be enabled in deployed applications, as it can result in sensitive information from exceptions being displayed to end users. For local debugging, development environment can be enabled by setting the ASPNETCORE_ENVIRONMENT environment variable to Development, and restarting the application. +

diff --git a/Areas/Identity/Pages/Error.cshtml.cs b/Areas/Identity/Pages/Error.cshtml.cs new file mode 100644 index 0000000..9812fbe --- /dev/null +++ b/Areas/Identity/Pages/Error.cshtml.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Identity; + +namespace RazorStripe.Areas.Identity.Pages +{ + [AllowAnonymous] + [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] + public class ErrorModel : PageModel + { + public string RequestId { get; set; } + + public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); + + public void OnGet() + { + RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier; + } + } +} \ No newline at end of file diff --git a/Areas/Identity/Pages/_ValidationScriptsPartial.cshtml b/Areas/Identity/Pages/_ValidationScriptsPartial.cshtml new file mode 100644 index 0000000..bacc0ae --- /dev/null +++ b/Areas/Identity/Pages/_ValidationScriptsPartial.cshtml @@ -0,0 +1,18 @@ + + + + + + + + diff --git a/Areas/Identity/Pages/_ViewImports.cshtml b/Areas/Identity/Pages/_ViewImports.cshtml new file mode 100644 index 0000000..68a1da4 --- /dev/null +++ b/Areas/Identity/Pages/_ViewImports.cshtml @@ -0,0 +1,6 @@ +@using Microsoft.AspNetCore.Identity +@using RazorStripe.Areas.Identity +@using RazorStripe.Data +@using RazorStripe.Data.Models +@namespace RazorStripe.Areas.Identity.Pages +@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers diff --git a/Areas/Identity/Pages/_ViewStart.cshtml b/Areas/Identity/Pages/_ViewStart.cshtml new file mode 100644 index 0000000..7bd9b6b --- /dev/null +++ b/Areas/Identity/Pages/_ViewStart.cshtml @@ -0,0 +1,3 @@ +@{ + Layout = "/Pages/Shared/_Layout.cshtml"; +} diff --git a/Data/ApplicationDbContext.cs b/Data/ApplicationDbContext.cs new file mode 100644 index 0000000..d78d20e --- /dev/null +++ b/Data/ApplicationDbContext.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Text; +using Microsoft.AspNetCore.Identity.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using RazorStripe.Data.Models; + +namespace RazorStripe.Data +{ + public class ApplicationDbContext : IdentityDbContext + { + public ApplicationDbContext(DbContextOptions options) + : base(options) + { + } + + protected override void OnModelCreating(ModelBuilder modelBuilder) + { + base.OnModelCreating(modelBuilder); + + // Customize the ASP.NET Identity model and override the defaults if needed. For example, + // you can rename the ASP.NET Identity table names and more. Add your customizations + // after calling base.OnModelCreating(builder); + } + } +} \ No newline at end of file diff --git a/Data/DbInitializer.cs b/Data/DbInitializer.cs new file mode 100644 index 0000000..57e9e89 --- /dev/null +++ b/Data/DbInitializer.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Identity; +using Microsoft.AspNetCore.Identity.EntityFrameworkCore; +using RazorStripe.Data.Models; + +namespace RazorStripe.Data +{ + public class DbInitializer + { + public static void Initialize(ApplicationDbContext context) + { + //TODO: remove code for migrations + context.Database.EnsureCreated(); + + } + } +} \ No newline at end of file diff --git a/Data/Migrations/00000000000000_CreateIdentitySchema.Designer.cs b/Data/Migrations/00000000000000_CreateIdentitySchema.Designer.cs new file mode 100644 index 0000000..93715fb --- /dev/null +++ b/Data/Migrations/00000000000000_CreateIdentitySchema.Designer.cs @@ -0,0 +1,236 @@ +// +using System; +using RazorStripe.Data; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +namespace RazorStripe.Data.Migrations +{ + [DbContext(typeof(ApplicationDbContext))] + [Migration("00000000000000_CreateIdentitySchema")] + partial class CreateIdentitySchema + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "2.1.0") + .HasAnnotation("Relational:MaxIdentifierLength", 128) + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken(); + + b.Property("Name") + .HasMaxLength(256); + + b.Property("NormalizedName") + .HasMaxLength(256); + + b.HasKey("Id"); + + b.HasIndex("NormalizedName") + .IsUnique() + .HasName("RoleNameIndex") + .HasFilter("[NormalizedName] IS NOT NULL"); + + b.ToTable("AspNetRoles"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("ClaimType"); + + b.Property("ClaimValue"); + + b.Property("RoleId") + .IsRequired(); + + b.HasKey("Id"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetRoleClaims"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUser", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AccessFailedCount"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken(); + + b.Property("Email") + .HasMaxLength(256); + + b.Property("EmailConfirmed"); + + b.Property("LockoutEnabled"); + + b.Property("LockoutEnd"); + + b.Property("NormalizedEmail") + .HasMaxLength(256); + + b.Property("NormalizedUserName") + .HasMaxLength(256); + + b.Property("PasswordHash"); + + b.Property("PhoneNumber"); + + b.Property("PhoneNumberConfirmed"); + + b.Property("SecurityStamp"); + + b.Property("TwoFactorEnabled"); + + b.Property("UserName") + .HasMaxLength(256); + + b.HasKey("Id"); + + b.HasIndex("NormalizedEmail") + .HasName("EmailIndex"); + + b.HasIndex("NormalizedUserName") + .IsUnique() + .HasName("UserNameIndex") + .HasFilter("[NormalizedUserName] IS NOT NULL"); + + b.ToTable("AspNetUsers"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("ClaimType"); + + b.Property("ClaimValue"); + + b.Property("UserId") + .IsRequired(); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserClaims"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + { + b.Property("LoginProvider") + .HasMaxLength(128); + + b.Property("ProviderKey") + .HasMaxLength(128); + + b.Property("ProviderDisplayName"); + + b.Property("UserId") + .IsRequired(); + + b.HasKey("LoginProvider", "ProviderKey"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserLogins"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => + { + b.Property("UserId"); + + b.Property("RoleId"); + + b.HasKey("UserId", "RoleId"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetUserRoles"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.Property("UserId"); + + b.Property("LoginProvider") + .HasMaxLength(128); + + b.Property("Name") + .HasMaxLength(128); + + b.Property("Value"); + + b.HasKey("UserId", "LoginProvider", "Name"); + + b.ToTable("AspNetUserTokens"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + { + b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole") + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + { + b.HasOne("Microsoft.AspNetCore.Identity.IdentityUser") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + { + b.HasOne("Microsoft.AspNetCore.Identity.IdentityUser") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => + { + b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole") + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Microsoft.AspNetCore.Identity.IdentityUser") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.HasOne("Microsoft.AspNetCore.Identity.IdentityUser") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Data/Migrations/00000000000000_CreateIdentitySchema.cs b/Data/Migrations/00000000000000_CreateIdentitySchema.cs new file mode 100644 index 0000000..76602e1 --- /dev/null +++ b/Data/Migrations/00000000000000_CreateIdentitySchema.cs @@ -0,0 +1,220 @@ +using System; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; + +namespace RazorStripe.Data.Migrations +{ + public partial class CreateIdentitySchema : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "AspNetRoles", + columns: table => new + { + Id = table.Column(nullable: false), + Name = table.Column(maxLength: 256, nullable: true), + NormalizedName = table.Column(maxLength: 256, nullable: true), + ConcurrencyStamp = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AspNetRoles", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "AspNetUsers", + columns: table => new + { + Id = table.Column(nullable: false), + UserName = table.Column(maxLength: 256, nullable: true), + NormalizedUserName = table.Column(maxLength: 256, nullable: true), + Email = table.Column(maxLength: 256, nullable: true), + NormalizedEmail = table.Column(maxLength: 256, nullable: true), + EmailConfirmed = table.Column(nullable: false), + PasswordHash = table.Column(nullable: true), + SecurityStamp = table.Column(nullable: true), + ConcurrencyStamp = table.Column(nullable: true), + PhoneNumber = table.Column(nullable: true), + PhoneNumberConfirmed = table.Column(nullable: false), + TwoFactorEnabled = table.Column(nullable: false), + LockoutEnd = table.Column(nullable: true), + LockoutEnabled = table.Column(nullable: false), + AccessFailedCount = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_AspNetUsers", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "AspNetRoleClaims", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), + RoleId = table.Column(nullable: false), + ClaimType = table.Column(nullable: true), + ClaimValue = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AspNetRoleClaims", x => x.Id); + table.ForeignKey( + name: "FK_AspNetRoleClaims_AspNetRoles_RoleId", + column: x => x.RoleId, + principalTable: "AspNetRoles", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "AspNetUserClaims", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), + UserId = table.Column(nullable: false), + ClaimType = table.Column(nullable: true), + ClaimValue = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AspNetUserClaims", x => x.Id); + table.ForeignKey( + name: "FK_AspNetUserClaims_AspNetUsers_UserId", + column: x => x.UserId, + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "AspNetUserLogins", + columns: table => new + { + LoginProvider = table.Column(maxLength: 128, nullable: false), + ProviderKey = table.Column(maxLength: 128, nullable: false), + ProviderDisplayName = table.Column(nullable: true), + UserId = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_AspNetUserLogins", x => new { x.LoginProvider, x.ProviderKey }); + table.ForeignKey( + name: "FK_AspNetUserLogins_AspNetUsers_UserId", + column: x => x.UserId, + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "AspNetUserRoles", + columns: table => new + { + UserId = table.Column(nullable: false), + RoleId = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_AspNetUserRoles", x => new { x.UserId, x.RoleId }); + table.ForeignKey( + name: "FK_AspNetUserRoles_AspNetRoles_RoleId", + column: x => x.RoleId, + principalTable: "AspNetRoles", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_AspNetUserRoles_AspNetUsers_UserId", + column: x => x.UserId, + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateTable( + name: "AspNetUserTokens", + columns: table => new + { + UserId = table.Column(nullable: false), + LoginProvider = table.Column(maxLength: 128, nullable: false), + Name = table.Column(maxLength: 128, nullable: false), + Value = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_AspNetUserTokens", x => new { x.UserId, x.LoginProvider, x.Name }); + table.ForeignKey( + name: "FK_AspNetUserTokens_AspNetUsers_UserId", + column: x => x.UserId, + principalTable: "AspNetUsers", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }); + + migrationBuilder.CreateIndex( + name: "IX_AspNetRoleClaims_RoleId", + table: "AspNetRoleClaims", + column: "RoleId"); + + migrationBuilder.CreateIndex( + name: "RoleNameIndex", + table: "AspNetRoles", + column: "NormalizedName", + unique: true, + filter: "[NormalizedName] IS NOT NULL"); + + migrationBuilder.CreateIndex( + name: "IX_AspNetUserClaims_UserId", + table: "AspNetUserClaims", + column: "UserId"); + + migrationBuilder.CreateIndex( + name: "IX_AspNetUserLogins_UserId", + table: "AspNetUserLogins", + column: "UserId"); + + migrationBuilder.CreateIndex( + name: "IX_AspNetUserRoles_RoleId", + table: "AspNetUserRoles", + column: "RoleId"); + + migrationBuilder.CreateIndex( + name: "EmailIndex", + table: "AspNetUsers", + column: "NormalizedEmail"); + + migrationBuilder.CreateIndex( + name: "UserNameIndex", + table: "AspNetUsers", + column: "NormalizedUserName", + unique: true, + filter: "[NormalizedUserName] IS NOT NULL"); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "AspNetRoleClaims"); + + migrationBuilder.DropTable( + name: "AspNetUserClaims"); + + migrationBuilder.DropTable( + name: "AspNetUserLogins"); + + migrationBuilder.DropTable( + name: "AspNetUserRoles"); + + migrationBuilder.DropTable( + name: "AspNetUserTokens"); + + migrationBuilder.DropTable( + name: "AspNetRoles"); + + migrationBuilder.DropTable( + name: "AspNetUsers"); + } + } +} diff --git a/Data/Migrations/ApplicationDbContextModelSnapshot.cs b/Data/Migrations/ApplicationDbContextModelSnapshot.cs new file mode 100644 index 0000000..868f90e --- /dev/null +++ b/Data/Migrations/ApplicationDbContextModelSnapshot.cs @@ -0,0 +1,234 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using RazorStripe.Data; + +namespace RazorStripe.Data.Migrations +{ + [DbContext(typeof(ApplicationDbContext))] + partial class ApplicationDbContextModelSnapshot : ModelSnapshot + { + protected override void BuildModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "2.1.0") + .HasAnnotation("Relational:MaxIdentifierLength", 128) + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken(); + + b.Property("Name") + .HasMaxLength(256); + + b.Property("NormalizedName") + .HasMaxLength(256); + + b.HasKey("Id"); + + b.HasIndex("NormalizedName") + .IsUnique() + .HasName("RoleNameIndex") + .HasFilter("[NormalizedName] IS NOT NULL"); + + b.ToTable("AspNetRoles"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("ClaimType"); + + b.Property("ClaimValue"); + + b.Property("RoleId") + .IsRequired(); + + b.HasKey("Id"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetRoleClaims"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUser", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AccessFailedCount"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken(); + + b.Property("Email") + .HasMaxLength(256); + + b.Property("EmailConfirmed"); + + b.Property("LockoutEnabled"); + + b.Property("LockoutEnd"); + + b.Property("NormalizedEmail") + .HasMaxLength(256); + + b.Property("NormalizedUserName") + .HasMaxLength(256); + + b.Property("PasswordHash"); + + b.Property("PhoneNumber"); + + b.Property("PhoneNumberConfirmed"); + + b.Property("SecurityStamp"); + + b.Property("TwoFactorEnabled"); + + b.Property("UserName") + .HasMaxLength(256); + + b.HasKey("Id"); + + b.HasIndex("NormalizedEmail") + .HasName("EmailIndex"); + + b.HasIndex("NormalizedUserName") + .IsUnique() + .HasName("UserNameIndex") + .HasFilter("[NormalizedUserName] IS NOT NULL"); + + b.ToTable("AspNetUsers"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("ClaimType"); + + b.Property("ClaimValue"); + + b.Property("UserId") + .IsRequired(); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserClaims"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + { + b.Property("LoginProvider") + .HasMaxLength(128); + + b.Property("ProviderKey") + .HasMaxLength(128); + + b.Property("ProviderDisplayName"); + + b.Property("UserId") + .IsRequired(); + + b.HasKey("LoginProvider", "ProviderKey"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserLogins"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => + { + b.Property("UserId"); + + b.Property("RoleId"); + + b.HasKey("UserId", "RoleId"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetUserRoles"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.Property("UserId"); + + b.Property("LoginProvider") + .HasMaxLength(128); + + b.Property("Name") + .HasMaxLength(128); + + b.Property("Value"); + + b.HasKey("UserId", "LoginProvider", "Name"); + + b.ToTable("AspNetUserTokens"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + { + b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole") + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + { + b.HasOne("Microsoft.AspNetCore.Identity.IdentityUser") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + { + b.HasOne("Microsoft.AspNetCore.Identity.IdentityUser") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => + { + b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole") + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Microsoft.AspNetCore.Identity.IdentityUser") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.HasOne("Microsoft.AspNetCore.Identity.IdentityUser") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Data/Models/ApplicationUser.cs b/Data/Models/ApplicationUser.cs new file mode 100644 index 0000000..fe18737 --- /dev/null +++ b/Data/Models/ApplicationUser.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Identity; +using Stripe; + +namespace RazorStripe.Data.Models +{ + // Add profile data for application users by adding properties to the ApplicationUser class + public class ApplicationUser : IdentityUser + { + public ApplicationUser() + { + Subscriptions = new List(); + } + + public virtual ICollection Subscriptions { get; set; } + + public string CustomerIdentifier { get; set; } + + [Display(Name = "Full Name")] + public string FirstName { get; set; } + + public string LastName { get; set; } + + public string FullName + { + get + { + return FirstName + " " + LastName; + } + } + + } +} \ No newline at end of file diff --git a/Data/Models/UserSubscription.cs b/Data/Models/UserSubscription.cs new file mode 100644 index 0000000..05b7432 --- /dev/null +++ b/Data/Models/UserSubscription.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Threading.Tasks; + +namespace RazorStripe.Data.Models +{ + public class UserSubscription + { + [Key] + public Guid UserSubscriptionId { get; set; } + + public DateTime PurchaseDate { get; set; } + + public DateTime ExpirationDate { get; set; } + + public int Amount { get; set; } + + public string UserId { get; set; } + + public string PaymentSubscriptionId { get; set; } + + public Guid ApiKey { get; set; } + } +} \ No newline at end of file diff --git a/Extensions/EmailSenderExtensions.cs b/Extensions/EmailSenderExtensions.cs new file mode 100644 index 0000000..c8b549c --- /dev/null +++ b/Extensions/EmailSenderExtensions.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text.Encodings.Web; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Identity.UI.Services; +using RazorStripe.Services; + +namespace RazorStripe.Services +{ + public static class EmailSenderExtensions + { + public static Task SendEmailConfirmationAsync(this IEmailSender emailSender, string email, string link) + { + return emailSender.SendEmailAsync(email, "Confirm your email", + $"Please confirm your account by clicking here."); + } + + public static Task SendResetPasswordAsync(this IEmailSender emailSender, string email, string callbackUrl) + { + return emailSender.SendEmailAsync(email, "Reset Password", + $"Please reset your password by clicking here."); + } + } +} \ No newline at end of file diff --git a/Extensions/EnumExtensions.cs b/Extensions/EnumExtensions.cs new file mode 100644 index 0000000..47a25a2 --- /dev/null +++ b/Extensions/EnumExtensions.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Reflection; +using System.Threading.Tasks; + +namespace RazorStripe.Extensions +{ + public static class EnumExtensions + { + // + // Retrieves the property on the + // of the current enum value, or the enum's member name if the is not present. + // + // This enum member to get the name for. + // The property on the attribute, if present. + public static string GetDisplayName(this Enum val) + { + return val.GetType() + .GetMember(val.ToString()) + .FirstOrDefault() + ?.GetCustomAttribute(false) + ?.Name + ?? val.ToString(); + } + } +} \ No newline at end of file diff --git a/Extensions/IEnumerableExtensions.cs b/Extensions/IEnumerableExtensions.cs new file mode 100644 index 0000000..8caee9d --- /dev/null +++ b/Extensions/IEnumerableExtensions.cs @@ -0,0 +1,22 @@ +using Microsoft.AspNetCore.Mvc.Rendering; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace RazorStripe.Extensions +{ + public static class IEnumerableExtensions + { + public static IEnumerable ToSelectListItem(this IEnumerable items, int selectedValue) + { + return from item in items + select new SelectListItem + { + Text = item.GetPropertyValue("Name"), + Value = item.GetPropertyValue("Id"), + Selected = item.GetPropertyValue("Id").Equals(selectedValue.ToString()) + }; + } + } +} \ No newline at end of file diff --git a/Extensions/PageConventionCollectionExtensions.cs b/Extensions/PageConventionCollectionExtensions.cs new file mode 100644 index 0000000..fbec0de --- /dev/null +++ b/Extensions/PageConventionCollectionExtensions.cs @@ -0,0 +1,51 @@ +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc.ApplicationModels; +using Microsoft.AspNetCore.Mvc.Authorization; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace RazorStripe.Extensions +{ + public static class PageConventionCollectionExtensions + { + public static PageConventionCollection AuthorizeFolder(this PageConventionCollection conventions, string folderPath, string[] roles) + { + if (conventions == null) + { + throw new ArgumentNullException(nameof(conventions)); + } + + if (string.IsNullOrEmpty(folderPath)) + { + throw new ArgumentException("Argument cannot be null or empty.", nameof(folderPath)); + } + + var policy = new AuthorizationPolicyBuilder(). + RequireRole(roles).Build(); + var authorizeFilter = new AuthorizeFilter(policy); + conventions.AddFolderApplicationModelConvention(folderPath, model => model.Filters.Add(authorizeFilter)); + return conventions; + } + + public static PageConventionCollection AuthorizePage(this PageConventionCollection conventions, string pageName, string[] roles) + { + if (conventions == null) + { + throw new ArgumentNullException(nameof(conventions)); + } + + if (string.IsNullOrEmpty(pageName)) + { + throw new ArgumentException("Argument cannot be null or empty.", nameof(pageName)); + } + + var policy = new AuthorizationPolicyBuilder(). + RequireRole(roles).Build(); + var authorizeFilter = new AuthorizeFilter(policy); + conventions.AddPageApplicationModelConvention(pageName, model => model.Filters.Add(authorizeFilter)); + return conventions; + } + } +} \ No newline at end of file diff --git a/Extensions/ReflectionExtensions.cs b/Extensions/ReflectionExtensions.cs new file mode 100644 index 0000000..b89b790 --- /dev/null +++ b/Extensions/ReflectionExtensions.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace RazorStripe.Extensions +{ + public static class ReflectionExtensions + { + public static string GetPropertyValue(this T item, string propertyName) + { + return item.GetType().GetProperty(propertyName).GetValue(item, null).ToString(); + } + } +} \ No newline at end of file diff --git a/Extensions/UrlHelperExtensions.cs b/Extensions/UrlHelperExtensions.cs new file mode 100644 index 0000000..4caa644 --- /dev/null +++ b/Extensions/UrlHelperExtensions.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace Microsoft.AspNetCore.Mvc +{ + public static class UrlHelperExtensions + { + public static string GetLocalUrl(this IUrlHelper urlHelper, string localUrl) + { + if (!urlHelper.IsLocalUrl(localUrl)) + { + return urlHelper.Page("/Index"); + } + + return localUrl; + } + + public static string EmailConfirmationLink(this IUrlHelper urlHelper, string userId, string code, string scheme) + { + return urlHelper.Page( + "/Account/ConfirmEmail", + pageHandler: null, + values: new { userId, code }, + protocol: scheme); + } + + public static string ResetPasswordCallbackLink(this IUrlHelper urlHelper, string userId, string code, string scheme) + { + return urlHelper.Page( + "/Account/ResetPassword", + pageHandler: null, + values: new { userId, code }, + protocol: scheme); + } + } +} diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..492fba9 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,20 @@ +Copyright (c) 2018-2019 Dragon Mastery LLC + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/Pages/About.cshtml b/Pages/About.cshtml new file mode 100644 index 0000000..3c090d1 --- /dev/null +++ b/Pages/About.cshtml @@ -0,0 +1,9 @@ +@page +@model AboutModel +@{ + ViewData["Title"] = "About"; +} +

@ViewData["Title"]

+

@Model.Message

+ +

Use this area to provide additional information.

diff --git a/Pages/About.cshtml.cs b/Pages/About.cshtml.cs new file mode 100644 index 0000000..cdc7f89 --- /dev/null +++ b/Pages/About.cshtml.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc.RazorPages; + +namespace RazorStripe.Pages +{ + public class AboutModel : PageModel + { + public string Message { get; set; } + + public void OnGet() + { + Message = "Your application description page."; + } + } +} diff --git a/Pages/Contact.cshtml b/Pages/Contact.cshtml new file mode 100644 index 0000000..b683c82 --- /dev/null +++ b/Pages/Contact.cshtml @@ -0,0 +1,19 @@ +@page +@model ContactModel +@{ + ViewData["Title"] = "Contact"; +} +

@ViewData["Title"]

+

@Model.Message

+ +
+ One Microsoft Way
+ Redmond, WA 98052-6399
+ P: + 425.555.0100 +
+ +
+ Support: Support@example.com
+ Marketing: Marketing@example.com +
diff --git a/Pages/Contact.cshtml.cs b/Pages/Contact.cshtml.cs new file mode 100644 index 0000000..579eca5 --- /dev/null +++ b/Pages/Contact.cshtml.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc.RazorPages; + +namespace RazorStripe.Pages +{ + public class ContactModel : PageModel + { + public string Message { get; set; } + + public void OnGet() + { + Message = "Your contact page."; + } + } +} diff --git a/Pages/Error.cshtml b/Pages/Error.cshtml new file mode 100644 index 0000000..b1f3143 --- /dev/null +++ b/Pages/Error.cshtml @@ -0,0 +1,23 @@ +@page +@model ErrorModel +@{ + ViewData["Title"] = "Error"; +} + +

Error.

+

An error occurred while processing your request.

+ +@if (Model.ShowRequestId) +{ +

+ Request ID: @Model.RequestId +

+} + +

Development Mode

+

+ Swapping to Development environment will display more detailed information about the error that occurred. +

+

+ Development environment should not be enabled in deployed applications, as it can result in sensitive information from exceptions being displayed to end users. For local debugging, development environment can be enabled by setting the ASPNETCORE_ENVIRONMENT environment variable to Development, and restarting the application. +

diff --git a/Pages/Error.cshtml.cs b/Pages/Error.cshtml.cs new file mode 100644 index 0000000..e89b053 --- /dev/null +++ b/Pages/Error.cshtml.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; + +namespace RazorStripe.Pages +{ + [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] + public class ErrorModel : PageModel + { + public string RequestId { get; set; } + + public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); + + public void OnGet() + { + RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier; + } + } +} \ No newline at end of file diff --git a/Pages/Index.cshtml b/Pages/Index.cshtml new file mode 100644 index 0000000..c3bd6f5 --- /dev/null +++ b/Pages/Index.cshtml @@ -0,0 +1,98 @@ +@page +@model IndexModel +@using Microsoft.Extensions.Options + +@{ + ViewData["Title"] = "Home page"; +} + + + + \ No newline at end of file diff --git a/Pages/Index.cshtml.cs b/Pages/Index.cshtml.cs new file mode 100644 index 0000000..d07667e --- /dev/null +++ b/Pages/Index.cshtml.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; + +namespace RazorStripe.Pages +{ + public class IndexModel : PageModel + { + public void OnGet() + { + + } + } +} diff --git a/Pages/Privacy.cshtml b/Pages/Privacy.cshtml new file mode 100644 index 0000000..f3787ba --- /dev/null +++ b/Pages/Privacy.cshtml @@ -0,0 +1,8 @@ +@page +@model PrivacyModel +@{ + ViewData["Title"] = "Privacy Policy"; +} +

@ViewData["Title"]

+ +

Use this page to detail your site's privacy policy.

\ No newline at end of file diff --git a/Pages/Privacy.cshtml.cs b/Pages/Privacy.cshtml.cs new file mode 100644 index 0000000..a1bca42 --- /dev/null +++ b/Pages/Privacy.cshtml.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; + +namespace RazorStripe.Pages +{ + public class PrivacyModel : PageModel + { + public void OnGet() + { + } + } +} \ No newline at end of file diff --git a/Pages/Shared/_CookieConsentPartial.cshtml b/Pages/Shared/_CookieConsentPartial.cshtml new file mode 100644 index 0000000..f444e46 --- /dev/null +++ b/Pages/Shared/_CookieConsentPartial.cshtml @@ -0,0 +1,25 @@ +@using Microsoft.AspNetCore.Http.Features + +@{ + var consentFeature = Context.Features.Get(); + var showBanner = !consentFeature?.CanTrack ?? false; + var cookieString = consentFeature?.CreateConsentCookie(); +} + +@if (showBanner) +{ + + +} \ No newline at end of file diff --git a/Pages/Shared/_Layout.cshtml b/Pages/Shared/_Layout.cshtml new file mode 100644 index 0000000..383f259 --- /dev/null +++ b/Pages/Shared/_Layout.cshtml @@ -0,0 +1,107 @@ +@using Microsoft.AspNetCore.Http; +@inject IHttpContextAccessor HttpContextAccessor + + + + + + @ViewData["Title"] - RazorStripe + + + + + + + + + + + + + + + + + + + + + +
+
+ @RenderBody() +
+
+

© 2012-@DateTime.Today.Year - RazorStripe

+
+
+ + + + + + + + + + + + + + + + + + + + @RenderSection("Scripts", required: false) + + \ No newline at end of file diff --git a/Pages/Shared/_LoginPartial.cshtml b/Pages/Shared/_LoginPartial.cshtml new file mode 100644 index 0000000..3d5044f --- /dev/null +++ b/Pages/Shared/_LoginPartial.cshtml @@ -0,0 +1,40 @@ +@using Microsoft.AspNetCore.Identity +@using RazorStripe.Data.Models +@inject SignInManager SignInManager +@inject UserManager UserManager + +@if (SignInManager.IsSignedIn(User)) +{ + + + + +} +else +{ + + +} \ No newline at end of file diff --git a/Pages/Shared/_ValidationScriptsPartial.cshtml b/Pages/Shared/_ValidationScriptsPartial.cshtml new file mode 100644 index 0000000..ef848fe --- /dev/null +++ b/Pages/Shared/_ValidationScriptsPartial.cshtml @@ -0,0 +1,18 @@ + + + + + + + + diff --git a/Pages/_ViewImports.cshtml b/Pages/_ViewImports.cshtml new file mode 100644 index 0000000..36f2f4d --- /dev/null +++ b/Pages/_ViewImports.cshtml @@ -0,0 +1,6 @@ +@using Microsoft.AspNetCore.Identity +@using RazorStripe +@using RazorStripe.Data +@using RazorStripe.Data.Models +@namespace RazorStripe.Pages +@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers diff --git a/Pages/_ViewStart.cshtml b/Pages/_ViewStart.cshtml new file mode 100644 index 0000000..a5f1004 --- /dev/null +++ b/Pages/_ViewStart.cshtml @@ -0,0 +1,3 @@ +@{ + Layout = "_Layout"; +} diff --git a/Program.cs b/Program.cs new file mode 100644 index 0000000..cc90010 --- /dev/null +++ b/Program.cs @@ -0,0 +1,44 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore; +using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; +using RazorStripe.Data; + +namespace RazorStripe +{ + public class Program + { + public static void Main(string[] args) + { + var host = CreateWebHostBuilder(args).Build(); + + using (var scope = host.Services.CreateScope()) + { + var services = scope.ServiceProvider; + + try + { + var context = services.GetRequiredService(); + DbInitializer.Initialize(context); + } + catch (Exception ex) + { + var logger = services.GetRequiredService>(); + logger.LogError(ex, "An error occurred creating the DB."); + } + } + + host.Run(); + } + + public static IWebHostBuilder CreateWebHostBuilder(string[] args) => + WebHost.CreateDefaultBuilder(args) + .UseStartup(); + } +} \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..b8c363d --- /dev/null +++ b/README.md @@ -0,0 +1,20 @@ +# RazorStripe + +RazorStripe is an ASP.NET Core 2.2 Template that combines Razor Pages with Stripe integration. + +## Run the Project +1. Download/fork the project and run the .sln +2. Add your own stripe keys in the [appsettings](appsettings.json) +3. Add your credentials in the [EmailSender](/Services/EmailSender.cs) +4. Re-save the [libman file](libman.json) and verify that the 5 folders have been downloaded into the [wwwroot](/wwwroot). +5. Run on IIS Express + +## Custom Templates +There is also a .template.config folder so you can use dotnet new -i to create your own templates from this. More information [HERE](https://docs.microsoft.com/en-us/dotnet/core/tools/custom-templates) + +## Community +Contributions are welcome! Follow the community and contribute [HERE](https://discord.gg/6SAfBMc) + +## License + +See the [LICENSE](LICENSE.md) file for license rights and limitations (MIT). diff --git a/RazorStripe.csproj b/RazorStripe.csproj new file mode 100644 index 0000000..92304e2 --- /dev/null +++ b/RazorStripe.csproj @@ -0,0 +1,68 @@ + + + + netcoreapp2.2 + aspnet-RazorStripe-66F3C237-5BC7-493C-B78E-D8A31F0EDFE1 + false + InProcess + + + + + + + + + + + + + + + + + + + + + + + + <_ContentIncludedByDefault Remove="bundleconfig.json" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/RazorStripe.sln b/RazorStripe.sln new file mode 100644 index 0000000..635ff48 --- /dev/null +++ b/RazorStripe.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.28407.52 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RazorStripe", "RazorStripe.csproj", "{83FE2DFC-8123-4928-B045-7C7AC7F0D4CD}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {83FE2DFC-8123-4928-B045-7C7AC7F0D4CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {83FE2DFC-8123-4928-B045-7C7AC7F0D4CD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {83FE2DFC-8123-4928-B045-7C7AC7F0D4CD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {83FE2DFC-8123-4928-B045-7C7AC7F0D4CD}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {5394A107-FB45-4FE7-B5CA-B86B154CB9EE} + EndGlobalSection +EndGlobal diff --git a/Services/EmailSender.cs b/Services/EmailSender.cs new file mode 100644 index 0000000..38b3f26 --- /dev/null +++ b/Services/EmailSender.cs @@ -0,0 +1,44 @@ +using Microsoft.AspNetCore.Identity.UI.Services; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Net.Mail; +using System.Threading.Tasks; + +namespace RazorStripe.Services +{ + // This class is used by the application to send email for account confirmation and password reset. + // For more details see https://go.microsoft.com/fwlink/?LinkID=532713 + public class EmailSender : IEmailSender + { + public Task SendEmailAsync(string email, string subject, string message) + { + SmtpClient client = new SmtpClient("smtp.mailgun.org", 587); + client.UseDefaultCredentials = false; + //add credentials + client.Credentials = new NetworkCredential("postmaster@email.email.com", "xxxx"); + client.EnableSsl = true; + + //MailMessage mailMessage = new MailMessage + //{ + // From = new MailAddress("email@email.com"), + // Body = message, + // IsBodyHtml = true + //}; + MailMessage mailMessage = new MailMessage(); + //from address + mailMessage.From = new MailAddress("email@email.com"); + mailMessage.To.Add(email); + mailMessage.Body = message; + mailMessage.IsBodyHtml = true; + mailMessage.Subject = subject; + + //mailMessage.Body = message; + //mailMessage.IsBodyHtml = true; + client.Send(mailMessage); + + return Task.CompletedTask; + } + } +} \ No newline at end of file diff --git a/Services/StripeSettings.cs b/Services/StripeSettings.cs new file mode 100644 index 0000000..0fe396c --- /dev/null +++ b/Services/StripeSettings.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace RazorStripe.Services +{ + public class StripeSettings + { + public string SecretKey { get; set; } + public string PublishableKey { get; set; } + } +} \ No newline at end of file diff --git a/Startup.cs b/Startup.cs new file mode 100644 index 0000000..98207bb --- /dev/null +++ b/Startup.cs @@ -0,0 +1,173 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Identity; +using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.HttpsPolicy; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; +using RazorStripe.Data; +using RazorStripe.Services; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using RazorStripe.Extensions; +using Microsoft.AspNetCore.Identity.UI.Services; +using Microsoft.AspNetCore.Mvc.Rendering; +using Microsoft.AspNetCore.StaticFiles; +using Stripe; +using RazorStripe.Data.Models; +using Microsoft.AspNetCore.Identity.UI; + +namespace RazorStripe +{ + public class Startup + { + public Startup(IConfiguration configuration) + { + Configuration = configuration; + } + + public IConfiguration Configuration { get; } + + // This method gets called by the runtime. Use this method to add services to the container. + public void ConfigureServices(IServiceCollection services) + { + services.Configure(options => + { + // This lambda determines whether user consent for non-essential cookies is needed for a given request. + options.CheckConsentNeeded = context => true; + options.MinimumSameSitePolicy = SameSiteMode.None; + }); + + services.AddDbContext(options => + options.UseSqlServer( + Configuration.GetConnectionString("DefaultConnection"))); + + services.AddIdentity() + .AddEntityFrameworkStores() + //.AddDefaultUI(UIFramework.Bootstrap4) + .AddDefaultTokenProviders(); + + // Configure Identity + services.Configure(options => + { + // Password settings. + options.Password.RequireDigit = true; + options.Password.RequireLowercase = true; + options.Password.RequireNonAlphanumeric = true; + options.Password.RequireUppercase = true; + options.Password.RequiredLength = 6; + options.Password.RequiredUniqueChars = 1; + + // Lockout settings. + options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromMinutes(5); + options.Lockout.MaxFailedAccessAttempts = 5; + options.Lockout.AllowedForNewUsers = true; + + // User settings. + options.User.AllowedUserNameCharacters = + "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; + options.User.RequireUniqueEmail = true; + }); + + services.ConfigureApplicationCookie(options => + { + // Cookie settings + options.Cookie.HttpOnly = true; + options.ExpireTimeSpan = TimeSpan.FromHours(24); + + options.LoginPath = $"/Identity/Account/Login"; + options.LogoutPath = $"/Identity/Account/Logout"; + options.AccessDeniedPath = $"/Identity/Account/AccessDenied"; + options.SlidingExpiration = true; + }); + + services.Configure(Configuration.GetSection("Stripe")); + + services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2) + .AddRazorPagesOptions(options => + { + //Logged in user pages + options.Conventions.AuthorizeAreaFolder("Identity", "/Account/Manage"); + options.Conventions.AuthorizeFolder("/ClientProfiles"); + options.Conventions.AuthorizeFolder("/ClientLocations"); + options.Conventions.AuthorizeFolder("/ClientContacts"); + options.Conventions.AuthorizeFolder("/SalesManager"); + options.Conventions.AuthorizeFolder("/MasterAgentContacts"); + + //customer pages + + //admin pages + }); + + services.AddAuthorization(options => + { + }); + + //services.AddAuthentication().AddFacebook(facebookOptions => + //{ + // facebookOptions.AppId = "xxx"; + // facebookOptions.AppSecret = "xxx"; + //}); + + //services.AddAuthentication().AddGoogle(googleOptions => + //{ + // googleOptions.ClientId = "xxx"; + // googleOptions.ClientSecret = "xxx"; + //}); + + //Register no-op EmailSender used by account confirmation and password reset during + // development For more information on how to enable account confirmation and password + // reset please visit https://go.microsoft.com/fwlink/?LinkID=532713 + + services.AddSingleton(); + //services.Configure(Configuration); + + services.AddSession(options => + { + options.IdleTimeout = TimeSpan.FromMinutes(30); + options.Cookie.HttpOnly = true; + }); + } + + // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. + public void Configure(IApplicationBuilder app, IHostingEnvironment env) + { + if (env.IsDevelopment()) + { + app.UseDeveloperExceptionPage(); + app.UseDatabaseErrorPage(); + } + else + { + app.UseExceptionHandler("/Error"); + app.UseHsts(); + } + + StripeConfiguration.SetApiKey(Configuration.GetSection("Stripe")["SecretKey"]); + + app.UseHttpsRedirection(); + app.UseStaticFiles(); + app.UseCookiePolicy(); + app.UseAuthentication(); + app.UseSession(); + + app.UseMvc(routes => + { + routes.MapRoute( + name: "default", + template: "{controller}/{acion=Index}/{id?}"); + }); + + // Set up custom content types -associating file extension to MIME type + var provider = new FileExtensionContentTypeProvider(); + app.UseStaticFiles(new StaticFileOptions + { + ContentTypeProvider = provider + }); + } + } +} \ No newline at end of file diff --git a/appsettings.Development.json b/appsettings.Development.json new file mode 100644 index 0000000..e203e94 --- /dev/null +++ b/appsettings.Development.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Debug", + "System": "Information", + "Microsoft": "Information" + } + } +} diff --git a/appsettings.json b/appsettings.json new file mode 100644 index 0000000..cad98b3 --- /dev/null +++ b/appsettings.json @@ -0,0 +1,15 @@ +{ + "ConnectionStrings": { + "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=RazorStripe;Trusted_Connection=True;MultipleActiveResultSets=true" + }, + "Logging": { + "LogLevel": { + "Default": "Warning" + } + }, + "Stripe": { + "SecretKey": "sk_test_xxx", + "PublishableKey": "pk_test_xxx" + }, + "AllowedHosts": "*" +} \ No newline at end of file diff --git a/bundleconfig.json b/bundleconfig.json new file mode 100644 index 0000000..2aee0e7 --- /dev/null +++ b/bundleconfig.json @@ -0,0 +1,14 @@ +[ + { + "outputFileName": "wwwroot/css/site.min.css", + "inputFiles": [ + "wwwroot/css/site.css" + ] + }, + { + "outputFileName": "wwwroot/js/site.min.js", + "inputFiles": [ + "wwwroot/js/site.js" + ] + } +] diff --git a/libman.json b/libman.json new file mode 100644 index 0000000..8dec40e --- /dev/null +++ b/libman.json @@ -0,0 +1,30 @@ +{ + "version": "1.0", + "defaultProvider": "cdnjs", + "libraries": [ + { + "library": "twitter-bootstrap@4.1.1", + "destination": "wwwroot/lib/twitter-bootstrap/" + }, + { + "provider": "cdnjs", + "library": "popper.js@1.14.6", + "destination": "wwwroot/lib/popper.js/" + }, + { + "provider": "cdnjs", + "library": "jquery@3.1.1", + "destination": "wwwroot/lib/jquery/" + }, + { + "provider": "cdnjs", + "library": "jqueryui@1.12.1", + "destination": "wwwroot/lib/jqueryui/" + }, + { + "provider": "cdnjs", + "library": "jquery-timepicker@1.10.0", + "destination": "wwwroot/lib/jquery-timepicker/" + } + ] +} \ No newline at end of file diff --git a/wwwroot/css/site.css b/wwwroot/css/site.css new file mode 100644 index 0000000..0cf5ffe --- /dev/null +++ b/wwwroot/css/site.css @@ -0,0 +1,253 @@ +/* Please see documentation at https://docs.microsoft.com/aspnet/core/client-side/bundling-and-minification\ +for details on configuring this project to bundle and minify static web assets. */ +body { + padding-top: 50px; + padding-bottom: 20px; +} + +/* Wrapping element */ +/* Set some basic padding to keep content from hitting the edges */ +.body-content { + padding-left: 15px; + padding-right: 15px; +} + +/* Carousel */ +.carousel-caption p { + font-size: 20px; + line-height: 1.4; +} + +/* Make .svg files in the carousel display properly in older browsers */ +.carousel-inner .item img[src$=".svg"] { + width: 100%; +} + +/* QR code generator */ +#qrCode { + margin: 15px; +} + +/* Hide/rearrange for smaller screens */ +@media screen and (max-width: 767px) { + /* Hide captions */ + .carousel-caption { + display: none; + } +} + +/* Remove margins and padding from the list */ +.my-list { + margin: 0; + padding: 0; +} + + /* Style the list items */ + .my-list li { + cursor: pointer; + position: relative; + padding: 12px 8px 12px 40px; + list-style-type: none; + background: #eee; + font-size: 18px; + transition: 0.2s; + /* make the list items unselectable */ + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + } + + /* Set all odd list items to a different color (zebra-stripes) */ + .my-list li:nth-child(odd) { + background: #f9f9f9; + } + + /* Darker background-color on hover */ + .my-list li:hover { + background: #ddd; + } + + /* When clicked on, add a background color and strike out text */ + .my-list li.checked { + background: #888; + color: #fff; + text-decoration: line-through; + } + + /* Add a "checked" mark when clicked on */ + .my-list li.checked::before { + content: ''; + position: absolute; + border-color: #fff; + border-style: solid; + border-width: 0 2px 2px 0; + top: 10px; + left: 16px; + transform: rotate(45deg); + height: 15px; + width: 7px; + } + +span { + vertical-align: text-top; +} + +.alert-dismissible .close { + padding: .3rem 1.25rem; +} +/* Style the close button */ +.close:hover { + background-color: #f44336; + color: white; +} + +/* Style the header */ +.header { + background-color: #f44336; + padding: 30px 40px; + color: white; + text-align: center; +} + + /* Clear floats after the header */ + .header:after { + content: ""; + display: table; + clear: both; + } + +/* Style the input */ + +/* Style the "Add" button */ +.add-btn { + padding: 10px; + width: 25%; + background: #d9d9d9; + color: #555; + float: left; + text-align: center; + font-size: 16px; + cursor: pointer; + transition: 0.3s; + border-radius: 0; +} + + .add-btn:hover { + background-color: #bbb; + } + +.text-center { + text-align: center; +} + +.healthbar { + width: 80%; + height: 40px; + background-color: #a51417; + margin: auto; + transition: width 500ms; +} + +.controls, .log { + margin-top: 30px; + text-align: center; + padding: 10px; + border: 1px solid #ccc; + box-shadow: 0px 3px 6px #ccc; +} + +.turn { + margin-top: 20px; + margin-bottom: 20px; + font-weight: bold; + font-size: 22px; +} + +.log ul { + list-style: none; + font-weight: bold; + text-transform: uppercase; +} + + .log ul li { + margin: 5px; + } + + .log ul .player-turn { + color: blue; + background-color: #e4e8ff; + } + + .log ul .monster-turn { + color: red; + background-color: #ffc0c1; + } + +button { + margin: 5px; +} + +.start-game { + background-color: #aaffb0; +} + + .start-game:hover { + background-color: #76ff7e; + } + +.basic-1 { + background-color: #ff7367; +} + + .basic-1:hover { + background-color: #ff3f43; + } + +.basic-2 { + background-color: #ff7367; +} + + .basic-2:hover { + background-color: #ff3f43; + } + +.basic-3 { + background-color: #ff7367; +} + + .basic-3:hover { + background-color: #ff3f43; + } + +.smash-1 { + background-color: #aaffb0; +} + + .smash-1:hover { + background-color: #76ff7e; + } + +.smash-2 { + background-color: #aaffb0; +} + + .smash-2:hover { + background-color: #76ff7e; + } + +.special-attack { + background-color: #ffaf4f; +} + + .special-attack:hover { + background-color: #ff9a2b; + } + +.give-up { + background-color: #ffffff; +} + + .give-up:hover { + background-color: #c7c7c7; + } \ No newline at end of file diff --git a/wwwroot/css/site.min.css b/wwwroot/css/site.min.css new file mode 100644 index 0000000..d72cdf1 --- /dev/null +++ b/wwwroot/css/site.min.css @@ -0,0 +1 @@ +body{padding-top:50px;padding-bottom:20px}.body-content{padding-left:15px;padding-right:15px}.carousel-caption p{font-size:20px;line-height:1.4}.carousel-inner .item img[src$=".svg"]{width:100%}#qrCode{margin:15px}@media screen and (max-width:767px){.carousel-caption{display:none}}.my-list{margin:0;padding:0}.my-list li{cursor:pointer;position:relative;padding:12px 8px 12px 40px;list-style-type:none;background:#eee;font-size:18px;transition:.2s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.my-list li:nth-child(odd){background:#f9f9f9}.my-list li:hover{background:#ddd}.my-list li.checked{background:#888;color:#fff;text-decoration:line-through}.my-list li.checked::before{content:'';position:absolute;border-color:#fff;border-style:solid;border-width:0 2px 2px 0;top:10px;left:16px;transform:rotate(45deg);height:15px;width:7px}span{vertical-align:text-top}.alert-dismissible .close{padding:.3rem 1.25rem}.close:hover{background-color:#f44336;color:#fff}.header{background-color:#f44336;padding:30px 40px;color:#fff;text-align:center}.header:after{content:"";display:table;clear:both}.add-btn{padding:10px;width:25%;background:#d9d9d9;color:#555;float:left;text-align:center;font-size:16px;cursor:pointer;transition:.3s;border-radius:0}.add-btn:hover{background-color:#bbb}.text-center{text-align:center}.healthbar{width:80%;height:40px;background-color:#a51417;margin:auto;transition:width 500ms}.controls,.log{margin-top:30px;text-align:center;padding:10px;border:1px solid #ccc;box-shadow:0 3px 6px #ccc}.turn{margin-top:20px;margin-bottom:20px;font-weight:bold;font-size:22px}.log ul{list-style:none;font-weight:bold;text-transform:uppercase}.log ul li{margin:5px}.log ul .player-turn{color:#00f;background-color:#e4e8ff}.log ul .monster-turn{color:#f00;background-color:#ffc0c1}button{margin:5px}.start-game{background-color:#aaffb0}.start-game:hover{background-color:#76ff7e}.basic-1{background-color:#ff7367}.basic-1:hover{background-color:#ff3f43}.basic-2{background-color:#ff7367}.basic-2:hover{background-color:#ff3f43}.basic-3{background-color:#ff7367}.basic-3:hover{background-color:#ff3f43}.smash-1{background-color:#aaffb0}.smash-1:hover{background-color:#76ff7e}.smash-2{background-color:#aaffb0}.smash-2:hover{background-color:#76ff7e}.special-attack{background-color:#ffaf4f}.special-attack:hover{background-color:#ff9a2b}.give-up{background-color:#fff}.give-up:hover{background-color:#c7c7c7} \ No newline at end of file diff --git a/wwwroot/favicon.ico b/wwwroot/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..5c32f4562f353a4fc283edbf1e34be6c07dc0ea2 GIT binary patch literal 85387 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 literal 0 HcmV?d00001 diff --git a/wwwroot/images/banner1.svg b/wwwroot/images/banner1.svg new file mode 100644 index 0000000..557f31f --- /dev/null +++ b/wwwroot/images/banner1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wwwroot/images/banner2.svg b/wwwroot/images/banner2.svg new file mode 100644 index 0000000..4c48808 --- /dev/null +++ b/wwwroot/images/banner2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wwwroot/images/banner3.svg b/wwwroot/images/banner3.svg new file mode 100644 index 0000000..ab2171c --- /dev/null +++ b/wwwroot/images/banner3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wwwroot/images/banner4.svg b/wwwroot/images/banner4.svg new file mode 100644 index 0000000..38b3d7c --- /dev/null +++ b/wwwroot/images/banner4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wwwroot/js/Subscriptions.js b/wwwroot/js/Subscriptions.js new file mode 100644 index 0000000..9ecd057 --- /dev/null +++ b/wwwroot/js/Subscriptions.js @@ -0,0 +1,56 @@ +$(document).ready(function () { + loadPlans(); + onProductChange(); + onPlanChange(); +}); + +function loadPlans() { + var url = '/Identity/Account/Manage/Subscriptions?handler=Products'; + var productId = $('.subscription-products').val(); + var data = { "productId": productId }; + var plans = $('.subscription-plans'); + plans.empty(); + $.getJSON(url, data, function (productPlans) { + if (productPlans !== null) { + $.each(productPlans, function (index, htmlData) { + plans.append($('
  • ").html(this.message).appendTo(r)}))}function s(e){var n=e.data("unobtrusiveContainer");if(n){var t=n.attr("data-valmsg-replace"),r=t?a.parseJSON(t):null;n.addClass("field-validation-valid").removeClass("field-validation-error"),e.removeData("unobtrusiveContainer"),r&&n.empty()}}function l(e){var n=a(this),t="__jquery_unobtrusive_validation_form_reset";if(!n.data(t)){n.data(t,!0);try{n.data("validator").resetForm()}finally{n.removeData(t)}n.find(".validation-summary-errors").addClass("validation-summary-valid").removeClass("validation-summary-errors"),n.find(".field-validation-error").addClass("field-validation-valid").removeClass("field-validation-error").removeData("unobtrusiveContainer").find(">*").removeData("unobtrusiveContainer")}}function m(e){var n=a(e),t=n.data(v),r=a.proxy(l,e),i=p.unobtrusive.options||{},m=function(n,t){var r=i[n];r&&a.isFunction(r)&&r.apply(e,t)};return t||(t={options:{errorClass:i.errorClass||"input-validation-error",errorElement:i.errorElement||"span",errorPlacement:function(){o.apply(e,arguments),m("errorPlacement",arguments)},invalidHandler:function(){d.apply(e,arguments),m("invalidHandler",arguments)},messages:{},rules:{},success:function(){s.apply(e,arguments),m("success",arguments)}},attachValidation:function(){n.off("reset."+v,r).on("reset."+v,r).validate(this.options)},validate:function(){return n.validate(),n.valid()}},n.data(v,t)),t}var u,p=a.validator,v="unobtrusiveValidation";p.unobtrusive={adapters:[],parseElement:function(e,n){var t,r,i,o=a(e),d=o.parents("form")[0];d&&(t=m(d),t.options.rules[e.name]=r={},t.options.messages[e.name]=i={},a.each(this.adapters,function(){var n="data-val-"+this.name,t=o.attr(n),s={};void 0!==t&&(n+="-",a.each(this.params,function(){s[this]=o.attr(n+this)}),this.adapt({element:e,form:d,message:t,params:s,rules:r,messages:i}))}),a.extend(r,{__dummy__:!0}),n||t.attachValidation())},parse:function(e){var n=a(e),t=n.parents().addBack().filter("form").add(n.find("form")).has("[data-val=true]");n.find("[data-val=true]").each(function(){p.unobtrusive.parseElement(this,!0)}),t.each(function(){var a=m(this);a&&a.attachValidation()})}},u=p.unobtrusive.adapters,u.add=function(a,e,n){return n||(n=e,e=[]),this.push({name:a,params:e,adapt:n}),this},u.addBool=function(a,n){return this.add(a,function(t){e(t,n||a,!0)})},u.addMinMax=function(a,n,t,r,i,o){return this.add(a,[i||"min",o||"max"],function(a){var i=a.params.min,o=a.params.max;i&&o?e(a,r,[i,o]):i?e(a,n,i):o&&e(a,t,o)})},u.addSingleVal=function(a,n,t){return this.add(a,[n||"val"],function(r){e(r,t||a,r.params[n])})},p.addMethod("__dummy__",function(a,e,n){return!0}),p.addMethod("regex",function(a,e,n){var t;return this.optional(e)?!0:(t=new RegExp(n).exec(a),t&&0===t.index&&t[0].length===a.length)}),p.addMethod("nonalphamin",function(a,e,n){var t;return n&&(t=a.match(/\W/g),t=t&&t.length>=n),t}),p.methods.extension?(u.addSingleVal("accept","mimtype"),u.addSingleVal("extension","extension")):u.addSingleVal("extension","extension","accept"),u.addSingleVal("regex","pattern"),u.addBool("creditcard").addBool("date").addBool("digits").addBool("email").addBool("number").addBool("url"),u.addMinMax("length","minlength","maxlength","rangelength").addMinMax("range","min","max","range"),u.addMinMax("minlength","minlength").addMinMax("maxlength","minlength","maxlength"),u.add("equalto",["other"],function(n){var o=r(n.element.name),d=n.params.other,s=i(d,o),l=a(n.form).find(":input").filter("[name='"+t(s)+"']")[0];e(n,"equalTo",l)}),u.add("required",function(a){("INPUT"!==a.element.tagName.toUpperCase()||"CHECKBOX"!==a.element.type.toUpperCase())&&e(a,"required",!0)}),u.add("remote",["url","type","additionalfields"],function(o){var d={url:o.params.url,type:o.params.type||"GET",data:{}},s=r(o.element.name);a.each(n(o.params.additionalfields||o.element.name),function(e,n){var r=i(n,s);d.data[r]=function(){var e=a(o.form).find(":input").filter("[name='"+t(r)+"']");return e.is(":checkbox")?e.filter(":checked").val()||e.filter(":hidden").val()||"":e.is(":radio")?e.filter(":checked").val()||"":e.val()}}),e(o,"remote",d)}),u.add("password",["min","nonalphamin","regex"],function(a){a.params.min&&e(a,"minlength",a.params.min),a.params.nonalphamin&&e(a,"nonalphamin",a.params.nonalphamin),a.params.regex&&e(a,"regex",a.params.regex)}),a(function(){p.unobtrusive.parse(document)})}(jQuery); \ No newline at end of file diff --git a/wwwroot/lib/jquery-validation/.bower.json b/wwwroot/lib/jquery-validation/.bower.json new file mode 100644 index 0000000..cab34a4 --- /dev/null +++ b/wwwroot/lib/jquery-validation/.bower.json @@ -0,0 +1,40 @@ +{ + "name": "jquery-validation", + "homepage": "http://jqueryvalidation.org/", + "repository": { + "type": "git", + "url": "git://github.com/jzaefferer/jquery-validation.git" + }, + "authors": [ + "Jörn Zaefferer " + ], + "description": "Form validation made easy", + "main": "dist/jquery.validate.js", + "keywords": [ + "forms", + "validation", + "validate" + ], + "license": "MIT", + "ignore": [ + "**/.*", + "node_modules", + "bower_components", + "test", + "demo", + "lib" + ], + "dependencies": { + "jquery": ">= 1.7.2" + }, + "version": "1.14.0", + "_release": "1.14.0", + "_resolution": { + "type": "version", + "tag": "1.14.0", + "commit": "c1343fb9823392aa9acbe1c3ffd337b8c92fed48" + }, + "_source": "git://github.com/jzaefferer/jquery-validation.git", + "_target": ">=1.8", + "_originalSource": "jquery-validation" +} \ No newline at end of file diff --git a/wwwroot/lib/jquery-validation/LICENSE.md b/wwwroot/lib/jquery-validation/LICENSE.md new file mode 100644 index 0000000..dc377cc --- /dev/null +++ b/wwwroot/lib/jquery-validation/LICENSE.md @@ -0,0 +1,22 @@ +The MIT License (MIT) +===================== + +Copyright Jörn Zaefferer + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/wwwroot/lib/jquery-validation/dist/additional-methods.js b/wwwroot/lib/jquery-validation/dist/additional-methods.js new file mode 100644 index 0000000..df41fbd --- /dev/null +++ b/wwwroot/lib/jquery-validation/dist/additional-methods.js @@ -0,0 +1,998 @@ +/*! + * jQuery Validation Plugin v1.14.0 + * + * http://jqueryvalidation.org/ + * + * Copyright (c) 2015 Jörn Zaefferer + * Released under the MIT license + */ +(function( factory ) { + if ( typeof define === "function" && define.amd ) { + define( ["jquery", "./jquery.validate"], factory ); + } else { + factory( jQuery ); + } +}(function( $ ) { + +(function() { + + function stripHtml(value) { + // remove html tags and space chars + return value.replace(/<.[^<>]*?>/g, " ").replace(/ | /gi, " ") + // remove punctuation + .replace(/[.(),;:!?%#$'\"_+=\/\-“”’]*/g, ""); + } + + $.validator.addMethod("maxWords", function(value, element, params) { + return this.optional(element) || stripHtml(value).match(/\b\w+\b/g).length <= params; + }, $.validator.format("Please enter {0} words or less.")); + + $.validator.addMethod("minWords", function(value, element, params) { + return this.optional(element) || stripHtml(value).match(/\b\w+\b/g).length >= params; + }, $.validator.format("Please enter at least {0} words.")); + + $.validator.addMethod("rangeWords", function(value, element, params) { + var valueStripped = stripHtml(value), + regex = /\b\w+\b/g; + return this.optional(element) || valueStripped.match(regex).length >= params[0] && valueStripped.match(regex).length <= params[1]; + }, $.validator.format("Please enter between {0} and {1} words.")); + +}()); + +// Accept a value from a file input based on a required mimetype +$.validator.addMethod("accept", function(value, element, param) { + // Split mime on commas in case we have multiple types we can accept + var typeParam = typeof param === "string" ? param.replace(/\s/g, "").replace(/,/g, "|") : "image/*", + optionalValue = this.optional(element), + i, file; + + // Element is optional + if (optionalValue) { + return optionalValue; + } + + if ($(element).attr("type") === "file") { + // If we are using a wildcard, make it regex friendly + typeParam = typeParam.replace(/\*/g, ".*"); + + // Check if the element has a FileList before checking each file + if (element.files && element.files.length) { + for (i = 0; i < element.files.length; i++) { + file = element.files[i]; + + // Grab the mimetype from the loaded file, verify it matches + if (!file.type.match(new RegExp( "\\.?(" + typeParam + ")$", "i"))) { + return false; + } + } + } + } + + // Either return true because we've validated each file, or because the + // browser does not support element.files and the FileList feature + return true; +}, $.validator.format("Please enter a value with a valid mimetype.")); + +$.validator.addMethod("alphanumeric", function(value, element) { + return this.optional(element) || /^\w+$/i.test(value); +}, "Letters, numbers, and underscores only please"); + +/* + * Dutch bank account numbers (not 'giro' numbers) have 9 digits + * and pass the '11 check'. + * We accept the notation with spaces, as that is common. + * acceptable: 123456789 or 12 34 56 789 + */ +$.validator.addMethod("bankaccountNL", function(value, element) { + if (this.optional(element)) { + return true; + } + if (!(/^[0-9]{9}|([0-9]{2} ){3}[0-9]{3}$/.test(value))) { + return false; + } + // now '11 check' + var account = value.replace(/ /g, ""), // remove spaces + sum = 0, + len = account.length, + pos, factor, digit; + for ( pos = 0; pos < len; pos++ ) { + factor = len - pos; + digit = account.substring(pos, pos + 1); + sum = sum + factor * digit; + } + return sum % 11 === 0; +}, "Please specify a valid bank account number"); + +$.validator.addMethod("bankorgiroaccountNL", function(value, element) { + return this.optional(element) || + ($.validator.methods.bankaccountNL.call(this, value, element)) || + ($.validator.methods.giroaccountNL.call(this, value, element)); +}, "Please specify a valid bank or giro account number"); + +/** + * BIC is the business identifier code (ISO 9362). This BIC check is not a guarantee for authenticity. + * + * BIC pattern: BBBBCCLLbbb (8 or 11 characters long; bbb is optional) + * + * BIC definition in detail: + * - First 4 characters - bank code (only letters) + * - Next 2 characters - ISO 3166-1 alpha-2 country code (only letters) + * - Next 2 characters - location code (letters and digits) + * a. shall not start with '0' or '1' + * b. second character must be a letter ('O' is not allowed) or one of the following digits ('0' for test (therefore not allowed), '1' for passive participant and '2' for active participant) + * - Last 3 characters - branch code, optional (shall not start with 'X' except in case of 'XXX' for primary office) (letters and digits) + */ +$.validator.addMethod("bic", function(value, element) { + return this.optional( element ) || /^([A-Z]{6}[A-Z2-9][A-NP-Z1-2])(X{3}|[A-WY-Z0-9][A-Z0-9]{2})?$/.test( value ); +}, "Please specify a valid BIC code"); + +/* + * Código de identificación fiscal ( CIF ) is the tax identification code for Spanish legal entities + * Further rules can be found in Spanish on http://es.wikipedia.org/wiki/C%C3%B3digo_de_identificaci%C3%B3n_fiscal + */ +$.validator.addMethod( "cifES", function( value ) { + "use strict"; + + var num = [], + controlDigit, sum, i, count, tmp, secondDigit; + + value = value.toUpperCase(); + + // Quick format test + if ( !value.match( "((^[A-Z]{1}[0-9]{7}[A-Z0-9]{1}$|^[T]{1}[A-Z0-9]{8}$)|^[0-9]{8}[A-Z]{1}$)" ) ) { + return false; + } + + for ( i = 0; i < 9; i++ ) { + num[ i ] = parseInt( value.charAt( i ), 10 ); + } + + // Algorithm for checking CIF codes + sum = num[ 2 ] + num[ 4 ] + num[ 6 ]; + for ( count = 1; count < 8; count += 2 ) { + tmp = ( 2 * num[ count ] ).toString(); + secondDigit = tmp.charAt( 1 ); + + sum += parseInt( tmp.charAt( 0 ), 10 ) + ( secondDigit === "" ? 0 : parseInt( secondDigit, 10 ) ); + } + + /* The first (position 1) is a letter following the following criteria: + * A. Corporations + * B. LLCs + * C. General partnerships + * D. Companies limited partnerships + * E. Communities of goods + * F. Cooperative Societies + * G. Associations + * H. Communities of homeowners in horizontal property regime + * J. Civil Societies + * K. Old format + * L. Old format + * M. Old format + * N. Nonresident entities + * P. Local authorities + * Q. Autonomous bodies, state or not, and the like, and congregations and religious institutions + * R. Congregations and religious institutions (since 2008 ORDER EHA/451/2008) + * S. Organs of State Administration and regions + * V. Agrarian Transformation + * W. Permanent establishments of non-resident in Spain + */ + if ( /^[ABCDEFGHJNPQRSUVW]{1}/.test( value ) ) { + sum += ""; + controlDigit = 10 - parseInt( sum.charAt( sum.length - 1 ), 10 ); + value += controlDigit; + return ( num[ 8 ].toString() === String.fromCharCode( 64 + controlDigit ) || num[ 8 ].toString() === value.charAt( value.length - 1 ) ); + } + + return false; + +}, "Please specify a valid CIF number." ); + +/* + * Brazillian CPF number (Cadastrado de Pessoas Físicas) is the equivalent of a Brazilian tax registration number. + * CPF numbers have 11 digits in total: 9 numbers followed by 2 check numbers that are being used for validation. + */ +$.validator.addMethod("cpfBR", function(value) { + // Removing special characters from value + value = value.replace(/([~!@#$%^&*()_+=`{}\[\]\-|\\:;'<>,.\/? ])+/g, ""); + + // Checking value to have 11 digits only + if (value.length !== 11) { + return false; + } + + var sum = 0, + firstCN, secondCN, checkResult, i; + + firstCN = parseInt(value.substring(9, 10), 10); + secondCN = parseInt(value.substring(10, 11), 10); + + checkResult = function(sum, cn) { + var result = (sum * 10) % 11; + if ((result === 10) || (result === 11)) {result = 0;} + return (result === cn); + }; + + // Checking for dump data + if (value === "" || + value === "00000000000" || + value === "11111111111" || + value === "22222222222" || + value === "33333333333" || + value === "44444444444" || + value === "55555555555" || + value === "66666666666" || + value === "77777777777" || + value === "88888888888" || + value === "99999999999" + ) { + return false; + } + + // Step 1 - using first Check Number: + for ( i = 1; i <= 9; i++ ) { + sum = sum + parseInt(value.substring(i - 1, i), 10) * (11 - i); + } + + // If first Check Number (CN) is valid, move to Step 2 - using second Check Number: + if ( checkResult(sum, firstCN) ) { + sum = 0; + for ( i = 1; i <= 10; i++ ) { + sum = sum + parseInt(value.substring(i - 1, i), 10) * (12 - i); + } + return checkResult(sum, secondCN); + } + return false; + +}, "Please specify a valid CPF number"); + +/* NOTICE: Modified version of Castle.Components.Validator.CreditCardValidator + * Redistributed under the the Apache License 2.0 at http://www.apache.org/licenses/LICENSE-2.0 + * Valid Types: mastercard, visa, amex, dinersclub, enroute, discover, jcb, unknown, all (overrides all other settings) + */ +$.validator.addMethod("creditcardtypes", function(value, element, param) { + if (/[^0-9\-]+/.test(value)) { + return false; + } + + value = value.replace(/\D/g, ""); + + var validTypes = 0x0000; + + if (param.mastercard) { + validTypes |= 0x0001; + } + if (param.visa) { + validTypes |= 0x0002; + } + if (param.amex) { + validTypes |= 0x0004; + } + if (param.dinersclub) { + validTypes |= 0x0008; + } + if (param.enroute) { + validTypes |= 0x0010; + } + if (param.discover) { + validTypes |= 0x0020; + } + if (param.jcb) { + validTypes |= 0x0040; + } + if (param.unknown) { + validTypes |= 0x0080; + } + if (param.all) { + validTypes = 0x0001 | 0x0002 | 0x0004 | 0x0008 | 0x0010 | 0x0020 | 0x0040 | 0x0080; + } + if (validTypes & 0x0001 && /^(5[12345])/.test(value)) { //mastercard + return value.length === 16; + } + if (validTypes & 0x0002 && /^(4)/.test(value)) { //visa + return value.length === 16; + } + if (validTypes & 0x0004 && /^(3[47])/.test(value)) { //amex + return value.length === 15; + } + if (validTypes & 0x0008 && /^(3(0[012345]|[68]))/.test(value)) { //dinersclub + return value.length === 14; + } + if (validTypes & 0x0010 && /^(2(014|149))/.test(value)) { //enroute + return value.length === 15; + } + if (validTypes & 0x0020 && /^(6011)/.test(value)) { //discover + return value.length === 16; + } + if (validTypes & 0x0040 && /^(3)/.test(value)) { //jcb + return value.length === 16; + } + if (validTypes & 0x0040 && /^(2131|1800)/.test(value)) { //jcb + return value.length === 15; + } + if (validTypes & 0x0080) { //unknown + return true; + } + return false; +}, "Please enter a valid credit card number."); + +/** + * Validates currencies with any given symbols by @jameslouiz + * Symbols can be optional or required. Symbols required by default + * + * Usage examples: + * currency: ["£", false] - Use false for soft currency validation + * currency: ["$", false] + * currency: ["RM", false] - also works with text based symbols such as "RM" - Malaysia Ringgit etc + * + * + * + * Soft symbol checking + * currencyInput: { + * currency: ["$", false] + * } + * + * Strict symbol checking (default) + * currencyInput: { + * currency: "$" + * //OR + * currency: ["$", true] + * } + * + * Multiple Symbols + * currencyInput: { + * currency: "$,£,¢" + * } + */ +$.validator.addMethod("currency", function(value, element, param) { + var isParamString = typeof param === "string", + symbol = isParamString ? param : param[0], + soft = isParamString ? true : param[1], + regex; + + symbol = symbol.replace(/,/g, ""); + symbol = soft ? symbol + "]" : symbol + "]?"; + regex = "^[" + symbol + "([1-9]{1}[0-9]{0,2}(\\,[0-9]{3})*(\\.[0-9]{0,2})?|[1-9]{1}[0-9]{0,}(\\.[0-9]{0,2})?|0(\\.[0-9]{0,2})?|(\\.[0-9]{1,2})?)$"; + regex = new RegExp(regex); + return this.optional(element) || regex.test(value); + +}, "Please specify a valid currency"); + +$.validator.addMethod("dateFA", function(value, element) { + return this.optional(element) || /^[1-4]\d{3}\/((0?[1-6]\/((3[0-1])|([1-2][0-9])|(0?[1-9])))|((1[0-2]|(0?[7-9]))\/(30|([1-2][0-9])|(0?[1-9]))))$/.test(value); +}, $.validator.messages.date); + +/** + * Return true, if the value is a valid date, also making this formal check dd/mm/yyyy. + * + * @example $.validator.methods.date("01/01/1900") + * @result true + * + * @example $.validator.methods.date("01/13/1990") + * @result false + * + * @example $.validator.methods.date("01.01.1900") + * @result false + * + * @example + * @desc Declares an optional input element whose value must be a valid date. + * + * @name $.validator.methods.dateITA + * @type Boolean + * @cat Plugins/Validate/Methods + */ +$.validator.addMethod("dateITA", function(value, element) { + var check = false, + re = /^\d{1,2}\/\d{1,2}\/\d{4}$/, + adata, gg, mm, aaaa, xdata; + if ( re.test(value)) { + adata = value.split("/"); + gg = parseInt(adata[0], 10); + mm = parseInt(adata[1], 10); + aaaa = parseInt(adata[2], 10); + xdata = new Date(Date.UTC(aaaa, mm - 1, gg, 12, 0, 0, 0)); + if ( ( xdata.getUTCFullYear() === aaaa ) && ( xdata.getUTCMonth () === mm - 1 ) && ( xdata.getUTCDate() === gg ) ) { + check = true; + } else { + check = false; + } + } else { + check = false; + } + return this.optional(element) || check; +}, $.validator.messages.date); + +$.validator.addMethod("dateNL", function(value, element) { + return this.optional(element) || /^(0?[1-9]|[12]\d|3[01])[\.\/\-](0?[1-9]|1[012])[\.\/\-]([12]\d)?(\d\d)$/.test(value); +}, $.validator.messages.date); + +// Older "accept" file extension method. Old docs: http://docs.jquery.com/Plugins/Validation/Methods/accept +$.validator.addMethod("extension", function(value, element, param) { + param = typeof param === "string" ? param.replace(/,/g, "|") : "png|jpe?g|gif"; + return this.optional(element) || value.match(new RegExp("\\.(" + param + ")$", "i")); +}, $.validator.format("Please enter a value with a valid extension.")); + +/** + * Dutch giro account numbers (not bank numbers) have max 7 digits + */ +$.validator.addMethod("giroaccountNL", function(value, element) { + return this.optional(element) || /^[0-9]{1,7}$/.test(value); +}, "Please specify a valid giro account number"); + +/** + * IBAN is the international bank account number. + * It has a country - specific format, that is checked here too + */ +$.validator.addMethod("iban", function(value, element) { + // some quick simple tests to prevent needless work + if (this.optional(element)) { + return true; + } + + // remove spaces and to upper case + var iban = value.replace(/ /g, "").toUpperCase(), + ibancheckdigits = "", + leadingZeroes = true, + cRest = "", + cOperator = "", + countrycode, ibancheck, charAt, cChar, bbanpattern, bbancountrypatterns, ibanregexp, i, p; + + // check the country code and find the country specific format + countrycode = iban.substring(0, 2); + bbancountrypatterns = { + "AL": "\\d{8}[\\dA-Z]{16}", + "AD": "\\d{8}[\\dA-Z]{12}", + "AT": "\\d{16}", + "AZ": "[\\dA-Z]{4}\\d{20}", + "BE": "\\d{12}", + "BH": "[A-Z]{4}[\\dA-Z]{14}", + "BA": "\\d{16}", + "BR": "\\d{23}[A-Z][\\dA-Z]", + "BG": "[A-Z]{4}\\d{6}[\\dA-Z]{8}", + "CR": "\\d{17}", + "HR": "\\d{17}", + "CY": "\\d{8}[\\dA-Z]{16}", + "CZ": "\\d{20}", + "DK": "\\d{14}", + "DO": "[A-Z]{4}\\d{20}", + "EE": "\\d{16}", + "FO": "\\d{14}", + "FI": "\\d{14}", + "FR": "\\d{10}[\\dA-Z]{11}\\d{2}", + "GE": "[\\dA-Z]{2}\\d{16}", + "DE": "\\d{18}", + "GI": "[A-Z]{4}[\\dA-Z]{15}", + "GR": "\\d{7}[\\dA-Z]{16}", + "GL": "\\d{14}", + "GT": "[\\dA-Z]{4}[\\dA-Z]{20}", + "HU": "\\d{24}", + "IS": "\\d{22}", + "IE": "[\\dA-Z]{4}\\d{14}", + "IL": "\\d{19}", + "IT": "[A-Z]\\d{10}[\\dA-Z]{12}", + "KZ": "\\d{3}[\\dA-Z]{13}", + "KW": "[A-Z]{4}[\\dA-Z]{22}", + "LV": "[A-Z]{4}[\\dA-Z]{13}", + "LB": "\\d{4}[\\dA-Z]{20}", + "LI": "\\d{5}[\\dA-Z]{12}", + "LT": "\\d{16}", + "LU": "\\d{3}[\\dA-Z]{13}", + "MK": "\\d{3}[\\dA-Z]{10}\\d{2}", + "MT": "[A-Z]{4}\\d{5}[\\dA-Z]{18}", + "MR": "\\d{23}", + "MU": "[A-Z]{4}\\d{19}[A-Z]{3}", + "MC": "\\d{10}[\\dA-Z]{11}\\d{2}", + "MD": "[\\dA-Z]{2}\\d{18}", + "ME": "\\d{18}", + "NL": "[A-Z]{4}\\d{10}", + "NO": "\\d{11}", + "PK": "[\\dA-Z]{4}\\d{16}", + "PS": "[\\dA-Z]{4}\\d{21}", + "PL": "\\d{24}", + "PT": "\\d{21}", + "RO": "[A-Z]{4}[\\dA-Z]{16}", + "SM": "[A-Z]\\d{10}[\\dA-Z]{12}", + "SA": "\\d{2}[\\dA-Z]{18}", + "RS": "\\d{18}", + "SK": "\\d{20}", + "SI": "\\d{15}", + "ES": "\\d{20}", + "SE": "\\d{20}", + "CH": "\\d{5}[\\dA-Z]{12}", + "TN": "\\d{20}", + "TR": "\\d{5}[\\dA-Z]{17}", + "AE": "\\d{3}\\d{16}", + "GB": "[A-Z]{4}\\d{14}", + "VG": "[\\dA-Z]{4}\\d{16}" + }; + + bbanpattern = bbancountrypatterns[countrycode]; + // As new countries will start using IBAN in the + // future, we only check if the countrycode is known. + // This prevents false negatives, while almost all + // false positives introduced by this, will be caught + // by the checksum validation below anyway. + // Strict checking should return FALSE for unknown + // countries. + if (typeof bbanpattern !== "undefined") { + ibanregexp = new RegExp("^[A-Z]{2}\\d{2}" + bbanpattern + "$", ""); + if (!(ibanregexp.test(iban))) { + return false; // invalid country specific format + } + } + + // now check the checksum, first convert to digits + ibancheck = iban.substring(4, iban.length) + iban.substring(0, 4); + for (i = 0; i < ibancheck.length; i++) { + charAt = ibancheck.charAt(i); + if (charAt !== "0") { + leadingZeroes = false; + } + if (!leadingZeroes) { + ibancheckdigits += "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".indexOf(charAt); + } + } + + // calculate the result of: ibancheckdigits % 97 + for (p = 0; p < ibancheckdigits.length; p++) { + cChar = ibancheckdigits.charAt(p); + cOperator = "" + cRest + "" + cChar; + cRest = cOperator % 97; + } + return cRest === 1; +}, "Please specify a valid IBAN"); + +$.validator.addMethod("integer", function(value, element) { + return this.optional(element) || /^-?\d+$/.test(value); +}, "A positive or negative non-decimal number please"); + +$.validator.addMethod("ipv4", function(value, element) { + return this.optional(element) || /^(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)$/i.test(value); +}, "Please enter a valid IP v4 address."); + +$.validator.addMethod("ipv6", function(value, element) { + return this.optional(element) || /^((([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))$/i.test(value); +}, "Please enter a valid IP v6 address."); + +$.validator.addMethod("lettersonly", function(value, element) { + return this.optional(element) || /^[a-z]+$/i.test(value); +}, "Letters only please"); + +$.validator.addMethod("letterswithbasicpunc", function(value, element) { + return this.optional(element) || /^[a-z\-.,()'"\s]+$/i.test(value); +}, "Letters or punctuation only please"); + +$.validator.addMethod("mobileNL", function(value, element) { + return this.optional(element) || /^((\+|00(\s|\s?\-\s?)?)31(\s|\s?\-\s?)?(\(0\)[\-\s]?)?|0)6((\s|\s?\-\s?)?[0-9]){8}$/.test(value); +}, "Please specify a valid mobile number"); + +/* For UK phone functions, do the following server side processing: + * Compare original input with this RegEx pattern: + * ^\(?(?:(?:00\)?[\s\-]?\(?|\+)(44)\)?[\s\-]?\(?(?:0\)?[\s\-]?\(?)?|0)([1-9]\d{1,4}\)?[\s\d\-]+)$ + * Extract $1 and set $prefix to '+44' if $1 is '44', otherwise set $prefix to '0' + * Extract $2 and remove hyphens, spaces and parentheses. Phone number is combined $prefix and $2. + * A number of very detailed GB telephone number RegEx patterns can also be found at: + * http://www.aa-asterisk.org.uk/index.php/Regular_Expressions_for_Validating_and_Formatting_GB_Telephone_Numbers + */ +$.validator.addMethod("mobileUK", function(phone_number, element) { + phone_number = phone_number.replace(/\(|\)|\s+|-/g, ""); + return this.optional(element) || phone_number.length > 9 && + phone_number.match(/^(?:(?:(?:00\s?|\+)44\s?|0)7(?:[1345789]\d{2}|624)\s?\d{3}\s?\d{3})$/); +}, "Please specify a valid mobile number"); + +/* + * The número de identidad de extranjero ( NIE )is a code used to identify the non-nationals in Spain + */ +$.validator.addMethod( "nieES", function( value ) { + "use strict"; + + value = value.toUpperCase(); + + // Basic format test + if ( !value.match( "((^[A-Z]{1}[0-9]{7}[A-Z0-9]{1}$|^[T]{1}[A-Z0-9]{8}$)|^[0-9]{8}[A-Z]{1}$)" ) ) { + return false; + } + + // Test NIE + //T + if ( /^[T]{1}/.test( value ) ) { + return ( value[ 8 ] === /^[T]{1}[A-Z0-9]{8}$/.test( value ) ); + } + + //XYZ + if ( /^[XYZ]{1}/.test( value ) ) { + return ( + value[ 8 ] === "TRWAGMYFPDXBNJZSQVHLCKE".charAt( + value.replace( "X", "0" ) + .replace( "Y", "1" ) + .replace( "Z", "2" ) + .substring( 0, 8 ) % 23 + ) + ); + } + + return false; + +}, "Please specify a valid NIE number." ); + +/* + * The Número de Identificación Fiscal ( NIF ) is the way tax identification used in Spain for individuals + */ +$.validator.addMethod( "nifES", function( value ) { + "use strict"; + + value = value.toUpperCase(); + + // Basic format test + if ( !value.match("((^[A-Z]{1}[0-9]{7}[A-Z0-9]{1}$|^[T]{1}[A-Z0-9]{8}$)|^[0-9]{8}[A-Z]{1}$)") ) { + return false; + } + + // Test NIF + if ( /^[0-9]{8}[A-Z]{1}$/.test( value ) ) { + return ( "TRWAGMYFPDXBNJZSQVHLCKE".charAt( value.substring( 8, 0 ) % 23 ) === value.charAt( 8 ) ); + } + // Test specials NIF (starts with K, L or M) + if ( /^[KLM]{1}/.test( value ) ) { + return ( value[ 8 ] === String.fromCharCode( 64 ) ); + } + + return false; + +}, "Please specify a valid NIF number." ); + +jQuery.validator.addMethod( "notEqualTo", function( value, element, param ) { + return this.optional(element) || !$.validator.methods.equalTo.call( this, value, element, param ); +}, "Please enter a different value, values must not be the same." ); + +$.validator.addMethod("nowhitespace", function(value, element) { + return this.optional(element) || /^\S+$/i.test(value); +}, "No white space please"); + +/** +* Return true if the field value matches the given format RegExp +* +* @example $.validator.methods.pattern("AR1004",element,/^AR\d{4}$/) +* @result true +* +* @example $.validator.methods.pattern("BR1004",element,/^AR\d{4}$/) +* @result false +* +* @name $.validator.methods.pattern +* @type Boolean +* @cat Plugins/Validate/Methods +*/ +$.validator.addMethod("pattern", function(value, element, param) { + if (this.optional(element)) { + return true; + } + if (typeof param === "string") { + param = new RegExp("^(?:" + param + ")$"); + } + return param.test(value); +}, "Invalid format."); + +/** + * Dutch phone numbers have 10 digits (or 11 and start with +31). + */ +$.validator.addMethod("phoneNL", function(value, element) { + return this.optional(element) || /^((\+|00(\s|\s?\-\s?)?)31(\s|\s?\-\s?)?(\(0\)[\-\s]?)?|0)[1-9]((\s|\s?\-\s?)?[0-9]){8}$/.test(value); +}, "Please specify a valid phone number."); + +/* For UK phone functions, do the following server side processing: + * Compare original input with this RegEx pattern: + * ^\(?(?:(?:00\)?[\s\-]?\(?|\+)(44)\)?[\s\-]?\(?(?:0\)?[\s\-]?\(?)?|0)([1-9]\d{1,4}\)?[\s\d\-]+)$ + * Extract $1 and set $prefix to '+44' if $1 is '44', otherwise set $prefix to '0' + * Extract $2 and remove hyphens, spaces and parentheses. Phone number is combined $prefix and $2. + * A number of very detailed GB telephone number RegEx patterns can also be found at: + * http://www.aa-asterisk.org.uk/index.php/Regular_Expressions_for_Validating_and_Formatting_GB_Telephone_Numbers + */ +$.validator.addMethod("phoneUK", function(phone_number, element) { + phone_number = phone_number.replace(/\(|\)|\s+|-/g, ""); + return this.optional(element) || phone_number.length > 9 && + phone_number.match(/^(?:(?:(?:00\s?|\+)44\s?)|(?:\(?0))(?:\d{2}\)?\s?\d{4}\s?\d{4}|\d{3}\)?\s?\d{3}\s?\d{3,4}|\d{4}\)?\s?(?:\d{5}|\d{3}\s?\d{3})|\d{5}\)?\s?\d{4,5})$/); +}, "Please specify a valid phone number"); + +/** + * matches US phone number format + * + * where the area code may not start with 1 and the prefix may not start with 1 + * allows '-' or ' ' as a separator and allows parens around area code + * some people may want to put a '1' in front of their number + * + * 1(212)-999-2345 or + * 212 999 2344 or + * 212-999-0983 + * + * but not + * 111-123-5434 + * and not + * 212 123 4567 + */ +$.validator.addMethod("phoneUS", function(phone_number, element) { + phone_number = phone_number.replace(/\s+/g, ""); + return this.optional(element) || phone_number.length > 9 && + phone_number.match(/^(\+?1-?)?(\([2-9]([02-9]\d|1[02-9])\)|[2-9]([02-9]\d|1[02-9]))-?[2-9]([02-9]\d|1[02-9])-?\d{4}$/); +}, "Please specify a valid phone number"); + +/* For UK phone functions, do the following server side processing: + * Compare original input with this RegEx pattern: + * ^\(?(?:(?:00\)?[\s\-]?\(?|\+)(44)\)?[\s\-]?\(?(?:0\)?[\s\-]?\(?)?|0)([1-9]\d{1,4}\)?[\s\d\-]+)$ + * Extract $1 and set $prefix to '+44' if $1 is '44', otherwise set $prefix to '0' + * Extract $2 and remove hyphens, spaces and parentheses. Phone number is combined $prefix and $2. + * A number of very detailed GB telephone number RegEx patterns can also be found at: + * http://www.aa-asterisk.org.uk/index.php/Regular_Expressions_for_Validating_and_Formatting_GB_Telephone_Numbers + */ +//Matches UK landline + mobile, accepting only 01-3 for landline or 07 for mobile to exclude many premium numbers +$.validator.addMethod("phonesUK", function(phone_number, element) { + phone_number = phone_number.replace(/\(|\)|\s+|-/g, ""); + return this.optional(element) || phone_number.length > 9 && + phone_number.match(/^(?:(?:(?:00\s?|\+)44\s?|0)(?:1\d{8,9}|[23]\d{9}|7(?:[1345789]\d{8}|624\d{6})))$/); +}, "Please specify a valid uk phone number"); + +/** + * Matches a valid Canadian Postal Code + * + * @example jQuery.validator.methods.postalCodeCA( "H0H 0H0", element ) + * @result true + * + * @example jQuery.validator.methods.postalCodeCA( "H0H0H0", element ) + * @result false + * + * @name jQuery.validator.methods.postalCodeCA + * @type Boolean + * @cat Plugins/Validate/Methods + */ +$.validator.addMethod( "postalCodeCA", function( value, element ) { + return this.optional( element ) || /^[ABCEGHJKLMNPRSTVXY]\d[A-Z] \d[A-Z]\d$/.test( value ); +}, "Please specify a valid postal code" ); + +/* +* Valida CEPs do brasileiros: +* +* Formatos aceitos: +* 99999-999 +* 99.999-999 +* 99999999 +*/ +$.validator.addMethod("postalcodeBR", function(cep_value, element) { + return this.optional(element) || /^\d{2}.\d{3}-\d{3}?$|^\d{5}-?\d{3}?$/.test( cep_value ); +}, "Informe um CEP válido."); + +/* Matches Italian postcode (CAP) */ +$.validator.addMethod("postalcodeIT", function(value, element) { + return this.optional(element) || /^\d{5}$/.test(value); +}, "Please specify a valid postal code"); + +$.validator.addMethod("postalcodeNL", function(value, element) { + return this.optional(element) || /^[1-9][0-9]{3}\s?[a-zA-Z]{2}$/.test(value); +}, "Please specify a valid postal code"); + +// Matches UK postcode. Does not match to UK Channel Islands that have their own postcodes (non standard UK) +$.validator.addMethod("postcodeUK", function(value, element) { + return this.optional(element) || /^((([A-PR-UWYZ][0-9])|([A-PR-UWYZ][0-9][0-9])|([A-PR-UWYZ][A-HK-Y][0-9])|([A-PR-UWYZ][A-HK-Y][0-9][0-9])|([A-PR-UWYZ][0-9][A-HJKSTUW])|([A-PR-UWYZ][A-HK-Y][0-9][ABEHMNPRVWXY]))\s?([0-9][ABD-HJLNP-UW-Z]{2})|(GIR)\s?(0AA))$/i.test(value); +}, "Please specify a valid UK postcode"); + +/* + * Lets you say "at least X inputs that match selector Y must be filled." + * + * The end result is that neither of these inputs: + * + * + * + * + * ...will validate unless at least one of them is filled. + * + * partnumber: {require_from_group: [1,".productinfo"]}, + * description: {require_from_group: [1,".productinfo"]} + * + * options[0]: number of fields that must be filled in the group + * options[1]: CSS selector that defines the group of conditionally required fields + */ +$.validator.addMethod("require_from_group", function(value, element, options) { + var $fields = $(options[1], element.form), + $fieldsFirst = $fields.eq(0), + validator = $fieldsFirst.data("valid_req_grp") ? $fieldsFirst.data("valid_req_grp") : $.extend({}, this), + isValid = $fields.filter(function() { + return validator.elementValue(this); + }).length >= options[0]; + + // Store the cloned validator for future validation + $fieldsFirst.data("valid_req_grp", validator); + + // If element isn't being validated, run each require_from_group field's validation rules + if (!$(element).data("being_validated")) { + $fields.data("being_validated", true); + $fields.each(function() { + validator.element(this); + }); + $fields.data("being_validated", false); + } + return isValid; +}, $.validator.format("Please fill at least {0} of these fields.")); + +/* + * Lets you say "either at least X inputs that match selector Y must be filled, + * OR they must all be skipped (left blank)." + * + * The end result, is that none of these inputs: + * + * + * + * + * + * ...will validate unless either at least two of them are filled, + * OR none of them are. + * + * partnumber: {skip_or_fill_minimum: [2,".productinfo"]}, + * description: {skip_or_fill_minimum: [2,".productinfo"]}, + * color: {skip_or_fill_minimum: [2,".productinfo"]} + * + * options[0]: number of fields that must be filled in the group + * options[1]: CSS selector that defines the group of conditionally required fields + * + */ +$.validator.addMethod("skip_or_fill_minimum", function(value, element, options) { + var $fields = $(options[1], element.form), + $fieldsFirst = $fields.eq(0), + validator = $fieldsFirst.data("valid_skip") ? $fieldsFirst.data("valid_skip") : $.extend({}, this), + numberFilled = $fields.filter(function() { + return validator.elementValue(this); + }).length, + isValid = numberFilled === 0 || numberFilled >= options[0]; + + // Store the cloned validator for future validation + $fieldsFirst.data("valid_skip", validator); + + // If element isn't being validated, run each skip_or_fill_minimum field's validation rules + if (!$(element).data("being_validated")) { + $fields.data("being_validated", true); + $fields.each(function() { + validator.element(this); + }); + $fields.data("being_validated", false); + } + return isValid; +}, $.validator.format("Please either skip these fields or fill at least {0} of them.")); + +/* Validates US States and/or Territories by @jdforsythe + * Can be case insensitive or require capitalization - default is case insensitive + * Can include US Territories or not - default does not + * Can include US Military postal abbreviations (AA, AE, AP) - default does not + * + * Note: "States" always includes DC (District of Colombia) + * + * Usage examples: + * + * This is the default - case insensitive, no territories, no military zones + * stateInput: { + * caseSensitive: false, + * includeTerritories: false, + * includeMilitary: false + * } + * + * Only allow capital letters, no territories, no military zones + * stateInput: { + * caseSensitive: false + * } + * + * Case insensitive, include territories but not military zones + * stateInput: { + * includeTerritories: true + * } + * + * Only allow capital letters, include territories and military zones + * stateInput: { + * caseSensitive: true, + * includeTerritories: true, + * includeMilitary: true + * } + * + * + * + */ + +$.validator.addMethod("stateUS", function(value, element, options) { + var isDefault = typeof options === "undefined", + caseSensitive = ( isDefault || typeof options.caseSensitive === "undefined" ) ? false : options.caseSensitive, + includeTerritories = ( isDefault || typeof options.includeTerritories === "undefined" ) ? false : options.includeTerritories, + includeMilitary = ( isDefault || typeof options.includeMilitary === "undefined" ) ? false : options.includeMilitary, + regex; + + if (!includeTerritories && !includeMilitary) { + regex = "^(A[KLRZ]|C[AOT]|D[CE]|FL|GA|HI|I[ADLN]|K[SY]|LA|M[ADEINOST]|N[CDEHJMVY]|O[HKR]|PA|RI|S[CD]|T[NX]|UT|V[AT]|W[AIVY])$"; + } else if (includeTerritories && includeMilitary) { + regex = "^(A[AEKLPRSZ]|C[AOT]|D[CE]|FL|G[AU]|HI|I[ADLN]|K[SY]|LA|M[ADEINOPST]|N[CDEHJMVY]|O[HKR]|P[AR]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY])$"; + } else if (includeTerritories) { + regex = "^(A[KLRSZ]|C[AOT]|D[CE]|FL|G[AU]|HI|I[ADLN]|K[SY]|LA|M[ADEINOPST]|N[CDEHJMVY]|O[HKR]|P[AR]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY])$"; + } else { + regex = "^(A[AEKLPRZ]|C[AOT]|D[CE]|FL|GA|HI|I[ADLN]|K[SY]|LA|M[ADEINOST]|N[CDEHJMVY]|O[HKR]|PA|RI|S[CD]|T[NX]|UT|V[AT]|W[AIVY])$"; + } + + regex = caseSensitive ? new RegExp(regex) : new RegExp(regex, "i"); + return this.optional(element) || regex.test(value); +}, +"Please specify a valid state"); + +// TODO check if value starts with <, otherwise don't try stripping anything +$.validator.addMethod("strippedminlength", function(value, element, param) { + return $(value).text().length >= param; +}, $.validator.format("Please enter at least {0} characters")); + +$.validator.addMethod("time", function(value, element) { + return this.optional(element) || /^([01]\d|2[0-3]|[0-9])(:[0-5]\d){1,2}$/.test(value); +}, "Please enter a valid time, between 00:00 and 23:59"); + +$.validator.addMethod("time12h", function(value, element) { + return this.optional(element) || /^((0?[1-9]|1[012])(:[0-5]\d){1,2}(\ ?[AP]M))$/i.test(value); +}, "Please enter a valid time in 12-hour am/pm format"); + +// same as url, but TLD is optional +$.validator.addMethod("url2", function(value, element) { + return this.optional(element) || /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)*(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(value); +}, $.validator.messages.url); + +/** + * Return true, if the value is a valid vehicle identification number (VIN). + * + * Works with all kind of text inputs. + * + * @example + * @desc Declares a required input element whose value must be a valid vehicle identification number. + * + * @name $.validator.methods.vinUS + * @type Boolean + * @cat Plugins/Validate/Methods + */ +$.validator.addMethod("vinUS", function(v) { + if (v.length !== 17) { + return false; + } + + var LL = [ "A", "B", "C", "D", "E", "F", "G", "H", "J", "K", "L", "M", "N", "P", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" ], + VL = [ 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 7, 9, 2, 3, 4, 5, 6, 7, 8, 9 ], + FL = [ 8, 7, 6, 5, 4, 3, 2, 10, 0, 9, 8, 7, 6, 5, 4, 3, 2 ], + rs = 0, + i, n, d, f, cd, cdv; + + for (i = 0; i < 17; i++) { + f = FL[i]; + d = v.slice(i, i + 1); + if (i === 8) { + cdv = d; + } + if (!isNaN(d)) { + d *= f; + } else { + for (n = 0; n < LL.length; n++) { + if (d.toUpperCase() === LL[n]) { + d = VL[n]; + d *= f; + if (isNaN(cdv) && n === 8) { + cdv = LL[n]; + } + break; + } + } + } + rs += d; + } + cd = rs % 11; + if (cd === 10) { + cd = "X"; + } + if (cd === cdv) { + return true; + } + return false; +}, "The specified vehicle identification number (VIN) is invalid."); + +$.validator.addMethod("zipcodeUS", function(value, element) { + return this.optional(element) || /^\d{5}(-\d{4})?$/.test(value); +}, "The specified US ZIP Code is invalid"); + +$.validator.addMethod("ziprange", function(value, element) { + return this.optional(element) || /^90[2-5]\d\{2\}-\d{4}$/.test(value); +}, "Your ZIP-code must be in the range 902xx-xxxx to 905xx-xxxx"); + +})); \ No newline at end of file diff --git a/wwwroot/lib/jquery-validation/dist/jquery.validate.js b/wwwroot/lib/jquery-validation/dist/jquery.validate.js new file mode 100644 index 0000000..4e979bc --- /dev/null +++ b/wwwroot/lib/jquery-validation/dist/jquery.validate.js @@ -0,0 +1,1398 @@ +/*! + * jQuery Validation Plugin v1.14.0 + * + * http://jqueryvalidation.org/ + * + * Copyright (c) 2015 Jörn Zaefferer + * Released under the MIT license + */ +(function( factory ) { + if ( typeof define === "function" && define.amd ) { + define( ["jquery"], factory ); + } else { + factory( jQuery ); + } +}(function( $ ) { + +$.extend($.fn, { + // http://jqueryvalidation.org/validate/ + validate: function( options ) { + + // if nothing is selected, return nothing; can't chain anyway + if ( !this.length ) { + if ( options && options.debug && window.console ) { + console.warn( "Nothing selected, can't validate, returning nothing." ); + } + return; + } + + // check if a validator for this form was already created + var validator = $.data( this[ 0 ], "validator" ); + if ( validator ) { + return validator; + } + + // Add novalidate tag if HTML5. + this.attr( "novalidate", "novalidate" ); + + validator = new $.validator( options, this[ 0 ] ); + $.data( this[ 0 ], "validator", validator ); + + if ( validator.settings.onsubmit ) { + + this.on( "click.validate", ":submit", function( event ) { + if ( validator.settings.submitHandler ) { + validator.submitButton = event.target; + } + + // allow suppressing validation by adding a cancel class to the submit button + if ( $( this ).hasClass( "cancel" ) ) { + validator.cancelSubmit = true; + } + + // allow suppressing validation by adding the html5 formnovalidate attribute to the submit button + if ( $( this ).attr( "formnovalidate" ) !== undefined ) { + validator.cancelSubmit = true; + } + }); + + // validate the form on submit + this.on( "submit.validate", function( event ) { + if ( validator.settings.debug ) { + // prevent form submit to be able to see console output + event.preventDefault(); + } + function handle() { + var hidden, result; + if ( validator.settings.submitHandler ) { + if ( validator.submitButton ) { + // insert a hidden input as a replacement for the missing submit button + hidden = $( "" ) + .attr( "name", validator.submitButton.name ) + .val( $( validator.submitButton ).val() ) + .appendTo( validator.currentForm ); + } + result = validator.settings.submitHandler.call( validator, validator.currentForm, event ); + if ( validator.submitButton ) { + // and clean up afterwards; thanks to no-block-scope, hidden can be referenced + hidden.remove(); + } + if ( result !== undefined ) { + return result; + } + return false; + } + return true; + } + + // prevent submit for invalid forms or custom submit handlers + if ( validator.cancelSubmit ) { + validator.cancelSubmit = false; + return handle(); + } + if ( validator.form() ) { + if ( validator.pendingRequest ) { + validator.formSubmitted = true; + return false; + } + return handle(); + } else { + validator.focusInvalid(); + return false; + } + }); + } + + return validator; + }, + // http://jqueryvalidation.org/valid/ + valid: function() { + var valid, validator, errorList; + + if ( $( this[ 0 ] ).is( "form" ) ) { + valid = this.validate().form(); + } else { + errorList = []; + valid = true; + validator = $( this[ 0 ].form ).validate(); + this.each( function() { + valid = validator.element( this ) && valid; + errorList = errorList.concat( validator.errorList ); + }); + validator.errorList = errorList; + } + return valid; + }, + + // http://jqueryvalidation.org/rules/ + rules: function( command, argument ) { + var element = this[ 0 ], + settings, staticRules, existingRules, data, param, filtered; + + if ( command ) { + settings = $.data( element.form, "validator" ).settings; + staticRules = settings.rules; + existingRules = $.validator.staticRules( element ); + switch ( command ) { + case "add": + $.extend( existingRules, $.validator.normalizeRule( argument ) ); + // remove messages from rules, but allow them to be set separately + delete existingRules.messages; + staticRules[ element.name ] = existingRules; + if ( argument.messages ) { + settings.messages[ element.name ] = $.extend( settings.messages[ element.name ], argument.messages ); + } + break; + case "remove": + if ( !argument ) { + delete staticRules[ element.name ]; + return existingRules; + } + filtered = {}; + $.each( argument.split( /\s/ ), function( index, method ) { + filtered[ method ] = existingRules[ method ]; + delete existingRules[ method ]; + if ( method === "required" ) { + $( element ).removeAttr( "aria-required" ); + } + }); + return filtered; + } + } + + data = $.validator.normalizeRules( + $.extend( + {}, + $.validator.classRules( element ), + $.validator.attributeRules( element ), + $.validator.dataRules( element ), + $.validator.staticRules( element ) + ), element ); + + // make sure required is at front + if ( data.required ) { + param = data.required; + delete data.required; + data = $.extend( { required: param }, data ); + $( element ).attr( "aria-required", "true" ); + } + + // make sure remote is at back + if ( data.remote ) { + param = data.remote; + delete data.remote; + data = $.extend( data, { remote: param }); + } + + return data; + } +}); + +// Custom selectors +$.extend( $.expr[ ":" ], { + // http://jqueryvalidation.org/blank-selector/ + blank: function( a ) { + return !$.trim( "" + $( a ).val() ); + }, + // http://jqueryvalidation.org/filled-selector/ + filled: function( a ) { + return !!$.trim( "" + $( a ).val() ); + }, + // http://jqueryvalidation.org/unchecked-selector/ + unchecked: function( a ) { + return !$( a ).prop( "checked" ); + } +}); + +// constructor for validator +$.validator = function( options, form ) { + this.settings = $.extend( true, {}, $.validator.defaults, options ); + this.currentForm = form; + this.init(); +}; + +// http://jqueryvalidation.org/jQuery.validator.format/ +$.validator.format = function( source, params ) { + if ( arguments.length === 1 ) { + return function() { + var args = $.makeArray( arguments ); + args.unshift( source ); + return $.validator.format.apply( this, args ); + }; + } + if ( arguments.length > 2 && params.constructor !== Array ) { + params = $.makeArray( arguments ).slice( 1 ); + } + if ( params.constructor !== Array ) { + params = [ params ]; + } + $.each( params, function( i, n ) { + source = source.replace( new RegExp( "\\{" + i + "\\}", "g" ), function() { + return n; + }); + }); + return source; +}; + +$.extend( $.validator, { + + defaults: { + messages: {}, + groups: {}, + rules: {}, + errorClass: "error", + validClass: "valid", + errorElement: "label", + focusCleanup: false, + focusInvalid: true, + errorContainer: $( [] ), + errorLabelContainer: $( [] ), + onsubmit: true, + ignore: ":hidden", + ignoreTitle: false, + onfocusin: function( element ) { + this.lastActive = element; + + // Hide error label and remove error class on focus if enabled + if ( this.settings.focusCleanup ) { + if ( this.settings.unhighlight ) { + this.settings.unhighlight.call( this, element, this.settings.errorClass, this.settings.validClass ); + } + this.hideThese( this.errorsFor( element ) ); + } + }, + onfocusout: function( element ) { + if ( !this.checkable( element ) && ( element.name in this.submitted || !this.optional( element ) ) ) { + this.element( element ); + } + }, + onkeyup: function( element, event ) { + // Avoid revalidate the field when pressing one of the following keys + // Shift => 16 + // Ctrl => 17 + // Alt => 18 + // Caps lock => 20 + // End => 35 + // Home => 36 + // Left arrow => 37 + // Up arrow => 38 + // Right arrow => 39 + // Down arrow => 40 + // Insert => 45 + // Num lock => 144 + // AltGr key => 225 + var excludedKeys = [ + 16, 17, 18, 20, 35, 36, 37, + 38, 39, 40, 45, 144, 225 + ]; + + if ( event.which === 9 && this.elementValue( element ) === "" || $.inArray( event.keyCode, excludedKeys ) !== -1 ) { + return; + } else if ( element.name in this.submitted || element === this.lastElement ) { + this.element( element ); + } + }, + onclick: function( element ) { + // click on selects, radiobuttons and checkboxes + if ( element.name in this.submitted ) { + this.element( element ); + + // or option elements, check parent select in that case + } else if ( element.parentNode.name in this.submitted ) { + this.element( element.parentNode ); + } + }, + highlight: function( element, errorClass, validClass ) { + if ( element.type === "radio" ) { + this.findByName( element.name ).addClass( errorClass ).removeClass( validClass ); + } else { + $( element ).addClass( errorClass ).removeClass( validClass ); + } + }, + unhighlight: function( element, errorClass, validClass ) { + if ( element.type === "radio" ) { + this.findByName( element.name ).removeClass( errorClass ).addClass( validClass ); + } else { + $( element ).removeClass( errorClass ).addClass( validClass ); + } + } + }, + + // http://jqueryvalidation.org/jQuery.validator.setDefaults/ + setDefaults: function( settings ) { + $.extend( $.validator.defaults, settings ); + }, + + messages: { + required: "This field is required.", + remote: "Please fix this field.", + email: "Please enter a valid email address.", + url: "Please enter a valid URL.", + date: "Please enter a valid date.", + dateISO: "Please enter a valid date ( ISO ).", + number: "Please enter a valid number.", + digits: "Please enter only digits.", + creditcard: "Please enter a valid credit card number.", + equalTo: "Please enter the same value again.", + maxlength: $.validator.format( "Please enter no more than {0} characters." ), + minlength: $.validator.format( "Please enter at least {0} characters." ), + rangelength: $.validator.format( "Please enter a value between {0} and {1} characters long." ), + range: $.validator.format( "Please enter a value between {0} and {1}." ), + max: $.validator.format( "Please enter a value less than or equal to {0}." ), + min: $.validator.format( "Please enter a value greater than or equal to {0}." ) + }, + + autoCreateRanges: false, + + prototype: { + + init: function() { + this.labelContainer = $( this.settings.errorLabelContainer ); + this.errorContext = this.labelContainer.length && this.labelContainer || $( this.currentForm ); + this.containers = $( this.settings.errorContainer ).add( this.settings.errorLabelContainer ); + this.submitted = {}; + this.valueCache = {}; + this.pendingRequest = 0; + this.pending = {}; + this.invalid = {}; + this.reset(); + + var groups = ( this.groups = {} ), + rules; + $.each( this.settings.groups, function( key, value ) { + if ( typeof value === "string" ) { + value = value.split( /\s/ ); + } + $.each( value, function( index, name ) { + groups[ name ] = key; + }); + }); + rules = this.settings.rules; + $.each( rules, function( key, value ) { + rules[ key ] = $.validator.normalizeRule( value ); + }); + + function delegate( event ) { + var validator = $.data( this.form, "validator" ), + eventType = "on" + event.type.replace( /^validate/, "" ), + settings = validator.settings; + if ( settings[ eventType ] && !$( this ).is( settings.ignore ) ) { + settings[ eventType ].call( validator, this, event ); + } + } + + $( this.currentForm ) + .on( "focusin.validate focusout.validate keyup.validate", + ":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], " + + "[type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], " + + "[type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], " + + "[type='radio'], [type='checkbox']", delegate) + // Support: Chrome, oldIE + // "select" is provided as event.target when clicking a option + .on("click.validate", "select, option, [type='radio'], [type='checkbox']", delegate); + + if ( this.settings.invalidHandler ) { + $( this.currentForm ).on( "invalid-form.validate", this.settings.invalidHandler ); + } + + // Add aria-required to any Static/Data/Class required fields before first validation + // Screen readers require this attribute to be present before the initial submission http://www.w3.org/TR/WCAG-TECHS/ARIA2.html + $( this.currentForm ).find( "[required], [data-rule-required], .required" ).attr( "aria-required", "true" ); + }, + + // http://jqueryvalidation.org/Validator.form/ + form: function() { + this.checkForm(); + $.extend( this.submitted, this.errorMap ); + this.invalid = $.extend({}, this.errorMap ); + if ( !this.valid() ) { + $( this.currentForm ).triggerHandler( "invalid-form", [ this ]); + } + this.showErrors(); + return this.valid(); + }, + + checkForm: function() { + this.prepareForm(); + for ( var i = 0, elements = ( this.currentElements = this.elements() ); elements[ i ]; i++ ) { + this.check( elements[ i ] ); + } + return this.valid(); + }, + + // http://jqueryvalidation.org/Validator.element/ + element: function( element ) { + var cleanElement = this.clean( element ), + checkElement = this.validationTargetFor( cleanElement ), + result = true; + + this.lastElement = checkElement; + + if ( checkElement === undefined ) { + delete this.invalid[ cleanElement.name ]; + } else { + this.prepareElement( checkElement ); + this.currentElements = $( checkElement ); + + result = this.check( checkElement ) !== false; + if ( result ) { + delete this.invalid[ checkElement.name ]; + } else { + this.invalid[ checkElement.name ] = true; + } + } + // Add aria-invalid status for screen readers + $( element ).attr( "aria-invalid", !result ); + + if ( !this.numberOfInvalids() ) { + // Hide error containers on last error + this.toHide = this.toHide.add( this.containers ); + } + this.showErrors(); + return result; + }, + + // http://jqueryvalidation.org/Validator.showErrors/ + showErrors: function( errors ) { + if ( errors ) { + // add items to error list and map + $.extend( this.errorMap, errors ); + this.errorList = []; + for ( var name in errors ) { + this.errorList.push({ + message: errors[ name ], + element: this.findByName( name )[ 0 ] + }); + } + // remove items from success list + this.successList = $.grep( this.successList, function( element ) { + return !( element.name in errors ); + }); + } + if ( this.settings.showErrors ) { + this.settings.showErrors.call( this, this.errorMap, this.errorList ); + } else { + this.defaultShowErrors(); + } + }, + + // http://jqueryvalidation.org/Validator.resetForm/ + resetForm: function() { + if ( $.fn.resetForm ) { + $( this.currentForm ).resetForm(); + } + this.submitted = {}; + this.lastElement = null; + this.prepareForm(); + this.hideErrors(); + var i, elements = this.elements() + .removeData( "previousValue" ) + .removeAttr( "aria-invalid" ); + + if ( this.settings.unhighlight ) { + for ( i = 0; elements[ i ]; i++ ) { + this.settings.unhighlight.call( this, elements[ i ], + this.settings.errorClass, "" ); + } + } else { + elements.removeClass( this.settings.errorClass ); + } + }, + + numberOfInvalids: function() { + return this.objectLength( this.invalid ); + }, + + objectLength: function( obj ) { + /* jshint unused: false */ + var count = 0, + i; + for ( i in obj ) { + count++; + } + return count; + }, + + hideErrors: function() { + this.hideThese( this.toHide ); + }, + + hideThese: function( errors ) { + errors.not( this.containers ).text( "" ); + this.addWrapper( errors ).hide(); + }, + + valid: function() { + return this.size() === 0; + }, + + size: function() { + return this.errorList.length; + }, + + focusInvalid: function() { + if ( this.settings.focusInvalid ) { + try { + $( this.findLastActive() || this.errorList.length && this.errorList[ 0 ].element || []) + .filter( ":visible" ) + .focus() + // manually trigger focusin event; without it, focusin handler isn't called, findLastActive won't have anything to find + .trigger( "focusin" ); + } catch ( e ) { + // ignore IE throwing errors when focusing hidden elements + } + } + }, + + findLastActive: function() { + var lastActive = this.lastActive; + return lastActive && $.grep( this.errorList, function( n ) { + return n.element.name === lastActive.name; + }).length === 1 && lastActive; + }, + + elements: function() { + var validator = this, + rulesCache = {}; + + // select all valid inputs inside the form (no submit or reset buttons) + return $( this.currentForm ) + .find( "input, select, textarea" ) + .not( ":submit, :reset, :image, :disabled" ) + .not( this.settings.ignore ) + .filter( function() { + if ( !this.name && validator.settings.debug && window.console ) { + console.error( "%o has no name assigned", this ); + } + + // select only the first element for each name, and only those with rules specified + if ( this.name in rulesCache || !validator.objectLength( $( this ).rules() ) ) { + return false; + } + + rulesCache[ this.name ] = true; + return true; + }); + }, + + clean: function( selector ) { + return $( selector )[ 0 ]; + }, + + errors: function() { + var errorClass = this.settings.errorClass.split( " " ).join( "." ); + return $( this.settings.errorElement + "." + errorClass, this.errorContext ); + }, + + reset: function() { + this.successList = []; + this.errorList = []; + this.errorMap = {}; + this.toShow = $( [] ); + this.toHide = $( [] ); + this.currentElements = $( [] ); + }, + + prepareForm: function() { + this.reset(); + this.toHide = this.errors().add( this.containers ); + }, + + prepareElement: function( element ) { + this.reset(); + this.toHide = this.errorsFor( element ); + }, + + elementValue: function( element ) { + var val, + $element = $( element ), + type = element.type; + + if ( type === "radio" || type === "checkbox" ) { + return this.findByName( element.name ).filter(":checked").val(); + } else if ( type === "number" && typeof element.validity !== "undefined" ) { + return element.validity.badInput ? false : $element.val(); + } + + val = $element.val(); + if ( typeof val === "string" ) { + return val.replace(/\r/g, "" ); + } + return val; + }, + + check: function( element ) { + element = this.validationTargetFor( this.clean( element ) ); + + var rules = $( element ).rules(), + rulesCount = $.map( rules, function( n, i ) { + return i; + }).length, + dependencyMismatch = false, + val = this.elementValue( element ), + result, method, rule; + + for ( method in rules ) { + rule = { method: method, parameters: rules[ method ] }; + try { + + result = $.validator.methods[ method ].call( this, val, element, rule.parameters ); + + // if a method indicates that the field is optional and therefore valid, + // don't mark it as valid when there are no other rules + if ( result === "dependency-mismatch" && rulesCount === 1 ) { + dependencyMismatch = true; + continue; + } + dependencyMismatch = false; + + if ( result === "pending" ) { + this.toHide = this.toHide.not( this.errorsFor( element ) ); + return; + } + + if ( !result ) { + this.formatAndAdd( element, rule ); + return false; + } + } catch ( e ) { + if ( this.settings.debug && window.console ) { + console.log( "Exception occurred when checking element " + element.id + ", check the '" + rule.method + "' method.", e ); + } + if ( e instanceof TypeError ) { + e.message += ". Exception occurred when checking element " + element.id + ", check the '" + rule.method + "' method."; + } + + throw e; + } + } + if ( dependencyMismatch ) { + return; + } + if ( this.objectLength( rules ) ) { + this.successList.push( element ); + } + return true; + }, + + // return the custom message for the given element and validation method + // specified in the element's HTML5 data attribute + // return the generic message if present and no method specific message is present + customDataMessage: function( element, method ) { + return $( element ).data( "msg" + method.charAt( 0 ).toUpperCase() + + method.substring( 1 ).toLowerCase() ) || $( element ).data( "msg" ); + }, + + // return the custom message for the given element name and validation method + customMessage: function( name, method ) { + var m = this.settings.messages[ name ]; + return m && ( m.constructor === String ? m : m[ method ]); + }, + + // return the first defined argument, allowing empty strings + findDefined: function() { + for ( var i = 0; i < arguments.length; i++) { + if ( arguments[ i ] !== undefined ) { + return arguments[ i ]; + } + } + return undefined; + }, + + defaultMessage: function( element, method ) { + return this.findDefined( + this.customMessage( element.name, method ), + this.customDataMessage( element, method ), + // title is never undefined, so handle empty string as undefined + !this.settings.ignoreTitle && element.title || undefined, + $.validator.messages[ method ], + "Warning: No message defined for " + element.name + "" + ); + }, + + formatAndAdd: function( element, rule ) { + var message = this.defaultMessage( element, rule.method ), + theregex = /\$?\{(\d+)\}/g; + if ( typeof message === "function" ) { + message = message.call( this, rule.parameters, element ); + } else if ( theregex.test( message ) ) { + message = $.validator.format( message.replace( theregex, "{$1}" ), rule.parameters ); + } + this.errorList.push({ + message: message, + element: element, + method: rule.method + }); + + this.errorMap[ element.name ] = message; + this.submitted[ element.name ] = message; + }, + + addWrapper: function( toToggle ) { + if ( this.settings.wrapper ) { + toToggle = toToggle.add( toToggle.parent( this.settings.wrapper ) ); + } + return toToggle; + }, + + defaultShowErrors: function() { + var i, elements, error; + for ( i = 0; this.errorList[ i ]; i++ ) { + error = this.errorList[ i ]; + if ( this.settings.highlight ) { + this.settings.highlight.call( this, error.element, this.settings.errorClass, this.settings.validClass ); + } + this.showLabel( error.element, error.message ); + } + if ( this.errorList.length ) { + this.toShow = this.toShow.add( this.containers ); + } + if ( this.settings.success ) { + for ( i = 0; this.successList[ i ]; i++ ) { + this.showLabel( this.successList[ i ] ); + } + } + if ( this.settings.unhighlight ) { + for ( i = 0, elements = this.validElements(); elements[ i ]; i++ ) { + this.settings.unhighlight.call( this, elements[ i ], this.settings.errorClass, this.settings.validClass ); + } + } + this.toHide = this.toHide.not( this.toShow ); + this.hideErrors(); + this.addWrapper( this.toShow ).show(); + }, + + validElements: function() { + return this.currentElements.not( this.invalidElements() ); + }, + + invalidElements: function() { + return $( this.errorList ).map(function() { + return this.element; + }); + }, + + showLabel: function( element, message ) { + var place, group, errorID, + error = this.errorsFor( element ), + elementID = this.idOrName( element ), + describedBy = $( element ).attr( "aria-describedby" ); + if ( error.length ) { + // refresh error/success class + error.removeClass( this.settings.validClass ).addClass( this.settings.errorClass ); + // replace message on existing label + error.html( message ); + } else { + // create error element + error = $( "<" + this.settings.errorElement + ">" ) + .attr( "id", elementID + "-error" ) + .addClass( this.settings.errorClass ) + .html( message || "" ); + + // Maintain reference to the element to be placed into the DOM + place = error; + if ( this.settings.wrapper ) { + // make sure the element is visible, even in IE + // actually showing the wrapped element is handled elsewhere + place = error.hide().show().wrap( "<" + this.settings.wrapper + "/>" ).parent(); + } + if ( this.labelContainer.length ) { + this.labelContainer.append( place ); + } else if ( this.settings.errorPlacement ) { + this.settings.errorPlacement( place, $( element ) ); + } else { + place.insertAfter( element ); + } + + // Link error back to the element + if ( error.is( "label" ) ) { + // If the error is a label, then associate using 'for' + error.attr( "for", elementID ); + } else if ( error.parents( "label[for='" + elementID + "']" ).length === 0 ) { + // If the element is not a child of an associated label, then it's necessary + // to explicitly apply aria-describedby + + errorID = error.attr( "id" ).replace( /(:|\.|\[|\]|\$)/g, "\\$1"); + // Respect existing non-error aria-describedby + if ( !describedBy ) { + describedBy = errorID; + } else if ( !describedBy.match( new RegExp( "\\b" + errorID + "\\b" ) ) ) { + // Add to end of list if not already present + describedBy += " " + errorID; + } + $( element ).attr( "aria-describedby", describedBy ); + + // If this element is grouped, then assign to all elements in the same group + group = this.groups[ element.name ]; + if ( group ) { + $.each( this.groups, function( name, testgroup ) { + if ( testgroup === group ) { + $( "[name='" + name + "']", this.currentForm ) + .attr( "aria-describedby", error.attr( "id" ) ); + } + }); + } + } + } + if ( !message && this.settings.success ) { + error.text( "" ); + if ( typeof this.settings.success === "string" ) { + error.addClass( this.settings.success ); + } else { + this.settings.success( error, element ); + } + } + this.toShow = this.toShow.add( error ); + }, + + errorsFor: function( element ) { + var name = this.idOrName( element ), + describer = $( element ).attr( "aria-describedby" ), + selector = "label[for='" + name + "'], label[for='" + name + "'] *"; + + // aria-describedby should directly reference the error element + if ( describer ) { + selector = selector + ", #" + describer.replace( /\s+/g, ", #" ); + } + return this + .errors() + .filter( selector ); + }, + + idOrName: function( element ) { + return this.groups[ element.name ] || ( this.checkable( element ) ? element.name : element.id || element.name ); + }, + + validationTargetFor: function( element ) { + + // If radio/checkbox, validate first element in group instead + if ( this.checkable( element ) ) { + element = this.findByName( element.name ); + } + + // Always apply ignore filter + return $( element ).not( this.settings.ignore )[ 0 ]; + }, + + checkable: function( element ) { + return ( /radio|checkbox/i ).test( element.type ); + }, + + findByName: function( name ) { + return $( this.currentForm ).find( "[name='" + name + "']" ); + }, + + getLength: function( value, element ) { + switch ( element.nodeName.toLowerCase() ) { + case "select": + return $( "option:selected", element ).length; + case "input": + if ( this.checkable( element ) ) { + return this.findByName( element.name ).filter( ":checked" ).length; + } + } + return value.length; + }, + + depend: function( param, element ) { + return this.dependTypes[typeof param] ? this.dependTypes[typeof param]( param, element ) : true; + }, + + dependTypes: { + "boolean": function( param ) { + return param; + }, + "string": function( param, element ) { + return !!$( param, element.form ).length; + }, + "function": function( param, element ) { + return param( element ); + } + }, + + optional: function( element ) { + var val = this.elementValue( element ); + return !$.validator.methods.required.call( this, val, element ) && "dependency-mismatch"; + }, + + startRequest: function( element ) { + if ( !this.pending[ element.name ] ) { + this.pendingRequest++; + this.pending[ element.name ] = true; + } + }, + + stopRequest: function( element, valid ) { + this.pendingRequest--; + // sometimes synchronization fails, make sure pendingRequest is never < 0 + if ( this.pendingRequest < 0 ) { + this.pendingRequest = 0; + } + delete this.pending[ element.name ]; + if ( valid && this.pendingRequest === 0 && this.formSubmitted && this.form() ) { + $( this.currentForm ).submit(); + this.formSubmitted = false; + } else if (!valid && this.pendingRequest === 0 && this.formSubmitted ) { + $( this.currentForm ).triggerHandler( "invalid-form", [ this ]); + this.formSubmitted = false; + } + }, + + previousValue: function( element ) { + return $.data( element, "previousValue" ) || $.data( element, "previousValue", { + old: null, + valid: true, + message: this.defaultMessage( element, "remote" ) + }); + }, + + // cleans up all forms and elements, removes validator-specific events + destroy: function() { + this.resetForm(); + + $( this.currentForm ) + .off( ".validate" ) + .removeData( "validator" ); + } + + }, + + classRuleSettings: { + required: { required: true }, + email: { email: true }, + url: { url: true }, + date: { date: true }, + dateISO: { dateISO: true }, + number: { number: true }, + digits: { digits: true }, + creditcard: { creditcard: true } + }, + + addClassRules: function( className, rules ) { + if ( className.constructor === String ) { + this.classRuleSettings[ className ] = rules; + } else { + $.extend( this.classRuleSettings, className ); + } + }, + + classRules: function( element ) { + var rules = {}, + classes = $( element ).attr( "class" ); + + if ( classes ) { + $.each( classes.split( " " ), function() { + if ( this in $.validator.classRuleSettings ) { + $.extend( rules, $.validator.classRuleSettings[ this ]); + } + }); + } + return rules; + }, + + normalizeAttributeRule: function( rules, type, method, value ) { + + // convert the value to a number for number inputs, and for text for backwards compability + // allows type="date" and others to be compared as strings + if ( /min|max/.test( method ) && ( type === null || /number|range|text/.test( type ) ) ) { + value = Number( value ); + + // Support Opera Mini, which returns NaN for undefined minlength + if ( isNaN( value ) ) { + value = undefined; + } + } + + if ( value || value === 0 ) { + rules[ method ] = value; + } else if ( type === method && type !== "range" ) { + + // exception: the jquery validate 'range' method + // does not test for the html5 'range' type + rules[ method ] = true; + } + }, + + attributeRules: function( element ) { + var rules = {}, + $element = $( element ), + type = element.getAttribute( "type" ), + method, value; + + for ( method in $.validator.methods ) { + + // support for in both html5 and older browsers + if ( method === "required" ) { + value = element.getAttribute( method ); + + // Some browsers return an empty string for the required attribute + // and non-HTML5 browsers might have required="" markup + if ( value === "" ) { + value = true; + } + + // force non-HTML5 browsers to return bool + value = !!value; + } else { + value = $element.attr( method ); + } + + this.normalizeAttributeRule( rules, type, method, value ); + } + + // maxlength may be returned as -1, 2147483647 ( IE ) and 524288 ( safari ) for text inputs + if ( rules.maxlength && /-1|2147483647|524288/.test( rules.maxlength ) ) { + delete rules.maxlength; + } + + return rules; + }, + + dataRules: function( element ) { + var rules = {}, + $element = $( element ), + type = element.getAttribute( "type" ), + method, value; + + for ( method in $.validator.methods ) { + value = $element.data( "rule" + method.charAt( 0 ).toUpperCase() + method.substring( 1 ).toLowerCase() ); + this.normalizeAttributeRule( rules, type, method, value ); + } + return rules; + }, + + staticRules: function( element ) { + var rules = {}, + validator = $.data( element.form, "validator" ); + + if ( validator.settings.rules ) { + rules = $.validator.normalizeRule( validator.settings.rules[ element.name ] ) || {}; + } + return rules; + }, + + normalizeRules: function( rules, element ) { + // handle dependency check + $.each( rules, function( prop, val ) { + // ignore rule when param is explicitly false, eg. required:false + if ( val === false ) { + delete rules[ prop ]; + return; + } + if ( val.param || val.depends ) { + var keepRule = true; + switch ( typeof val.depends ) { + case "string": + keepRule = !!$( val.depends, element.form ).length; + break; + case "function": + keepRule = val.depends.call( element, element ); + break; + } + if ( keepRule ) { + rules[ prop ] = val.param !== undefined ? val.param : true; + } else { + delete rules[ prop ]; + } + } + }); + + // evaluate parameters + $.each( rules, function( rule, parameter ) { + rules[ rule ] = $.isFunction( parameter ) ? parameter( element ) : parameter; + }); + + // clean number parameters + $.each([ "minlength", "maxlength" ], function() { + if ( rules[ this ] ) { + rules[ this ] = Number( rules[ this ] ); + } + }); + $.each([ "rangelength", "range" ], function() { + var parts; + if ( rules[ this ] ) { + if ( $.isArray( rules[ this ] ) ) { + rules[ this ] = [ Number( rules[ this ][ 0 ]), Number( rules[ this ][ 1 ] ) ]; + } else if ( typeof rules[ this ] === "string" ) { + parts = rules[ this ].replace(/[\[\]]/g, "" ).split( /[\s,]+/ ); + rules[ this ] = [ Number( parts[ 0 ]), Number( parts[ 1 ] ) ]; + } + } + }); + + if ( $.validator.autoCreateRanges ) { + // auto-create ranges + if ( rules.min != null && rules.max != null ) { + rules.range = [ rules.min, rules.max ]; + delete rules.min; + delete rules.max; + } + if ( rules.minlength != null && rules.maxlength != null ) { + rules.rangelength = [ rules.minlength, rules.maxlength ]; + delete rules.minlength; + delete rules.maxlength; + } + } + + return rules; + }, + + // Converts a simple string to a {string: true} rule, e.g., "required" to {required:true} + normalizeRule: function( data ) { + if ( typeof data === "string" ) { + var transformed = {}; + $.each( data.split( /\s/ ), function() { + transformed[ this ] = true; + }); + data = transformed; + } + return data; + }, + + // http://jqueryvalidation.org/jQuery.validator.addMethod/ + addMethod: function( name, method, message ) { + $.validator.methods[ name ] = method; + $.validator.messages[ name ] = message !== undefined ? message : $.validator.messages[ name ]; + if ( method.length < 3 ) { + $.validator.addClassRules( name, $.validator.normalizeRule( name ) ); + } + }, + + methods: { + + // http://jqueryvalidation.org/required-method/ + required: function( value, element, param ) { + // check if dependency is met + if ( !this.depend( param, element ) ) { + return "dependency-mismatch"; + } + if ( element.nodeName.toLowerCase() === "select" ) { + // could be an array for select-multiple or a string, both are fine this way + var val = $( element ).val(); + return val && val.length > 0; + } + if ( this.checkable( element ) ) { + return this.getLength( value, element ) > 0; + } + return value.length > 0; + }, + + // http://jqueryvalidation.org/email-method/ + email: function( value, element ) { + // From https://html.spec.whatwg.org/multipage/forms.html#valid-e-mail-address + // Retrieved 2014-01-14 + // If you have a problem with this implementation, report a bug against the above spec + // Or use custom methods to implement your own email validation + return this.optional( element ) || /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test( value ); + }, + + // http://jqueryvalidation.org/url-method/ + url: function( value, element ) { + + // Copyright (c) 2010-2013 Diego Perini, MIT licensed + // https://gist.github.com/dperini/729294 + // see also https://mathiasbynens.be/demo/url-regex + // modified to allow protocol-relative URLs + return this.optional( element ) || /^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[/?#]\S*)?$/i.test( value ); + }, + + // http://jqueryvalidation.org/date-method/ + date: function( value, element ) { + return this.optional( element ) || !/Invalid|NaN/.test( new Date( value ).toString() ); + }, + + // http://jqueryvalidation.org/dateISO-method/ + dateISO: function( value, element ) { + return this.optional( element ) || /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test( value ); + }, + + // http://jqueryvalidation.org/number-method/ + number: function( value, element ) { + return this.optional( element ) || /^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test( value ); + }, + + // http://jqueryvalidation.org/digits-method/ + digits: function( value, element ) { + return this.optional( element ) || /^\d+$/.test( value ); + }, + + // http://jqueryvalidation.org/creditcard-method/ + // based on http://en.wikipedia.org/wiki/Luhn_algorithm + creditcard: function( value, element ) { + if ( this.optional( element ) ) { + return "dependency-mismatch"; + } + // accept only spaces, digits and dashes + if ( /[^0-9 \-]+/.test( value ) ) { + return false; + } + var nCheck = 0, + nDigit = 0, + bEven = false, + n, cDigit; + + value = value.replace( /\D/g, "" ); + + // Basing min and max length on + // http://developer.ean.com/general_info/Valid_Credit_Card_Types + if ( value.length < 13 || value.length > 19 ) { + return false; + } + + for ( n = value.length - 1; n >= 0; n--) { + cDigit = value.charAt( n ); + nDigit = parseInt( cDigit, 10 ); + if ( bEven ) { + if ( ( nDigit *= 2 ) > 9 ) { + nDigit -= 9; + } + } + nCheck += nDigit; + bEven = !bEven; + } + + return ( nCheck % 10 ) === 0; + }, + + // http://jqueryvalidation.org/minlength-method/ + minlength: function( value, element, param ) { + var length = $.isArray( value ) ? value.length : this.getLength( value, element ); + return this.optional( element ) || length >= param; + }, + + // http://jqueryvalidation.org/maxlength-method/ + maxlength: function( value, element, param ) { + var length = $.isArray( value ) ? value.length : this.getLength( value, element ); + return this.optional( element ) || length <= param; + }, + + // http://jqueryvalidation.org/rangelength-method/ + rangelength: function( value, element, param ) { + var length = $.isArray( value ) ? value.length : this.getLength( value, element ); + return this.optional( element ) || ( length >= param[ 0 ] && length <= param[ 1 ] ); + }, + + // http://jqueryvalidation.org/min-method/ + min: function( value, element, param ) { + return this.optional( element ) || value >= param; + }, + + // http://jqueryvalidation.org/max-method/ + max: function( value, element, param ) { + return this.optional( element ) || value <= param; + }, + + // http://jqueryvalidation.org/range-method/ + range: function( value, element, param ) { + return this.optional( element ) || ( value >= param[ 0 ] && value <= param[ 1 ] ); + }, + + // http://jqueryvalidation.org/equalTo-method/ + equalTo: function( value, element, param ) { + // bind to the blur event of the target in order to revalidate whenever the target field is updated + // TODO find a way to bind the event just once, avoiding the unbind-rebind overhead + var target = $( param ); + if ( this.settings.onfocusout ) { + target.off( ".validate-equalTo" ).on( "blur.validate-equalTo", function() { + $( element ).valid(); + }); + } + return value === target.val(); + }, + + // http://jqueryvalidation.org/remote-method/ + remote: function( value, element, param ) { + if ( this.optional( element ) ) { + return "dependency-mismatch"; + } + + var previous = this.previousValue( element ), + validator, data; + + if (!this.settings.messages[ element.name ] ) { + this.settings.messages[ element.name ] = {}; + } + previous.originalMessage = this.settings.messages[ element.name ].remote; + this.settings.messages[ element.name ].remote = previous.message; + + param = typeof param === "string" && { url: param } || param; + + if ( previous.old === value ) { + return previous.valid; + } + + previous.old = value; + validator = this; + this.startRequest( element ); + data = {}; + data[ element.name ] = value; + $.ajax( $.extend( true, { + mode: "abort", + port: "validate" + element.name, + dataType: "json", + data: data, + context: validator.currentForm, + success: function( response ) { + var valid = response === true || response === "true", + errors, message, submitted; + + validator.settings.messages[ element.name ].remote = previous.originalMessage; + if ( valid ) { + submitted = validator.formSubmitted; + validator.prepareElement( element ); + validator.formSubmitted = submitted; + validator.successList.push( element ); + delete validator.invalid[ element.name ]; + validator.showErrors(); + } else { + errors = {}; + message = response || validator.defaultMessage( element, "remote" ); + errors[ element.name ] = previous.message = $.isFunction( message ) ? message( value ) : message; + validator.invalid[ element.name ] = true; + validator.showErrors( errors ); + } + previous.valid = valid; + validator.stopRequest( element, valid ); + } + }, param ) ); + return "pending"; + } + } + +}); + +// ajax mode: abort +// usage: $.ajax({ mode: "abort"[, port: "uniqueport"]}); +// if mode:"abort" is used, the previous request on that port (port can be undefined) is aborted via XMLHttpRequest.abort() + +var pendingRequests = {}, + ajax; +// Use a prefilter if available (1.5+) +if ( $.ajaxPrefilter ) { + $.ajaxPrefilter(function( settings, _, xhr ) { + var port = settings.port; + if ( settings.mode === "abort" ) { + if ( pendingRequests[port] ) { + pendingRequests[port].abort(); + } + pendingRequests[port] = xhr; + } + }); +} else { + // Proxy ajax + ajax = $.ajax; + $.ajax = function( settings ) { + var mode = ( "mode" in settings ? settings : $.ajaxSettings ).mode, + port = ( "port" in settings ? settings : $.ajaxSettings ).port; + if ( mode === "abort" ) { + if ( pendingRequests[port] ) { + pendingRequests[port].abort(); + } + pendingRequests[port] = ajax.apply(this, arguments); + return pendingRequests[port]; + } + return ajax.apply(this, arguments); + }; +} + +})); \ No newline at end of file diff --git a/wwwroot/webfonts/fa-brands-400.eot b/wwwroot/webfonts/fa-brands-400.eot new file mode 100644 index 0000000000000000000000000000000000000000..f8e48185fbfce6d497c89780b654fb96f61db74d GIT binary patch literal 115052 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 AMF0Q* literal 0 HcmV?d00001 diff --git a/wwwroot/webfonts/fa-brands-400.svg b/wwwroot/webfonts/fa-brands-400.svg new file mode 100644 index 0000000..68eb65a --- /dev/null +++ b/wwwroot/webfonts/fa-brands-400.svg @@ -0,0 +1,1127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wwwroot/webfonts/fa-brands-400.ttf b/wwwroot/webfonts/fa-brands-400.ttf new file mode 100644 index 0000000000000000000000000000000000000000..2b00dae7f43938d373e59c9b18011de7fd4250d7 GIT binary patch literal 114816 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

    3r|irg`=Eb~<0saelL3pTCha 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

    MH4)xoH~}+J+$)>1>4Y|*8`U(`L^L&CK%&rr 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 BVx|B9 literal 0 HcmV?d00001 diff --git a/wwwroot/webfonts/fa-brands-400.woff2 b/wwwroot/webfonts/fa-brands-400.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b9e58c5e61070439cebd54042000ae14b2365cfa GIT binary patch literal 63376 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 literal 0 HcmV?d00001 diff --git a/wwwroot/webfonts/fa-regular-400.svg b/wwwroot/webfonts/fa-regular-400.svg new file mode 100644 index 0000000..5f49543 --- /dev/null +++ b/wwwroot/webfonts/fa-regular-400.svg @@ -0,0 +1,467 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wwwroot/webfonts/fa-regular-400.ttf b/wwwroot/webfonts/fa-regular-400.ttf new file mode 100644 index 0000000000000000000000000000000000000000..cefbd50f29c9a6a3bc2edf01dbea72b3e3eb1633 GIT binary patch literal 40516 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 ML}LQ6NqwXL1*cE}hyVZp literal 0 HcmV?d00001 diff --git a/wwwroot/webfonts/fa-solid-900.svg b/wwwroot/webfonts/fa-solid-900.svg new file mode 100644 index 0000000..1534b64 --- /dev/null +++ b/wwwroot/webfonts/fa-solid-900.svg @@ -0,0 +1,2231 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wwwroot/webfonts/fa-solid-900.ttf b/wwwroot/webfonts/fa-solid-900.ttf new file mode 100644 index 0000000000000000000000000000000000000000..618136ab12df83b807b9ae22d073b0689e6b4472 GIT binary patch literal 160548 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 B=Kufz literal 0 HcmV?d00001 diff --git a/wwwroot/webfonts/fa-solid-900.woff b/wwwroot/webfonts/fa-solid-900.woff new file mode 100644 index 0000000000000000000000000000000000000000..af47657815d05becdaf8308a0cc9657f5aa326bd GIT binary patch literal 76632 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 APyhe` literal 0 HcmV?d00001 diff --git a/wwwroot/webfonts/fa-solid-900.woff2 b/wwwroot/webfonts/fa-solid-900.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..9ef566a9eebe03f0f4fa739e9c7e068db9b9199f GIT binary patch literal 59572 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�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 literal 0 HcmV?d00001

    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 literal 0 HcmV?d00001 diff --git a/wwwroot/webfonts/fa-brands-400.woff b/wwwroot/webfonts/fa-brands-400.woff new file mode 100644 index 0000000000000000000000000000000000000000..9e4b7e1cf0ef7bf662c3f57862cff76ac2a7e7a8 GIT binary patch literal 73920 zcmZ5nV~}n;l>OSaZQHhO+qP}I_HEm?ZCkf(+jh^L`8latN!CjCt~ymoD#S1Cf&a(tzlAz-|G6fOG#f@kZ2I+F6O>_ffSS%q}bBV)$^Y=|IgtOP)A5uO50DSSk@E*k& zv@`N_1OTDN{IetY2SVTypkI3;yJcf&*c^Rd0=wU%mv4Sx6Ny{U06EvhW3tR*~=+R|t$ zC6!omT;)p@(oCZ*w#ZHV2U;pBA^cB*x%6{N4kcaUt3Lij%(Pd4MF8hX`maUYIhTL! z$H&LctAFli&&?xnK58KHQm8br8MM(Cp7iU!M$OwLnPTt1Or~u=kHZ*Ly2!*|)!*1( z+TXpGvTsJs!=inqHv01VqYKDB0p~=#bHP3_>%zQ!-9Ap|NZ+Mui@R<4+Wk}aMCQ%8 zx3TV6=Pk82*5S769e8&aesgH&P6cvbkP}m8M7qJ>7BOoKzQN=Qm1nH5 zo#exluqo*9pBMw4M1={M;U$k~%j`{6VaYwns zs8!Zz8}CUv7n*JDwt;I`fzIx^_r~7Dx`QkiIg3wsT@{brcpK~kiMNFxCV?4&ONV2l&OX9d-LD4puZ9@j(E7A%->4_5T9=zl zYX0PyTWqYatkAd0TswE|*zYZGd*5}gf{5sN2)y&w)3&qG%u*f%EK@q$07XwT6%!zgas3xQP& zY4BhVUGYx0%DWe-_2b*vu4?*q;qg=xm}_y-*pzKzwL`BGiwJVi4*e;&DO;Ox2d>@U z?!dR$XQK(*yhj{0u5B3=x}5x6S%JPMF+Wgc6;a6!J+TbxGepxD70ZrPZ$}onZ^g5B ztFB!h^1n3KFz$ICk>`)+=LDlTbmom@a_8?IVUIb%tBd;UMA172V>x4?1wXgmQXW5` z4$kMu-fA4#GA5vC$~F%P$24(Muip+5Z`i13r=cZcV>q^N0b38W0?y*duwxR9ZC~RE z`V+IGIb5bcrLC>t8zVq8HmerZQwjU2L8dxjR33$0{@;)igv7ojZitB!F7_U1b~wvC zvc&;zvj~K4P}Ks`>b|$@Alz9DeLE6I5s!Bvz|RTeX6XAW2<4s^&M($GoI;6O}DBEKi^_JlQA6>8|xYP>l2x4=9^>pm4Vv&ICngcCpq_~ zZS$UM`OA3gt1XX17vKN%)PY;>;?$aE%VRd$;a>NQcui)mRc(yY@@cV)Fw_s!yI?}@ zSb6>15;cP(**OVL4|sJ0TiX#a_KkI;WE`>V2cUgT%~P&uQH@E(_kp@&THfGi;~HJA z)p?^4-le{$vaePWY#zm^60Jz#~n~#kdHW^x}YDj!oI=YiH*vH{Ilv$`_(Yq3EEjg{UB>o z>PZG#&|k>g>4Oioe5AG0F3HsUH+0s9_MkyI8eY&|*xLOE;UQKH68z;0ifs?TAuk%> zQM(e{66z@iw<#nqF=?-o9A9C0$hQ!UZbNaX&nCHL*A(`}As1K0p?zq#EP-xYa41&( zbL(Dk4-Z*YsP_8oYty(5Vk`i_`2>P=H!|okgP=`)JnG zTJbV2YvLzK%{^@z{0p$}z0(c!k@pntr$fv|bA$;i1K%Rve+Tk_R6uS&4(_b3i^>`N z$XuJKrU|2f-_i+geo-@y)m(+1BWaHhr9j!@7W(kQ2`xk08Vh!K;SJcIlDeSmO}vv0ucPJ7*{_0}vwEu>M8WCJ+_PJ` zFpg+iL980mR*9KgT1C#izncO3)Y6G`a(GKMK5v;tuePuwlLfo033~_p;2J3hI*?4m z-d%^D1NHVWO7wf6kVC)S4B7$(L>t1|AQ55s=FY-I0J^Y55m3 zVhzM27eB|M7yIyvr)TXEpcb!sNz!ijH4LhP3CQ=)1rji%=DwQ@PJ;=krT6ZYL9I1? zxi+}YnMamYYv~7K(or;dQhE zsFhq^RLR_ph4Hz|V~OU6uP<5Z%Ld0_an!t8x)zc*)L$B52dPJ|GZHI(1h7Hd=y{EF zXQU6Q%vF&9qX)5emGmGa=rAixqd-Osk}WdXaY&FbEi9u1MmCZyy6HK{SLh_xLBB!S zSVqnCTBI9{6WdUt!Qog&)$|^ua2OTNK}aKf2~WZFX(VwN7VbezBW(#xn(1pulu#&q zqe8|h5?SO@@6d>_cYLEp#&Z&0>gg{?mC$p7eWrcfKt?rABtl;LY&gVHs4~#d^Fc2l zqf$p_!E~~0BE(!oc@#(&&~q<-D#1ZyjNhBHY+e!G{#Q}P5;{dI!NA-`V5-zueC1DJ94PwC>wK!snXp&@4A?{$v zTS5{*TCjz-3|7GHlk9(m*UNKG5ZNNmxhRlOG6%SUgjU$Hm=CKLNW=56o@S8ZP2J@zvO2!AGu4?yg(3&X%ZP9&aD5T9qmSa ziDr@rGZQ^ZO%cutk`>hA+ZwX--?7o5Fc)59 zyM57kO$p9T5`3b)rvKbV7CYlni}O5^_wZJ{|4r36bQ6N;G03-S6F(vE8Svod)bL;* zO&q8-g~NN`mm<$#OcrBar5GfV&1~)_#ZoVgipL*oLcwr8yfc%`oHjaVEirUkYzrNy8?S?Zx9*N#&Up9qS|HpZLvIHX3e%q zIOCrofKKPzHTu_yekk{h>2v#F8x)h0FLEuD32Ci6hs9L%`` z+aAsM03bmo7)8(QblyJ;U6AkbMkwvjp1;cexF}$mf2MQA=U~&=Z$)yXdFN@O572mE9PE~^KOarsH znIjmf#E7=-L@9NVavFl9 zC^>a;z!C*vq3u|sSGFiBLPG;2$!}YUU@_AB zbtAKu#m;Po>{m*JdE>aU^(C^>p-)AL^*Il+3176)`Qj+$!DrWO9FuCp1xQO3@j;qQ z81*nA{H{@UL5NV$IrLzT1oQHid9i|$*1z?Nh0_@imBpzh1-EKH!wcrY62c@t)o9_HAhg!vAL70s^EwNjN7U4C#Y# zsa>N}-CNQ-`;pGN)$%CJsc#(zu16@Xf6W=+76cB^1&p&2*rJK*QX5Tm%RW$Oh4H3< zIxbFHeBC^uO$eOmkHF0X-(A05c+P7r6z^Pn{ot&)j<|sUMlA1e0HkXkT0BC)fh!1w z`CogKaa32tCNGT=O&C+`t_(q!D$NT_L5lnL`2PAtf`2 zi%=7iIDV1o=P|TNr1FDLp9JMN&`5}hSn3pxlhSh3G+cBnR5e#7-#j^ab8-GkW@l_` z-@yCmqFWsr3YOaf*WXS56bDQo?=232vQPRU$f+f8_3AWDu2vl}wq?I8YtUS2zbnsY zPPTGdm1@Ob1vO0D^|07rc!%E-I64kScg+IM&C8C|h?KMZ8k3_hy#sEczEiDE6xpQ@ zO`}$$0rYmQKhbpZIB#F?k8{Fc4hgaq(9Wx)+XLaao8=%r6|tId&qB8F5U0{pJ<=_0 zi&gp1+>B0_bZJ^6C_^`Vml66t?;IO4_N-e0h6~XU5Q)!KiR(X$KtA@4XMbp>@w9~$ zid+(*vssB^i$NBb1;eth3vTRzP2d{4=A=k`fPk2Y7L8zoC`rz59I_k79t| zVH06YVM)Jtc|ryXfUr|n5@;dh;Bt0;YJ|J=1S1ST?L=}^#k zc|x>NcksE1aBjBxVd{evoroaw&=GxFIZ3R83I!kg&D4f70yQQHSP!t}mYBvb6@>kv zG^3^t^hE_}0DfNl{DyxhukprqJ<=iw{s{D{KsLH&b)|KsS@l>$(f3p;$sLM~X z>cfDiYipH7ky;_k1s=*mb%RXAt%Vw}SEw?9-IHM4$105y(Blci3@ce=g`jo3p{xm~ z+qyMZ(?ei|Z1$c7S)9)rknx_TZ9>t-hKCoB}DI zEGT2)=xZWt2g%AGl2nP}0XzGiX%cyX{@B5!z+9y5q#Hp&emg{JqG6#(uJFn5 z^DNQUoabY@v?Y38gdb7A(Uv&ghXiRSpL%-XKpawD*7P-~Xx+E-3s~e;<^>H)nR&G! zOz2%z7hj8I4aQ(I|9Nw-JG;8hI!`X8%5W#4?Yi^MmAkTyK`mMacM2`b(Eg>^1YbtZ(^p zoBJr%C*ZbIEVmo7oN8Qj4+jg|g+3zoPt|)IxZghX@W=k9-J8X-BD@C5d0<)e0hBnA z00GJn^8#^*0nhIa$m`u8!;a25;GpnDcwz9`f%wvZ#be2qDewOn3EswMMFy0BeYghC zViiIpiv<~bls0akgWANo9s!|1Qc_@FXD~$|>CvT%Z2hq~r!Ynh2ja4`+)~VPvNKgx z$AirjL03-L;Eq#TN@#j-EEYbAy zO<3$~%Jd0O5@~^$r%Rc#1fx66a7B>h)Jns>SXrmTTa0yh}i>3GJ#X;30?w!(F zMDgz7xFPQm{UKSKN~0s4B_$HkX5^wsD|W&Bl_e}%lF@=d)9hb_`Ty!9BuEva0zczq zC`z&hE_~vjfaYWKLKj>dM+G4Htx`>4uONYgi4M2gLq79)I#M@9y^JVHpt+e*W!HI) z+2cCQfrUn*K}6@2TLC2n`ET_F<&<^c_$1cSCaH`+l;ouOJ+a37;Tu%iCT+%DO|vYS%oaY?PA&GGO-dA3r}VVdT(=qAb<3+w6T(xL zEF@Ff+tn`aD2(M?U{qR_uNEDGsmgs`E6|&?WOhW|6fKt`k1e1t@>ER?Y7Y?8l0ONC z5%x_q`r!Fua?{WDDp81+C^3Q|L%f-t@TN)iw+DuKrZu% zhl~ULmcWo}0G@ig$2R635A_tEZ)$I|82dAPp3v`|5l7(G<7=$<)4crL(WmC*SEwG! zTM2gNL|)#=QTSrhC6+Mtft6EWBg6SOe+-@#J;waK&~re(B7uas370?46Tqa<$FG}b zHU`G(uKauMkCI|ZWJ-LdqT~H9O4|rFem+?&6x+Y&d|vY7T!lECVJ{@XDk!dh{dK_B zE%oO`z`JLSEJodM6SP~2s?};SHlPF#x1gu{IsX%h+UfP9uT~Xyg|Th>MHp%M?*KJB zA|QHb_~%AZ$yQ^5b;J$zcsTrUOA`(axC|aE%C;IVAC+4JieaU}PhL$m4Q-i_mG3Z! z-9;^o3;vK|SFJUZTEO2A@$(`l+(H_3=d$XItNuDFkU4@7EPgOc&z8w&r;BuUR>r*W zp5-j@RZ52)TBy*e4tj4$=1PRrD#`-Id7GT|=x?T#bqF63QEM44BxC?n+1)vj0Nu`v zN-ZPM@De?C?5%ds^>JHW6dd;%b799t7ft^1Gz5hzhHdt3^Kb`oR*(yw(?tX0OACSl zt9YIco<_ZQRx#AjF)eEqk(^Xk{<*vi1Ni47-J(PwyJ2!_ds-xO?J9dd3Ml6620OCf zpDRz?M*hpkDZ&wvxE`T?1~EHD&wSE$!-z{6hV~uw)edT;N+eQ94!Mm3$2APh%I(at zbwUS0*9nsRHBGwv9;-QJ)x1J_bxBM#Xm4o13eYoVDYpuV8sEBD;OX|bVJKtG9_Qqd znzfWzb#bjbQV2~ab!~fGjIuuzKgrJ3;7Yh=SQ^y3G?SSCJ5$_FM?-ec)^3-^x$Dfw`0Hgrl3uz>u!%#;LmB}D`LH$+ zZY$pFQ%85HaLace8>dq{zh0?zxaQM-<IOp(;Si(Ljua?J`+PSU6bjL z`Em-_mg=fGgBI9|N_Fr$b8EPT6k}q`m#Bx`i?moN?9ghG&H8NAQ{)emwCoZIi8l@H zmMfn#T)F8vLWm)qxDSopD;5~ zYBh9hRWhrpr3<1>ZW3GBlKzcabhEo&UdKfvC!&wDMaOyCI_G-!8&ZpTO?ai)5OYs@ zr+xMTn_9XxY|(#iXje+hq*>hi!jfkdml1X@>*V05xL>V;-zhSvR~*3%n1vInn`OZ2jXMRBhP zpxXz0n|v_jQ?%h|=sll|;p>!lO-p<^-Ul>|bWhK9eU^%x7saUQE)0q2TVR zfxnnS2ZB_WW4rHReBZoiRLPizHCI}4?RM1O|2xWjR|IughjV~#=oO3k;{0uO#?HyA zwEq=yv#yK+U#_@D*nI6AO>OBtTd6r)pzbiRLOl2=9&SgRaO=NZAnh&!zlJu1^YK=u9tAoBf+G$Q&iAtrhX33%p)M>a{w|`d6yN7+db)PZq2t)C&SyIWf!{LIFN=dxk{T>lQ52F_gJw;< z9|!bJw0WvMESMFnCvdNWnO=xYg$y=PK@3xVlY0%4`!Ie1QWGZB64q1-NU_pJPk9@jz9YE}7XO@>+F~!Ft(Ob4gOByD?(yO9KZ-&;wZN3Xsaqi~AmjzJKi6 zK|Ltw_LY(Jk@*{dPKfiV)__kb2ICQ-1#~$u`b_$E*ZTMHQ`kK$T_W@hJb_s()$C7> z8WY@uqyeF%G^34 z5)#im3!yS+`e)$Tfy2Ys?)Cw*IS%Nmat*QWp{yB7e_v@yM6I^nMWUe0l?*R(XISSW zzWCL^K2*2$vOwx?qutL61G5T}#iYV2d95IO$6?hssTP z1PMy<)U?w(jikiGV*u2_m{3U@c;VKTt-w!3@2LbNheJ`}F>T#o_!iyQcJ<5r_Qa=FtiZl@;aM>i!W&R-K#Fg@9;Hn zWw3k8tGuwyb$$1Y5K$AvpXzqKJf@}7)xqf#BtyAekCf3_lrpjOu(jl0^p1tbgK?X2 zcyo2j(W;e@ch7Kl&sg^B{nZ!9OO)%t2peKZsIOlQ$}{cvqZ-_GmfBRg5tRCIZ_vW> zebR`SX@1X`iWqr2Th=h>iaFW&c{vvMY3Zu+a$J>5fm?jCnNbM9=J-JSiamN6-}Mh@ z*m9uT;=z)*<^OB&X8(y}bG|ez?y*{cQoCzCjc&7?Nc#8=dlpbzby8e&+xB3(|CYO- zA35Yj|3|`Cn&I`$QGl|qoh1#nY`){VNgYu$(g8t*jegqOEk3JCM>6iakwYhvwNq?) z&=*;3!dD0^0Z|jfVT0em4H)ky_+?igs2YS9ne1&%Up#wUuw^4-TOrto+NN zK-pZ5ZH{1%Ic4%*+W$5Q-;m=fggK3+M*9YjVH9De@oU$(tcz_eF!((FT?DC&|}Y@J4)2@`@6i{%y>GErK5GGOO`NJEZDbz2B>v2{Wn1Vdgbc5!7ONN~%_;5!EVUBS5 zgVz9II6F8ppzteto8GfsX2Ha?Uo6SoW*Fml=rp17@#wZR98btUhC5t!q6>yuOqoB= z3#Q32{$ZO@We{mx>|lS2jL~h=5m349r1!qI-FCxBmsy^W?wE>f^Xr0b@zmH(vMMcf z=>15>*m;X`t1o)mkB;+hbinV63AQ3*9~YjSuS=nAI$+4?gtl~RKm-jN38~Nft4^O} z+8?5f#KxC_;Gb7eM!@6tcV$IINAO7J?EHFe$8ku7LLL%_4kP?bsGTHuC;N}Mp;ZVj z3}}d{ZkO5C)xj6S$Mu2z@4*cWjIK7a8-F1nein3mAm*oOo$$EhOD5_$KAfo;DGx=N0%^%)ZAL3-)jCdpMcX zQRbhj&A~iS=7YLz%ha%@4VFPO#)cTDc6zSiHz*qDg&bDEti7>FN%Z=7yv!FiRp9t0^w>Wpj*yC(2`6 zU2a%m%GH$*SVd7UYWysw>F6LSrD$XR3_rEC>0#YCrW|=JxBpd$kna!yQP=GE1~SMz zmghJ&MYD0G2^x5UFfr_|0Wm10&k?qsxFCGUJ1jU^94Apa&PAZ|QBgNeGE%9Vs;%>! zEA>-f7%Cm2n9MF2>`RL#UR%Hn$IxbYC~^^=Id8Zk;ufIfpU|nO9~&bksTUcF9{VB} zqclV`TOSSj{0cx1Mk#pSdasJCGL2e{=o!{X6mbj0n({D80W*jNBWD|`1>$MHFCh2@ zD-@CpE_qK_e63rPlvYKf(b-47_pZsUsde1mTO}8kk%6%0Q%Ge|#*P{z51%qhucaw` zPyhG9_qwDoeye-_?48$j`5oX{=rqR{i_-U6D{!^_6VbC1_j@1xFL;DyNKKqlOm9h^ z>aCR-hGD+>1}Yqft>u1CRL&A&Zo!`@%95j@K#wXt1;cTBF*`Z|5!d^o_`X!}K=j3p zI+MNj)0UC(zNrx|g-JfNyt&iM6a%xqVYk|Mj*^y^zjRC>z~i6RbVvWV2t5z1xoi9t zejPcG*7{dcR!bB&3pk6OK9(-^zSw2skeoKp$zEdU#}gwKy?l%IHLX+TrM^_1O=pyw z=Io=!(OjWPCT0GU*__3RJ43cgypOX_@gkt6o*N4I?##&bh*B5?G4duai&?zt^W|o{ zEHrH2mdOhXlX(=M5plKx~mCcnZZz@_5%y~xu0bIu;LrR<@TY20n^lly6sZSk_i zWihST0pu4!&`%GWm+-{H$FVWTT?nkV9*TBaBnJRfyen|aK#WT4E)_H28SVu%T|EFL^-k0n34-(}O4V8g-QfQ0~x%h=P%HH5ZYoKYUWy;F%)4-VE4aN_ujH_N+@J5C- zb#F3anj*hgc1B%tij0M?+ z!m5a6jsUncH2mbFba`NRl5wq(I!6LI!h>jc5WHSw%DbFJpOUg-2ASOhWb}&iaBfSe zYl*Z1oOvu)h)xJo23Cu-719MBdY2!&=h`# zIpujb(^&l`o-B#HnamDQY3pA?UsHnWu?};WAv-|+#K7ePUO&i=wG`e7J_XG4G+u0; zG6nyM9Hv`8Q7$h#3wfyHyE?B<3x>Vgd%V>Z;@_E1S0 z!%-xOiqX>oSDQi024=Weg-&tCO*OE=rfgnLU>mZW+hN33zj-YqCntYJjgIz4J)bi) zL?~7aL@-o-`=Q!Z(5z7f<{X^MJCc2ch%@OoXehUeLmA@$6GFAZ?kiG{E?ns8p0+YI zx^=2%+EkTt>Qiuw?x?M~L{A=qc56nyBSsk8bRgMer^s0&#zeWm?2fFSHwffddA6O) z9U1u!2|B#Wt4{yKX@mwTs2cfZW-6!enhv62S7kg1sPD6w8yx(xE^#g^8<$GFia%7h z+;|c0V6N~MrtpPv9fUCY7hC6~!%LBuMv#to`Al$r4TVHTQX-1!o#zlbK$7rg)#_&a zO^hqE(mteQVUijWp<(|+sKdmQq?;XG5hVqwPYYuCC-&5kGbPH!a;E_XY*TAVZAgC5 z!GOBDt!)~hR3FM-UPy#-&d-uD=vvqXdX!~!9tC%hL7n=QG*VBXHnb?kXsZM;rl)lS zk$6qMn=Oxwx(9ut6PtcMGthY%?@g>s1>bvrOoLqJC|Wa)a>|iqom#a+3}mG2JRvVY z0fbEiF+sx!bSSFg&NY=^R7le6)RuO(;qkcRwCI_B9&!ciLS)VFf>|Z{$dBTez)j;x z8~%xJG##hF48i!I+5k2@HT0uM{U*Su)7EUicv6dw9;QmGJGV|Moa}2ts?jG~m#Hr!8tZo#EbH?Cb60<>*?<%Fwx) zlY2xouzZ&PbTd+#18&^_ds&PwhA55@%SX&x5+1nM2bt`(8d?D9zzL~NfjYKEhN?WBh zn1W1srxt7yDSIra?Gr*;BTa4lHK;elvUE_9SY`BKUz;ko@iY~>fh*KEugO@egMo`& zs@&%n7ul{HC5-D4x-Oj|ZN>syG-v-oAPg#bRd^Jg$X_*;nzsq3O--&H_bHT=xT*z( z7PEaC&K=u0liUX;CctZHplkd+XWwl7sy_1LQjPoKWLMN2gD(L}TT;V0_Q-l7qs`yy zDM5ncdV9;F8$kX(VmrIufxYAn8OVvKg8W1>Q`8_ad=cfas+xlreh7avu=F3 z^&a|~gKTpdOp3Nsh8=8XP+#dy>9ywBUR|2_h?WRogttJhQ6ONLD6&As@{lV4dO z(U4^JL}EDZFJSFcdqg==zfdy;hZezPu9??$C4zs?=}hMgL$K6K8CKIn8e8%caJxgw z2b*|(T4IpGPxoE>RJPc(xGOV91f^9TS{gQdxB%#BZ({jPY|-q?YNpKlBybg)7PAE+ z)ykuLS?v%8$3*I`=Mllj&$&OB-oKIsWR(I6u;!G{p^FzFxKA>>^Wp-60v{8&<4nK> z&qDMQ-5x1t5HShypH()189`+Ko?LJr6hMOn5gz;tzx`WvopK^-{>v)h_CH_jWI&h6 z^~iOB)|CVwN?suAKlsjO*j!MK%V9>80|r+@f829;GN_Q>Z~FcW{hj}0L#%4M=OV~y z;PLdOj?XzQzng!g6uz)^E8RpHQSRb{>zZqg8bSBHRnps25>qo{yg}NXt{7f$(@>)L z?@Ciu-6U8K!XE~uu~0j;vQl61MYShC~|wSBpsjYhKI#@!XAbQ ziXYMf1H=?2plr|BEBD-pvYp#X5z@IIfvazDW(mIbNqvCrCF~w0`c5MN5=llQ zdN!wDoi%n~sPbS;8GkvWjwOAQ9pT_ro022O?nowUc;Ue|q*})*Sn1QF^Pj{-KTA@+ z_P7gkxH*l(PVR;l7`OM==hAb*qh3cqS=kWg1^FRW)i^31`uGX>Kxat}6=Q(w^HEKw zoc1>afx=WC>`o9#eV|vEayJq|u+m^*)%9Y8xrYCpivya246!?H(PIXnZ8O zKpUr7S{MQ?UFh7P(<&4kwU#qt@OwhNcWgF~@+UDCN+A5kbj`DygVtXz`1x z?d5)ej^i=&00q?5hR6MPX*U%^d)oV;T%#nPAB@b;XgC`B(+si#4a4s$wfkEFkxg%+ zWrUq)4D>x2A8FpYbavDE5r{&i)_%_ z3?=+VlztqkPFZ1hvAoN4wV9hRAa|HWG~lrWzWBEH^+ts}QuG!QV=p_K)$M2UQIuNi?x_zHxVh*520BHi@Bgd$RP8Cy|p(QmWHA5uYD0KWtKcNK3;^iI7OdZceE# z*7bp0yipL+Lt7A(TvtfCY0KC9p=+L|o+_Q0x*7b3GBBSFs^Y4ag=|948m)@x25-227P+))6Q>%X3{HxC9laR!${)t=_b^H)*jh zAttrurO00Y)mlA|o+yVE3;3C7TUl`lrtp$yFqcepRA4-P&(q@hWB{@gR#CAsRt7eg@8WQ8NALl!h5jKPYGyHC+C&;;DEw(N&DQSr~g>RL$(nY@6t*>DVm zw-8NKeQp%ozG(dx^{u|T`O9WOGX`1C>krc|cD+bA)dxHkI5iU?AkaWz8-q4288sU7 z&;-p_siG@*7&D!^xy1JDYqPXW;q|a2r#r>uVl&w;o%eh z(qzwEBHNu=mq*+>&6??@w$zvkVM){(>NImUibz!vle;gey~UKw3ClK&%~)ev9`ojn zHZ@yKDVnF`LL=+wXZImWaig^h^)lHhFBo3^=AetDL-796_P@Z+et(YO5dQ{K->sbj ztbMhH?=XUHafoM)z%8>*!SDAgNOHlZ^agmDX^oB9L&hG5(%?oIK2~qjPdr@pZ2KOo zA{6Fw`L8V2F$@{_osY&FIfY|iD=t3E-}#enuC|^H10HL;*gsWrW9{BW^ODlZ{7*h5lGS|-z?ukDdRV<}$(1!-IR)cwJ8bL!(g4Wx~CPHZih z6l^WeTm%yV6VtHCH2oomXi9Q$F(#<;pa>+-9pDyrV4B(DWyctpMY(UCTcY%{DKE$e z_i4!55_xikH){v5H>bq zIP>7yOHWf%lVxokZBY>M>nW1}Z{UWG1;54c$MRS$zpE>O-wYkI_J~Do@99rUe77)D z3eC0 z9W%PV$fOFagPN-^3b43vnVBrBYX~q#(0^#{kqX4IhVQJ4u+Q;zs>fn3p$TVV zU}8eG7rIV3A7?u}eWv6TwH-enhY&QD48k6ilX$BF50lS&p)ulyK{3K?JKgT$x9&3? zC_j3JTG_mE3>T6$g=rU!5lWKU*f*%t)Ki! zB^vX3i4-5Com`u$PyAi|1eDuBG-yK!@#Qp}gyOkY7ukm-gv~~J_NVZ_O1EHK9*0;yKgJET0J&^yr=XaFoR;iz&Xj`3^M|&4>W-zn)^2`an-XhxieuJaqNnq%csV|LJioD-eANKD<{|a-$S!@zn=EB;OPu zx}l>Pxg`}xMC@SIf-UMIU_;)m2!kqUE!q}7^B09Rr+5)u#(|4gOu5RVWmh9su%1Q# z%06GIM-J+2rl8|+hlNXrS7b;<=m|1#3t^Ifr~aTn^Mbh=g0dPf%Ge|}XV(Zg&&OzO z%mtM4l9x_t906>{P^7{zLg$Wv)P-zPhSYL)q@HKBXH>`i=6}EMhu!m{%T-Ce$+d2}&8_f3 z$n|eJKy21mb|CNr@|SnM`~59z8+4=+8#kCRf{v?I6_lY-j&36{k*U?L}_;RQ~WA15{T*{g$opJt&az98Jmge;x8H`m9j!gXVh{={UIl z`**Cg%)>c=q18klJ21uRZp=EGwv=N8b~?ewtLs|y?LmY*Sm=RjnqXr-{`#`Qy-T+R zc4&u%*6X-Y19~vE2wR}=ee?J6Kd)6tivVM4=zs&Lp`MMuw_KU2u4H8?Ihb2gR*zvy z?Ouo;%BNn)|)@!muht_5U8G>s0pVMltRsX7DE!gvOylpNe8p^3q3?$M~+_3IM$YiZT;9 zSI2nxi`Mzao|jP)RrlqUQO<5pw`tt&Z<^5HD&(=UO;bblWK)IC;O=9<>&~`m=#92j z=^TV>CM~anA|fayV;ud5d!hyA^OUmgN5a?E%0`p8A}Tl! zk_fNW{bR?tVY)f5EJ$*z*!~ANK*zt}%VQ*>Dv>hBcYf$-47dkC*b_u$CXv106#!g)yK%Vho0a-m{Ba>&LfbMwDAE z7SF0!Yuv=A0FGRyDdhUoU{KNPuGNWh(~3g0E0H2c6^7ODjKUWw+kX?o@W+mw(Z{*O zJN>;2Q-k zJ@@>G9(Y`(zr}AIspPjQL$LGU9bn5$?tR}5Zu&=&8$FN?i1jc;27fDeODB2Y!^-?GUOZc8dNc|u#jrg8 z$^)y}?pEu5Kr9oxmsdIR8qO`=e`-{%-28VQ(9CR5j2v5ctZ;TR^d>HxGBrOx^(*b> z18-bi-jk!SMr#|e*-K9GUR+*VoE?ngz0aa^&;zj~c|23z!F|5UMW3&D&<2}6ZNLBh z?StgOpRmr{MwjH_Nco8JidR!~Zu@0}0s84<3%#GIRu6S8XJfv%0J0y6I-eE!^Ah6W z<9(KFqGrbbp=Y=L>Y4Dk`m#3$+n;pNVPpF@JgDjI$Bvzznw`D%`0%*6|EuUp7>kPV z5sy8ZF_r(J~XxL&dN3KUZ<&EX!^K?kImYB**8e|Wl!{gUrC zTB=&bmZ=*^@07uuM#_|98Jes(o`x`@UadWI*(~}v^N2+?*>qzW8p5c~WXICAHO;V9 zuz^i002_>1Di0O!>3pWwcNGI`h%MGi9xWGev*2jV*gi?!#M23LRXdQ9D#ak4K@(uqFij;uOrcKQ(2_z> zmQBa<^rTVaE&xw+WIc8$L62ZdQ_-oKZ>duSgYo%eSs~V1trNJBg9-F*;>O7EOEQW< z<4jaaVf)pd4sQid0WHHKACmR$3V z(L}utXJjLG-HIGViab4I(4t%2jC3%96U$}R33(A?o_$kRd42-HRuk+cWQ9mw;<2cz zZo+9_b*Vu$U9pWR&0@ahml?8}j5TV6IE;BXG&^49w*jIMKXMJC8c^QRvFwEewlXdT zny)!3^tJ1k73SIsbdwfQuj(MA=(6E-D2jR9zNT>33fvPARlz>Iyyo*oMG#Tl1k>1L zK#71e3`HwDz~9h3%~XlZV$(ui?sIz@{Tg~&vbdz$nQRcV&YnB z^SG}ui;ttfWD$;+yI!I``XUb+RAik{%IE4ZUE2=y)7}#;>hlK=e?!?*ht3gl+Uf=KAN#KXYBm&*!?uJwFLHl^Z+)mou z_SsUmTS9z`mj5yGWLed^i>an!*@ZK z{)^~a=yycK{eGU&G}aB=%g_(=&~q^d)n-}5LvqF35*_@IznoPZmjcqWZO_!LxH|d286fhgUIhqF%idi5 z_F7!Sxt@L+Z2|oTe5Nsh!E~X{kjDZp(f^dc;076ngV?)!j5@7awqq)i989G@3#5VQn4Skj~{)-p6Q&YcQnfm89o_Zr}r%wGzzxeC9Eru!jy$ksq5*c#L zm5OkG8&JHUKryq&7Zr{AJkpK-BB^)GaRXznHt5aoy5-cNBgdDo_KW4>>yMp2efrR$ zLmL~*x9nP28r0^Dz;%xGj=df(`d2R>KXT~Q7f&C0)B4!Q_%!h6Ga{C(Exq{C`Ock) zla42rPrPI@U*;hcJSMiixWtuuvNSK&w&lJ@mSYG$Pm?cWlI5!}<}g4ITaqW2p(!VJ z;PVQDZyh8T>$8Eq{g+X_9--@_`sF^5RN2zxa-@^lJLepxn|_E5%L-iGpt=J3(eeV% zHo=52T2phAj;%1&bl{w2sPt>5=M`M|EAZbBZ4cwhq`z2?(aE@8-+rz?DtjK270sfg zhyxW`rh#dQ2{WT&C7s~M3X2q#n|7cvJ)%=aR1z|tKyfk0@Pm@c&{)f?%b#ruZo@4+JUuJYYm-SyJOdXTfgh!yVkeQnc)?cW}Bae zYtoKfeuv1Pinv@JCSrcp6JaajcO9X(zIAbV<@9Oa@%+z!{u`+A)4%#?uZOO}*T~z_ z@9-rOCH?&O&i@rY`@H<2i#bD5M+B=zeQvLagaaOJ3fQMB48sIO-Aj z%cGn3z~7NQd)_CuC^BXOGGXhsVuzLO!<74a?|tZ(r^>R zUAuNos){^O*6ny#Y^1aE%{?!^4fx#atnt6ccJ0IzJd1uA`XZ4U(iJ@ZGwBE^)=e*< zMd8=pq2DBGkH*m#JL`P*ge}7ZGz3F&I(1Mp%FqJ~+n=~~RAe-8YKh~3c?n9z>Ym)R z0-!eQKi_z`U0}4}RkPifHEp$3E;P##3Ruu7$RskG+U3{E=-As6AgLGasn^SkCbm>Z zQD&TFxLY4`OTGxKTDH;cA2NP5$)LfDk4E2|{7%dN1ZUwwnTbzB|=dI`kqbydU;Ba2NKJ3Lz z^j>=dvB8iFB5}y(#R}^DfUhCMJIqE%y68o{H7TIDGMv-2rEX|xL3?pxrhoevrzbY{ zcgp(4;rjHEy*kVK3*}PvxIewH-mnG_{%5l~Jzw(K;-y~I2P%6zicDx6h7B*Z-Kw{D z#Vq2L-5!;fj(l8}WfuCrGu>UNUjDjHdosNGaBNi$9%D?Vvxmkxbl4SfSH@W9@!aOj z6LAK75;|c>ef))g=*nxaxduMhY`^o`Yp?k-?C_%<-ufWa*N_IlSr2fW#!V`EL6nbI zRLz|MoS)?J3fBD#D}|2YbR?3}y7^kG;|1!u??kZRJlaWdyWk#8MB;>4eH8k7%a}2o z2ABz&TQnWN;w6>R4R>BwEXQsc0Kj}wv}8hvs#^{q3=kMAw5Y3$N2|&t0H6TK9V>=< zJBVoAVmfFAuM@S30rJCo7@Cnq;T)?o9(}4N=r9YJ&WDoO7G-{^G1D8)PWKk3W=Flb zM%mr|vTk4*Kr>%U9;^geU6Ppx7L81J;uql-2!)%$lC!9az}85p?pggH)~TZ@V1Psl zZOqokegxjX)jU5lUtcX>lOYfAAIJZPtJx>IMF=1}(6!Ob1&)%(i0bxLQ^CS_7L4yVRl`TejW;YmCV} z#M(5t^`|HmZ+c=5EI|TiWZCASmZRyGTL7aU3K%As`NuF+{GaFOJ1JNDEmxD(N<@w{L2KJSvGJ|N0X%uU!iLmR+=GuaV z<%X-rhOX%b0|vsDNqG1*ig>!erW(w`1ke^id{tvG8`J?veehEq!9N!QQ} z+bjj87%5FtPk8ceWzPy26n@uPxT#^O<9XAev~-Sf;MU#ywve zz2)9}$MK7Q12RG8F%8+`3L-q%R^*p**Ie!+1JNKnS;8N^OK6stkrr0?Hi=Mnc1{hyJ=>jQb%a@o9;od-RsrC;;uo1ukENB zVR51qdTx1cY47Mv=oq^5Vm`T3D9?%Y*&moEmA{VBc@+GarI`Ul+!3S2I zSRZ9abEVnNLVf&V#Ie&DPVzI^*mpQqkNg%P?f8654l7d;56=B9fJsG7ZQ#AU?%~d& z_Tw=DYNKpPWF#fr_t_t9VvuSZ!spp%eAVTozjGw!fH(2zqGxp}*;!hDDXL*nY8(*- z#X5rxvE(W1jQzpzyd|;Zc`F@`R~P0|IPQjSbD#6;x%W&7E!_j%<~$Uv0S{PFU*f7~}cgioq0YfxZ`FP$fj> z9s-bdT;PEjhdjR^W5eVDJJg6w-DDK=mFv0UH9W=D9K+IG%vWF3p(_4gy>rUX7D*rEMZvrn#R@RB; zi4$>7?E8}Y7B@5Qelu@w_tstN*4o|GUDbOxy|Q#Sz0fpG(ak2b1>K0YfVcyqs5me# z0|Sf?5QIh$-*fco$jBR66crSGI-`s}(HU;d_npYRb*q8j{Crh6BQql-PDGqI@tyy- z{Xb+c26?Jr6%0yLU7<{sIi|cTaI!GlsK<0uHSpA71#v=ERsu_U4P$T{3}-R&-O1CD z1d|b{*CEpPgPsiyLPwjhk6{5KD&!o62XPFjwG0c#3g-%U6do-6Fg)AcbOZw#Ksf$Q zxG=Ja~Evsf) zMRy3RD1}u+r)1e>n>QJ!9-t;u~9{y#`b$NBC#ywl>pTD5^%TXyYie_AjmVM;}r6#QEwX*S3+!oE`I@GS5$01O*%6aPMT*Ih)}f8Cv5 z{_=rO@dC_wr(sK>k@8W_2r?^EG8)7am_E|1JFA2e9~GJx%KjvsQiP-;OH8bV<~Sq2 z@|#Xo)lopPx}$vSL6E}<)m1b80Z!-Yv2B3LDVJrbOqs$1Kqo7=RqKET^?S9^#9^!q zK#X}O?tEnA19+n))hv#CR@W)Y?A;&+y6c<@M`84Xnd6!5xG>ej^XGl3um#xc zj=}?l$Db9y#PiUOgX99CA71*NT%L7+jCAlFz9MH6;Dv*%gw;GqgnrjVk#8P({*fck ze+(BtwRzp9LVXZp{<7g`wb-XP0wP)53|H1L;(0&+Zxh;=BW zsy%HN7KNGZS|guA3tu8Y4uaAo%2~4qJdMttJ-atrs`M(ldb4@e-q-H9a`UKsy{X4X z@Az6ly7)~PPoIGCgxU6aj3m+-2>;ptdKInaSGUQU-VNpnwt$eTkR@IjOw zO7eQ98s5CEodO+TE^5rL?d<&K%zQ&0MN`fPPA<8swoTU-*H3<6YS+1RtWW*xj%6F? zk7y_IV`aS~M?P=Zwn5&aJLHY~=XK|OCzd>}?MSOj>nGml=;ST%^Xyo^MZQ8lT=-MO zfg?VxKQy&@Oy$>zPlL^K+1AZs9*Zn;{80cdq1Xak8&7Q;NRQf%({9#_`+2>tB4O#9tYAH>0ExQU>$ z*B=f0LhJ44Se`}b>d&3vQ$x&D;YR#98j?RI3W7KWXdqHd04J)=Esz(Q&UH#Pt8PTP zqk2sMVf8`XGHolcCC+Q`pd)UBzoMmR77TG2TH-l*5XcY-;f<&gMDrwEBI~B5fSTvT znh7hkm}(%snT%=vfV(PH#5YLUgRn>4We?ACNOV$Ni&E`_4PVv!6vAm5<|5gbb6iX8ln}9 z`4V)irirLb5~m@{>j_7!bLkcG>~L)8v6t-az2x<{IJSM?*4BNm#KrdJ z3pO`ja2^-0WA>RHH=4{PrK)0;ExA&T({b$Xp0U~48zkw*bC))#$gqJ@EhTf4$lW<( z@pCs4a>Hc-rN!yNU_pLodNf$Mi!0H6p7FTK_$8N$a)uOY(K!>`0cCc7l# zQ8J-Pgn_GvZ<+NuL#J^R)K`3KuwyEFCkZ*Zrx?2f+gqszQ7jv=A;*bVTk*~H9fR$i zzzvwbvu=4SHQYe|y)S<8i@z=YeH{L+oLyNtdpj<^_|&1M!Z4AI(30aQtgi&->{zFc zF=Gce5KU=i4UXj>I+@1B!i5W@aN+64AOC+}{&I5Ni@*5DBVX8BIeRA_02Wif;03_} z7y%AU(f=fpBQVN-z@s$h_8#SL#1pGWs zF0RLGk!Nnd?e^PP`V?vsg{Xn?XxxPae!T8Ysen?dbnmHQ^u&IDG4Gpus)=uQze!1u*71N8X$fHcV4W<%9;j+YGBB@E|+#qzwE7ZhJ+U=y~Hc1uq zZJmR%uCjv|nfxAn7xw0~Jv&t#g9wGY2PZo|e6|R)$y*Nf@^RjbtuXd#T^JRHV_HEq zw5ZgsI<65Ys#DPzBR_k%Tlc?;l`S++T7f-4-B-V;yEb&Mhb1^*R^*Za`oWv>vGZk+ z5pOOm6t>YLI{~;V(v&gR14cX`c!Y5|q6Jt#s|5qk@$C0CG8xne#`w{M3wq{>V6;ol z-{qVo^45oHjH>nSXtWqsPU)7Xz^v@Pxyls1r9A?7IkcmQ4K7eM@>+}zSV{&O!+aDYV*I3Q@BhvSM)g6S2}vPYah;Cr-kLh zQJ6V|tWXe$S20fkPF&Q3yX?Zo2N#yie$OwgN(M=G`GtY>`^%HY23>wKk|~R;-K_3} z1EOjcrP62b$CV|19d%=kH=10F<*K8(Rhmnu&vYKglP+OBftS!u)M@EvgV`EaoFbtg zD^V&x%p_iW8@j3fvZZ>S+A8YRsy@pn%YCNEqja+HOQKfZ5@ETfHAvfnq%wxDw3lLl z|C&5?;0Q>$KE=XlEac(Hp-65p5hN#qweQ>CNBHdI+|g~!^G71W@vsXMZj^qvec(M$ z`kdwiz=8j>9Lw-`UMyQ=HSOO}3oMhaa#i&Jp)L-JgVJD0R+;bcRU+H2S-tUOXv5aE z*-Mp7O>qsTGeuQ>MKzFPM^bBtwz0#;d=!`G%5gORdqea~%X0p<|4mBOQP!ySI@cc4 zbkzmyTZgAWZvbp`1MS$g4k3+|X0R|i7bI88a`~oph9ZGkks6 zbC+H3!~0)^UEuFWVHNz5pOu>*l;vg!3~6ln!5X!&wFj=v1g=+6{%!FREMwbMs=j=N1d!jp;a%S05@L6<&y^rtHs z+kW9rv2^E~$o)~}(SOs5imms)E@4~GYpu)=C$1@*_rIfEZlte&x?JAAe_NS*^YhC= z>%EWGgY&=mrS3}e1v|VH+Pj~sSK2@QfFa-VR9;W`+n=<3;E6S@J6AEA?FXi zcc+=W488kA%YpwaEtkbB*j?GmjYsK&nVeUaOZ8!;NzJa3asw&C0!6FOUx(!*ke8*CCRhDHF zKw6eEP-%Ic*6qMhBnkD+*mMG8*$mv;8Y!s?cj&@o_&{csHMLa9)_RLsyH>34|GI8z zO~LQ}FBkuue3rZ$@M==%!6+2>Egxip)4YqfcdW!%4*;vLOzGREDoaLsyxK0eVp9t| zx0Bi*g)fPz1~qaU^wIK)Zfl{gtqr&C!J2gU9I24!aWBx!xK(b|Ts!S_0@aAqa=U+x zuj>9nRIGw*EFHP$<+#IR{exITTj*pMg_gjWkfARv6q4_%UZYc31WuuCIATcK!MI4K#+nd`pnOWuQ!yB&qJ{*PJpx%W=yn(f z*~`W5EwR4>Uq)Tf(E*hm*0PVH#qSARq^li&<91_8ezdc?v9fVVy(WJ$Jqj$M60dk|RqRxr zHt5tHJc26Ej^H$AhphY97PQ&BII|XgxwYFF5#mg7x%- z=QV|sLW=Hx(P2OknCn%U(16%_*ReP;ebuuJgGYu&ZL@00MIWo9`$gHRnl{yph#Q9G zslG|LwI<2c<(N$>Ympu3)%tv^RMgC(sTE7D`Fd3k>}ahrVexWRmb_xIT`YPw#()R5 z;kvQwJ`n1XVq1+x<~Cin*syFy^so{qWum$&DJL;`SH*edb>-LtNv0?=V4t{r-7B5S zk5OjE+%PSl`!GYtOb#1b1`3?k2xSKS0Mm&Na+1d;V}|C1D|N~P2^umiVj3Q$o?#Np zfaaut)A~y2X~y&L4BJID4^(G(hOv7>3Urw)HPB7iSR%3>NO}#6OxN_O9`oPGr^p3( zw&!y_rZ#=d@Fr2#Udt``Fq?=9qkYFS-<*fUG_~?w=U)C<~3l7Ft1%63rI084xViQ;tf${ zHxp5F2_cuB)5o58A}yL{&sIjobH%yor?XeT_A(RJ4?OY2T+ujtwmd4GyK4FgHhKcD zU&N3|3X+_!u8jD z=!N%}&kkUHY2`zQ>MJQC()bj}wp$91VcpLVD|vcLFt-o7!%Jna(d?dzBA?@Auu1YA1*6>#8N8`pY0%|3CT96E?aV!1EV-8T#zV%P z^QyrbMZ2!hAXJD^E1CK@Kps1)aEr>#n5&YMs!!|s(>uEBMvl9rxS#+iZ9;3Nb5x7JAHCoTTGn79_r=sm4mZ*u6b8>mfIFy)h>nTD@4=o`23lcWJKSmwdA1 zS2~ssD5OX>$Y2nA=8uHcFsz|_pKM6dpM{Hz$Q2O(&O++h*Hmm38T>(Hu$6{xP`Ylq z+R|r+gV(pcF!b8}zFrRIp93Jfr-BqpSdZM%QvcSD<60cwW_-%FKV^vd_#*jJ@;Vq* zW8tM2+{SQyxo$8umE?7!@*$H0LQG)ht%=~as1^p`RmloF+yQO|xrLvms&9|MJ8TBHg?zA&P zdUMBn$LIPtdWNQ98=C%#zzsvU>ji<=+`7VdWYB&cKb@Z(>lI6msd_FTmeBE3(Y4hZnklphV9`xXYeU|)*^((W!BFh zQkYRR0f8wL%M~y!(A97$^aB8?glgQ-0;338ui@%4Q<$uS`Uy{`V(X5nu=U-=t8c$% zW#`8z;l$zy!zGO4qlzv8D%CJhM^hyESw__hM3FZljmpgSYL*5#TXSrxV@*0kr?#VU z&9iEr&18xcqr?;L6@^OF&~12I0L9O{b+U41aq-N`+52J+_l@zRys8FVXPKbdx zk~EEj|D4FrW(5nhy+;d=7hYX>s_+)U-U_M)bPvW!brXi=1iL|dTJC;~N$%M!8UYr0 zsPZ&SYC4|b14clJLL2MJL3Gpsa|1^plj|_3hA=Fng$oQK!EjnBV(!SO0+&N}PCdGJ_cf}91?oN1R%DrRu7EJ(D%Y7^c0Fp%`BmFBK%>?)-*T<`u?C<* zA9EOGTj8El^*f%XUVT@)_1J$w2fYRNi8Y8MDo@B3Mp9xPC>_W|#gEXHR3eN>jC}9j zqbF~CvLvZ&2g544>Zovg;O1hS5I0Jaq+*Dy9+g&tlB0oapj^?!KZVmchJm8n!Ad#Q znQS+2VyaYn^2U>!lfC`-;+Zf>R%nOFcq;H`5e1JTOF4(ZXQZn@AAWV=$-u zBY<^Sgg)ApL`JzS>X0G=7>T-|d0H((1&r-Q#RYp`+%x2ROCkXtU=u8MPXvMG2-iv| zltf;09tu2)CsD4M9zuar2ZA()o(2H6^WdIgj&AOq+LUz|Zo}PkyM_%4nZZo1^lGg@ z4Vv{HgKxU5>b3#D4`Dl9-aOU2d1M-U5AJx9tZ9