You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by dp...@apache.org on 2017/06/22 20:47:51 UTC
[03/10] logging-log4net git commit: Add test web app for asp extension
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Models/ManageViewModels/RemoveLoginViewModel.cs
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Models/ManageViewModels/RemoveLoginViewModel.cs b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Models/ManageViewModels/RemoveLoginViewModel.cs
new file mode 100644
index 0000000..394df34
--- /dev/null
+++ b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Models/ManageViewModels/RemoveLoginViewModel.cs
@@ -0,0 +1,14 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Threading.Tasks;
+
+namespace WebApplication.Models.ManageViewModels
+{
+ public class RemoveLoginViewModel
+ {
+ public string LoginProvider { get; set; }
+ public string ProviderKey { get; set; }
+ }
+}
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Models/ManageViewModels/SetPasswordViewModel.cs
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Models/ManageViewModels/SetPasswordViewModel.cs b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Models/ManageViewModels/SetPasswordViewModel.cs
new file mode 100644
index 0000000..76c1b4b
--- /dev/null
+++ b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Models/ManageViewModels/SetPasswordViewModel.cs
@@ -0,0 +1,22 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Threading.Tasks;
+
+namespace WebApplication.Models.ManageViewModels
+{
+ public class SetPasswordViewModel
+ {
+ [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; }
+ }
+}
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Models/ManageViewModels/VerifyPhoneNumberViewModel.cs
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Models/ManageViewModels/VerifyPhoneNumberViewModel.cs b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Models/ManageViewModels/VerifyPhoneNumberViewModel.cs
new file mode 100644
index 0000000..3c8c08c
--- /dev/null
+++ b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Models/ManageViewModels/VerifyPhoneNumberViewModel.cs
@@ -0,0 +1,19 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Threading.Tasks;
+
+namespace WebApplication.Models.ManageViewModels
+{
+ public class VerifyPhoneNumberViewModel
+ {
+ [Required]
+ public string Code { get; set; }
+
+ [Required]
+ [Phone]
+ [Display(Name = "Phone number")]
+ public string PhoneNumber { get; set; }
+ }
+}
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Program.cs
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Program.cs b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Program.cs
new file mode 100644
index 0000000..74e9753
--- /dev/null
+++ b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Program.cs
@@ -0,0 +1,24 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Hosting;
+
+namespace WebApplication
+{
+ public class Program
+ {
+ public static void Main(string[] args)
+ {
+ var host = new WebHostBuilder()
+ .UseKestrel()
+ .UseContentRoot(Directory.GetCurrentDirectory())
+ .UseIISIntegration()
+ .UseStartup<Startup>()
+ .Build();
+
+ host.Run();
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/README.md
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/README.md b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/README.md
new file mode 100644
index 0000000..d8ba0b3
--- /dev/null
+++ b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/README.md
@@ -0,0 +1,39 @@
+# Welcome to ASP.NET Core
+
+We've made some big updates in this release, so it’s **important** that you spend a few minutes to learn what’s new.
+
+You've created a new ASP.NET Core project. [Learn what's new](https://go.microsoft.com/fwlink/?LinkId=518016)
+
+## This application consists of:
+
+* Sample pages using ASP.NET Core MVC
+* [Gulp](https://go.microsoft.com/fwlink/?LinkId=518007) and [Bower](https://go.microsoft.com/fwlink/?LinkId=518004) for managing client-side libraries
+* Theming using [Bootstrap](https://go.microsoft.com/fwlink/?LinkID=398939)
+
+## How to
+
+* [Add a Controller and View](https://go.microsoft.com/fwlink/?LinkID=398600)
+* [Add an appsetting in config and access it in app.](https://go.microsoft.com/fwlink/?LinkID=699562)
+* [Manage User Secrets using Secret Manager.](https://go.microsoft.com/fwlink/?LinkId=699315)
+* [Use logging to log a message.](https://go.microsoft.com/fwlink/?LinkId=699316)
+* [Add packages using NuGet.](https://go.microsoft.com/fwlink/?LinkId=699317)
+* [Add client packages using Bower.](https://go.microsoft.com/fwlink/?LinkId=699318)
+* [Target development, staging or production environment.](https://go.microsoft.com/fwlink/?LinkId=699319)
+
+## Overview
+
+* [Conceptual overview of what is ASP.NET Core](https://go.microsoft.com/fwlink/?LinkId=518008)
+* [Fundamentals of ASP.NET Core such as Startup and middleware.](https://go.microsoft.com/fwlink/?LinkId=699320)
+* [Working with Data](https://go.microsoft.com/fwlink/?LinkId=398602)
+* [Security](https://go.microsoft.com/fwlink/?LinkId=398603)
+* [Client side development](https://go.microsoft.com/fwlink/?LinkID=699321)
+* [Develop on different platforms](https://go.microsoft.com/fwlink/?LinkID=699322)
+* [Read more on the documentation site](https://go.microsoft.com/fwlink/?LinkID=699323)
+
+## Run & Deploy
+
+* [Run your app](https://go.microsoft.com/fwlink/?LinkID=517851)
+* [Run tools such as EF migrations and more](https://go.microsoft.com/fwlink/?LinkID=517853)
+* [Publish to Microsoft Azure Web Apps](https://go.microsoft.com/fwlink/?LinkID=398609)
+
+We would love to hear your [feedback](https://go.microsoft.com/fwlink/?LinkId=518015)
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Services/IEmailSender.cs
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Services/IEmailSender.cs b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Services/IEmailSender.cs
new file mode 100644
index 0000000..08fb35b
--- /dev/null
+++ b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Services/IEmailSender.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+
+namespace WebApplication.Services
+{
+ public interface IEmailSender
+ {
+ Task SendEmailAsync(string email, string subject, string message);
+ }
+}
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Services/ISmsSender.cs
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Services/ISmsSender.cs b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Services/ISmsSender.cs
new file mode 100644
index 0000000..8e57a23
--- /dev/null
+++ b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Services/ISmsSender.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+
+namespace WebApplication.Services
+{
+ public interface ISmsSender
+ {
+ Task SendSmsAsync(string number, string message);
+ }
+}
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Services/MessageServices.cs
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Services/MessageServices.cs b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Services/MessageServices.cs
new file mode 100644
index 0000000..de54bfc
--- /dev/null
+++ b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Services/MessageServices.cs
@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+
+namespace WebApplication.Services
+{
+ // This class is used by the application to send Email and SMS
+ // when you turn on two-factor authentication in ASP.NET Identity.
+ // For more details see this link https://go.microsoft.com/fwlink/?LinkID=532713
+ public class AuthMessageSender : IEmailSender, ISmsSender
+ {
+ public Task SendEmailAsync(string email, string subject, string message)
+ {
+ // Plug in your email service here to send an email.
+ return Task.FromResult(0);
+ }
+
+ public Task SendSmsAsync(string number, string message)
+ {
+ // Plug in your SMS service here to send a text message.
+ return Task.FromResult(0);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Settings/logconfig.xml
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Settings/logconfig.xml b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Settings/logconfig.xml
new file mode 100644
index 0000000..cc1a4b6
--- /dev/null
+++ b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Settings/logconfig.xml
@@ -0,0 +1,6 @@
+<log4net>
+ <!-- Set root logger level to DEBUG and its only appender to A1 -->
+ <root>
+ <level value="DEBUG" />
+ </root>
+</log4net>
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Startup.cs
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Startup.cs b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Startup.cs
new file mode 100644
index 0000000..10bdb86
--- /dev/null
+++ b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Startup.cs
@@ -0,0 +1,92 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Builder;
+using Microsoft.AspNetCore.Hosting;
+using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.Extensions.Configuration;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.Logging;
+using log4net.Extensions.Logging;
+using WebApplication.Data;
+using WebApplication.Models;
+using WebApplication.Services;
+
+namespace WebApplication
+{
+ public class Startup
+ {
+ public Startup(IHostingEnvironment env)
+ {
+ var builder = new ConfigurationBuilder()
+ .SetBasePath(env.ContentRootPath)
+ .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
+ .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true);
+
+ if (env.IsDevelopment())
+ {
+ // For more details on using the user secret store see https://go.microsoft.com/fwlink/?LinkID=532709
+ builder.AddUserSecrets();
+ }
+
+ builder.AddEnvironmentVariables();
+ Configuration = builder.Build();
+ }
+
+ public IConfigurationRoot Configuration { get; }
+
+ // This method gets called by the runtime. Use this method to add services to the container.
+ public void ConfigureServices(IServiceCollection services)
+ {
+ // Add framework services.
+ services.AddDbContext<ApplicationDbContext>(options =>
+ options.UseSqlite(Configuration.GetConnectionString("DefaultConnection")));
+
+ services.AddIdentity<ApplicationUser, IdentityRole>()
+ .AddEntityFrameworkStores<ApplicationDbContext>()
+ .AddDefaultTokenProviders();
+
+ services.AddMvc();
+
+ // Add application services.
+ services.AddTransient<IEmailSender, AuthMessageSender>();
+ services.AddTransient<ISmsSender, AuthMessageSender>();
+ }
+
+ // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
+ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
+ {
+ env.ConfigureLog4Net("Settings/logconfig.xml", this.GetType());
+ loggerFactory.AddLog4Net(this.GetType());
+
+ loggerFactory.AddConsole(Configuration.GetSection("Logging"));
+ loggerFactory.AddDebug();
+
+ if (env.IsDevelopment())
+ {
+ app.UseDeveloperExceptionPage();
+ app.UseDatabaseErrorPage();
+ app.UseBrowserLink();
+ }
+ else
+ {
+ app.UseExceptionHandler("/Home/Error");
+ }
+
+ app.UseStaticFiles();
+
+ app.UseIdentity();
+
+ // Add external authentication middleware below. To configure them please see https://go.microsoft.com/fwlink/?LinkID=532715
+
+ app.UseMvc(routes =>
+ {
+ routes.MapRoute(
+ name: "default",
+ template: "{controller=Home}/{action=Index}/{id?}");
+ });
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/ConfirmEmail.cshtml
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/ConfirmEmail.cshtml b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/ConfirmEmail.cshtml
new file mode 100644
index 0000000..8e8088d
--- /dev/null
+++ b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/ConfirmEmail.cshtml
@@ -0,0 +1,10 @@
+@{
+ ViewData["Title"] = "Confirm Email";
+}
+
+<h2>@ViewData["Title"].</h2>
+<div>
+ <p>
+ Thank you for confirming your email. Please <a asp-controller="Account" asp-action="Login">Click here to Log in</a>.
+ </p>
+</div>
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/ExternalLoginConfirmation.cshtml
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/ExternalLoginConfirmation.cshtml b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/ExternalLoginConfirmation.cshtml
new file mode 100644
index 0000000..eb3612b
--- /dev/null
+++ b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/ExternalLoginConfirmation.cshtml
@@ -0,0 +1,35 @@
+@model ExternalLoginConfirmationViewModel
+@{
+ ViewData["Title"] = "Register";
+}
+
+<h2>@ViewData["Title"].</h2>
+<h3>Associate your @ViewData["LoginProvider"] account.</h3>
+
+<form asp-controller="Account" asp-action="ExternalLoginConfirmation" asp-route-returnurl="@ViewData["ReturnUrl"]" method="post" class="form-horizontal">
+ <h4>Association Form</h4>
+ <hr />
+ <div asp-validation-summary="All" class="text-danger"></div>
+
+ <p class="text-info">
+ You've successfully authenticated with <strong>@ViewData["LoginProvider"]</strong>.
+ Please enter an email address for this site below and click the Register button to finish
+ logging in.
+ </p>
+ <div class="form-group">
+ <label asp-for="Email" class="col-md-2 control-label"></label>
+ <div class="col-md-10">
+ <input asp-for="Email" class="form-control" />
+ <span asp-validation-for="Email" class="text-danger"></span>
+ </div>
+ </div>
+ <div class="form-group">
+ <div class="col-md-offset-2 col-md-10">
+ <button type="submit" class="btn btn-default">Register</button>
+ </div>
+ </div>
+</form>
+
+@section Scripts {
+ @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); }
+}
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/ExternalLoginFailure.cshtml
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/ExternalLoginFailure.cshtml b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/ExternalLoginFailure.cshtml
new file mode 100644
index 0000000..2509746
--- /dev/null
+++ b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/ExternalLoginFailure.cshtml
@@ -0,0 +1,8 @@
+@{
+ ViewData["Title"] = "Login Failure";
+}
+
+<header>
+ <h2>@ViewData["Title"].</h2>
+ <p class="text-danger">Unsuccessful login with service.</p>
+</header>
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/ForgotPassword.cshtml
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/ForgotPassword.cshtml b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/ForgotPassword.cshtml
new file mode 100644
index 0000000..9d74802
--- /dev/null
+++ b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/ForgotPassword.cshtml
@@ -0,0 +1,31 @@
+@model ForgotPasswordViewModel
+@{
+ ViewData["Title"] = "Forgot your password?";
+}
+
+<h2>@ViewData["Title"]</h2>
+<p>
+ For more information on how to enable reset password please see this <a href="https://go.microsoft.com/fwlink/?LinkID=532713">article</a>.
+</p>
+
+@*<form asp-controller="Account" asp-action="ForgotPassword" method="post" class="form-horizontal">
+ <h4>Enter your email.</h4>
+ <hr />
+ <div asp-validation-summary="All" class="text-danger"></div>
+ <div class="form-group">
+ <label asp-for="Email" class="col-md-2 control-label"></label>
+ <div class="col-md-10">
+ <input asp-for="Email" class="form-control" />
+ <span asp-validation-for="Email" class="text-danger"></span>
+ </div>
+ </div>
+ <div class="form-group">
+ <div class="col-md-offset-2 col-md-10">
+ <button type="submit" class="btn btn-default">Submit</button>
+ </div>
+ </div>
+</form>*@
+
+@section Scripts {
+ @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); }
+}
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/ForgotPasswordConfirmation.cshtml
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/ForgotPasswordConfirmation.cshtml b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/ForgotPasswordConfirmation.cshtml
new file mode 100644
index 0000000..4877fc8
--- /dev/null
+++ b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/ForgotPasswordConfirmation.cshtml
@@ -0,0 +1,8 @@
+@{
+ ViewData["Title"] = "Forgot Password Confirmation";
+}
+
+<h2>@ViewData["Title"].</h2>
+<p>
+ Please check your email to reset your password.
+</p>
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/Lockout.cshtml
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/Lockout.cshtml b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/Lockout.cshtml
new file mode 100644
index 0000000..34ac56f
--- /dev/null
+++ b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/Lockout.cshtml
@@ -0,0 +1,8 @@
+@{
+ ViewData["Title"] = "Locked out";
+}
+
+<header>
+ <h1 class="text-danger">Locked out.</h1>
+ <p class="text-danger">This account has been locked out, please try again later.</p>
+</header>
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/Login.cshtml
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/Login.cshtml b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/Login.cshtml
new file mode 100644
index 0000000..95430a1
--- /dev/null
+++ b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/Login.cshtml
@@ -0,0 +1,92 @@
+@using System.Collections.Generic
+@using Microsoft.AspNetCore.Http
+@using Microsoft.AspNetCore.Http.Authentication
+@model LoginViewModel
+@inject SignInManager<ApplicationUser> SignInManager
+
+@{
+ ViewData["Title"] = "Log in";
+}
+
+<h2>@ViewData["Title"].</h2>
+<div class="row">
+ <div class="col-md-8">
+ <section>
+ <form asp-controller="Account" asp-action="Login" asp-route-returnurl="@ViewData["ReturnUrl"]" method="post" class="form-horizontal">
+ <h4>Use a local account to log in.</h4>
+ <hr />
+ <div asp-validation-summary="All" class="text-danger"></div>
+ <div class="form-group">
+ <label asp-for="Email" class="col-md-2 control-label"></label>
+ <div class="col-md-10">
+ <input asp-for="Email" class="form-control" />
+ <span asp-validation-for="Email" class="text-danger"></span>
+ </div>
+ </div>
+ <div class="form-group">
+ <label asp-for="Password" class="col-md-2 control-label"></label>
+ <div class="col-md-10">
+ <input asp-for="Password" class="form-control" />
+ <span asp-validation-for="Password" class="text-danger"></span>
+ </div>
+ </div>
+ <div class="form-group">
+ <div class="col-md-offset-2 col-md-10">
+ <div class="checkbox">
+ <label asp-for="RememberMe">
+ <input asp-for="RememberMe" />
+ @Html.DisplayNameFor(m => m.RememberMe)
+ </label>
+ </div>
+ </div>
+ </div>
+ <div class="form-group">
+ <div class="col-md-offset-2 col-md-10">
+ <button type="submit" class="btn btn-default">Log in</button>
+ </div>
+ </div>
+ <p>
+ <a asp-action="Register" asp-route-returnurl="@ViewData["ReturnUrl"]">Register as a new user?</a>
+ </p>
+ <p>
+ <a asp-action="ForgotPassword">Forgot your password?</a>
+ </p>
+ </form>
+ </section>
+ </div>
+ <div class="col-md-4">
+ <section>
+ <h4>Use another service to log in.</h4>
+ <hr />
+ @{
+ var loginProviders = SignInManager.GetExternalAuthenticationSchemes().ToList();
+ if (loginProviders.Count == 0)
+ {
+ <div>
+ <p>
+ There are no external authentication services configured. See <a href="https://go.microsoft.com/fwlink/?LinkID=532715">this article</a>
+ for details on setting up this ASP.NET application to support logging in via external services.
+ </p>
+ </div>
+ }
+ else
+ {
+ <form asp-controller="Account" asp-action="ExternalLogin" asp-route-returnurl="@ViewData["ReturnUrl"]" method="post" class="form-horizontal">
+ <div>
+ <p>
+ @foreach (var provider in loginProviders)
+ {
+ <button type="submit" class="btn btn-default" name="provider" value="@provider.AuthenticationScheme" title="Log in using your @provider.DisplayName account">@provider.AuthenticationScheme</button>
+ }
+ </p>
+ </div>
+ </form>
+ }
+ }
+ </section>
+ </div>
+</div>
+
+@section Scripts {
+ @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); }
+}
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/Register.cshtml
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/Register.cshtml b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/Register.cshtml
new file mode 100644
index 0000000..2090f90
--- /dev/null
+++ b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/Register.cshtml
@@ -0,0 +1,42 @@
+@model RegisterViewModel
+@{
+ ViewData["Title"] = "Register";
+}
+
+<h2>@ViewData["Title"].</h2>
+
+<form asp-controller="Account" asp-action="Register" asp-route-returnurl="@ViewData["ReturnUrl"]" method="post" class="form-horizontal">
+ <h4>Create a new account.</h4>
+ <hr />
+ <div asp-validation-summary="All" class="text-danger"></div>
+ <div class="form-group">
+ <label asp-for="Email" class="col-md-2 control-label"></label>
+ <div class="col-md-10">
+ <input asp-for="Email" class="form-control" />
+ <span asp-validation-for="Email" class="text-danger"></span>
+ </div>
+ </div>
+ <div class="form-group">
+ <label asp-for="Password" class="col-md-2 control-label"></label>
+ <div class="col-md-10">
+ <input asp-for="Password" class="form-control" />
+ <span asp-validation-for="Password" class="text-danger"></span>
+ </div>
+ </div>
+ <div class="form-group">
+ <label asp-for="ConfirmPassword" class="col-md-2 control-label"></label>
+ <div class="col-md-10">
+ <input asp-for="ConfirmPassword" class="form-control" />
+ <span asp-validation-for="ConfirmPassword" class="text-danger"></span>
+ </div>
+ </div>
+ <div class="form-group">
+ <div class="col-md-offset-2 col-md-10">
+ <button type="submit" class="btn btn-default">Register</button>
+ </div>
+ </div>
+</form>
+
+@section Scripts {
+ @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); }
+}
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/ResetPassword.cshtml
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/ResetPassword.cshtml b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/ResetPassword.cshtml
new file mode 100644
index 0000000..dd716d7
--- /dev/null
+++ b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/ResetPassword.cshtml
@@ -0,0 +1,43 @@
+@model ResetPasswordViewModel
+@{
+ ViewData["Title"] = "Reset password";
+}
+
+<h2>@ViewData["Title"].</h2>
+
+<form asp-controller="Account" asp-action="ResetPassword" method="post" class="form-horizontal">
+ <h4>Reset your password.</h4>
+ <hr />
+ <div asp-validation-summary="All" class="text-danger"></div>
+ <input asp-for="Code" type="hidden" />
+ <div class="form-group">
+ <label asp-for="Email" class="col-md-2 control-label"></label>
+ <div class="col-md-10">
+ <input asp-for="Email" class="form-control" />
+ <span asp-validation-for="Email" class="text-danger"></span>
+ </div>
+ </div>
+ <div class="form-group">
+ <label asp-for="Password" class="col-md-2 control-label"></label>
+ <div class="col-md-10">
+ <input asp-for="Password" class="form-control" />
+ <span asp-validation-for="Password" class="text-danger"></span>
+ </div>
+ </div>
+ <div class="form-group">
+ <label asp-for="ConfirmPassword" class="col-md-2 control-label"></label>
+ <div class="col-md-10">
+ <input asp-for="ConfirmPassword" class="form-control" />
+ <span asp-validation-for="ConfirmPassword" class="text-danger"></span>
+ </div>
+ </div>
+ <div class="form-group">
+ <div class="col-md-offset-2 col-md-10">
+ <button type="submit" class="btn btn-default">Reset</button>
+ </div>
+ </div>
+</form>
+
+@section Scripts {
+ @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); }
+}
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/ResetPasswordConfirmation.cshtml
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/ResetPasswordConfirmation.cshtml b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/ResetPasswordConfirmation.cshtml
new file mode 100644
index 0000000..6321d85
--- /dev/null
+++ b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/ResetPasswordConfirmation.cshtml
@@ -0,0 +1,8 @@
+@{
+ ViewData["Title"] = "Reset password confirmation";
+}
+
+<h1>@ViewData["Title"].</h1>
+<p>
+ Your password has been reset. Please <a asp-controller="Account" asp-action="Login">Click here to log in</a>.
+</p>
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/SendCode.cshtml
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/SendCode.cshtml b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/SendCode.cshtml
new file mode 100644
index 0000000..e85ca3c
--- /dev/null
+++ b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/SendCode.cshtml
@@ -0,0 +1,21 @@
+@model SendCodeViewModel
+@{
+ ViewData["Title"] = "Send Verification Code";
+}
+
+<h2>@ViewData["Title"].</h2>
+
+<form asp-controller="Account" asp-action="SendCode" asp-route-returnurl="@Model.ReturnUrl" method="post" class="form-horizontal">
+ <input asp-for="RememberMe" type="hidden" />
+ <div class="row">
+ <div class="col-md-8">
+ Select Two-Factor Authentication Provider:
+ <select asp-for="SelectedProvider" asp-items="Model.Providers"></select>
+ <button type="submit" class="btn btn-default">Submit</button>
+ </div>
+ </div>
+</form>
+
+@section Scripts {
+ @{await Html.RenderPartialAsync("_ValidationScriptsPartial"); }
+}
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/VerifyCode.cshtml
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/VerifyCode.cshtml b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/VerifyCode.cshtml
new file mode 100644
index 0000000..60afb36
--- /dev/null
+++ b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Account/VerifyCode.cshtml
@@ -0,0 +1,38 @@
+@model VerifyCodeViewModel
+@{
+ ViewData["Title"] = "Verify";
+}
+
+<h2>@ViewData["Title"].</h2>
+
+<form asp-controller="Account" asp-action="VerifyCode" asp-route-returnurl="@ViewData["ReturnUrl"]" method="post" class="form-horizontal">
+ <div asp-validation-summary="All" class="text-danger"></div>
+ <input asp-for="Provider" type="hidden" />
+ <input asp-for="RememberMe" type="hidden" />
+ <h4>@ViewData["Status"]</h4>
+ <hr />
+ <div class="form-group">
+ <label asp-for="Code" class="col-md-2 control-label"></label>
+ <div class="col-md-10">
+ <input asp-for="Code" class="form-control" />
+ <span asp-validation-for="Code" class="text-danger"></span>
+ </div>
+ </div>
+ <div class="form-group">
+ <div class="col-md-offset-2 col-md-10">
+ <div class="checkbox">
+ <input asp-for="RememberBrowser" />
+ <label asp-for="RememberBrowser"></label>
+ </div>
+ </div>
+ </div>
+ <div class="form-group">
+ <div class="col-md-offset-2 col-md-10">
+ <button type="submit" class="btn btn-default">Submit</button>
+ </div>
+ </div>
+</form>
+
+@section Scripts {
+ @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); }
+}
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Home/About.cshtml
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Home/About.cshtml b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Home/About.cshtml
new file mode 100644
index 0000000..b653a26
--- /dev/null
+++ b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Home/About.cshtml
@@ -0,0 +1,7 @@
+@{
+ ViewData["Title"] = "About";
+}
+<h2>@ViewData["Title"].</h2>
+<h3>@ViewData["Message"]</h3>
+
+<p>Use this area to provide additional information.</p>
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Home/Contact.cshtml
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Home/Contact.cshtml b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Home/Contact.cshtml
new file mode 100644
index 0000000..f953aa6
--- /dev/null
+++ b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Home/Contact.cshtml
@@ -0,0 +1,17 @@
+@{
+ ViewData["Title"] = "Contact";
+}
+<h2>@ViewData["Title"].</h2>
+<h3>@ViewData["Message"]</h3>
+
+<address>
+ One Microsoft Way<br />
+ Redmond, WA 98052-6399<br />
+ <abbr title="Phone">P:</abbr>
+ 425.555.0100
+</address>
+
+<address>
+ <strong>Support:</strong> <a href="mailto:Support@example.com">Support@example.com</a><br />
+ <strong>Marketing:</strong> <a href="mailto:Marketing@example.com">Marketing@example.com</a>
+</address>
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Home/Index.cshtml
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Home/Index.cshtml b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Home/Index.cshtml
new file mode 100644
index 0000000..957b8c1
--- /dev/null
+++ b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Home/Index.cshtml
@@ -0,0 +1,109 @@
+@{
+ ViewData["Title"] = "Home Page";
+}
+
+<div id="myCarousel" class="carousel slide" data-ride="carousel" data-interval="6000">
+ <ol class="carousel-indicators">
+ <li data-target="#myCarousel" data-slide-to="0" class="active"></li>
+ <li data-target="#myCarousel" data-slide-to="1"></li>
+ <li data-target="#myCarousel" data-slide-to="2"></li>
+ <li data-target="#myCarousel" data-slide-to="3"></li>
+ </ol>
+ <div class="carousel-inner" role="listbox">
+ <div class="item active">
+ <img src="~/images/banner1.svg" alt="ASP.NET" class="img-responsive" />
+ <div class="carousel-caption" role="option">
+ <p>
+ Learn how to build ASP.NET apps that can run anywhere.
+ <a class="btn btn-default" href="https://go.microsoft.com/fwlink/?LinkID=525028&clcid=0x409">
+ Learn More
+ </a>
+ </p>
+ </div>
+ </div>
+ <div class="item">
+ <img src="~/images/banner2.svg" alt="Visual Studio" class="img-responsive" />
+ <div class="carousel-caption" role="option">
+ <p>
+ There are powerful new features in Visual Studio for building modern web apps.
+ <a class="btn btn-default" href="https://go.microsoft.com/fwlink/?LinkID=525030&clcid=0x409">
+ Learn More
+ </a>
+ </p>
+ </div>
+ </div>
+ <div class="item">
+ <img src="~/images/banner3.svg" alt="Package Management" class="img-responsive" />
+ <div class="carousel-caption" role="option">
+ <p>
+ Bring in libraries from NuGet, Bower, and npm, and automate tasks using Grunt or Gulp.
+ <a class="btn btn-default" href="https://go.microsoft.com/fwlink/?LinkID=525029&clcid=0x409">
+ Learn More
+ </a>
+ </p>
+ </div>
+ </div>
+ <div class="item">
+ <img src="~/images/banner4.svg" alt="Microsoft Azure" class="img-responsive" />
+ <div class="carousel-caption" role="option">
+ <p>
+ Learn how Microsoft's Azure cloud platform allows you to build, deploy, and scale web apps.
+ <a class="btn btn-default" href="https://go.microsoft.com/fwlink/?LinkID=525027&clcid=0x409">
+ Learn More
+ </a>
+ </p>
+ </div>
+ </div>
+ </div>
+ <a class="left carousel-control" href="#myCarousel" role="button" data-slide="prev">
+ <span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
+ <span class="sr-only">Previous</span>
+ </a>
+ <a class="right carousel-control" href="#myCarousel" role="button" data-slide="next">
+ <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
+ <span class="sr-only">Next</span>
+ </a>
+</div>
+
+<div class="row">
+ <div class="col-md-3">
+ <h2>Application uses</h2>
+ <ul>
+ <li>Sample pages using ASP.NET Core MVC</li>
+ <li><a href="https://go.microsoft.com/fwlink/?LinkId=518007">Gulp</a> and <a href="https://go.microsoft.com/fwlink/?LinkId=518004">Bower</a> for managing client-side libraries</li>
+ <li>Theming using <a href="https://go.microsoft.com/fwlink/?LinkID=398939">Bootstrap</a></li>
+ </ul>
+ </div>
+ <div class="col-md-3">
+ <h2>How to</h2>
+ <ul>
+ <li><a href="https://go.microsoft.com/fwlink/?LinkID=398600">Add a Controller and View</a></li>
+ <li><a href="https://go.microsoft.com/fwlink/?LinkID=699562">Add an appsetting in config and access it in app.</a></li>
+ <li><a href="https://go.microsoft.com/fwlink/?LinkId=699315">Manage User Secrets using Secret Manager.</a></li>
+ <li><a href="https://go.microsoft.com/fwlink/?LinkId=699316">Use logging to log a message.</a></li>
+ <li><a href="https://go.microsoft.com/fwlink/?LinkId=699317">Add packages using NuGet.</a></li>
+ <li><a href="https://go.microsoft.com/fwlink/?LinkId=699318">Add client packages using Bower.</a></li>
+ <li><a href="https://go.microsoft.com/fwlink/?LinkId=699319">Target development, staging or production environment.</a></li>
+ </ul>
+ </div>
+ <div class="col-md-3">
+ <h2>Overview</h2>
+ <ul>
+ <li><a href="https://go.microsoft.com/fwlink/?LinkId=518008">Conceptual overview of what is ASP.NET Core</a></li>
+ <li><a href="https://go.microsoft.com/fwlink/?LinkId=699320">Fundamentals of ASP.NET Core such as Startup and middleware.</a></li>
+ <li><a href="https://go.microsoft.com/fwlink/?LinkId=398602">Working with Data</a></li>
+ <li><a href="https://go.microsoft.com/fwlink/?LinkId=398603">Security</a></li>
+ <li><a href="https://go.microsoft.com/fwlink/?LinkID=699321">Client side development</a></li>
+ <li><a href="https://go.microsoft.com/fwlink/?LinkID=699322">Develop on different platforms</a></li>
+ <li><a href="https://go.microsoft.com/fwlink/?LinkID=699323">Read more on the documentation site</a></li>
+ </ul>
+ </div>
+ <div class="col-md-3">
+ <h2>Run & Deploy</h2>
+ <ul>
+ <li><a href="https://go.microsoft.com/fwlink/?LinkID=517851">Run your app</a></li>
+ <li><a href="https://go.microsoft.com/fwlink/?LinkID=517853">Run tools such as EF migrations and more</a></li>
+ <li><a href="https://go.microsoft.com/fwlink/?LinkID=398609">Publish to Microsoft Azure Web Apps</a></li>
+ </ul>
+ </div>
+</div>
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Manage/AddPhoneNumber.cshtml
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Manage/AddPhoneNumber.cshtml b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Manage/AddPhoneNumber.cshtml
new file mode 100644
index 0000000..2feb93b
--- /dev/null
+++ b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Manage/AddPhoneNumber.cshtml
@@ -0,0 +1,27 @@
+@model AddPhoneNumberViewModel
+@{
+ ViewData["Title"] = "Add Phone Number";
+}
+
+<h2>@ViewData["Title"].</h2>
+<form asp-controller="Manage" asp-action="AddPhoneNumber" method="post" class="form-horizontal">
+ <h4>Add a phone number.</h4>
+ <hr />
+ <div asp-validation-summary="All" class="text-danger"></div>
+ <div class="form-group">
+ <label asp-for="PhoneNumber" class="col-md-2 control-label"></label>
+ <div class="col-md-10">
+ <input asp-for="PhoneNumber" class="form-control" />
+ <span asp-validation-for="PhoneNumber" class="text-danger"></span>
+ </div>
+ </div>
+ <div class="form-group">
+ <div class="col-md-offset-2 col-md-10">
+ <button type="submit" class="btn btn-default">Send verification code</button>
+ </div>
+ </div>
+</form>
+
+@section Scripts {
+ @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); }
+}
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Manage/ChangePassword.cshtml
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Manage/ChangePassword.cshtml b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Manage/ChangePassword.cshtml
new file mode 100644
index 0000000..41c7960
--- /dev/null
+++ b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Manage/ChangePassword.cshtml
@@ -0,0 +1,42 @@
+@model ChangePasswordViewModel
+@{
+ ViewData["Title"] = "Change Password";
+}
+
+<h2>@ViewData["Title"].</h2>
+
+<form asp-controller="Manage" asp-action="ChangePassword" method="post" class="form-horizontal">
+ <h4>Change Password Form</h4>
+ <hr />
+ <div asp-validation-summary="All" class="text-danger"></div>
+ <div class="form-group">
+ <label asp-for="OldPassword" class="col-md-2 control-label"></label>
+ <div class="col-md-10">
+ <input asp-for="OldPassword" class="form-control" />
+ <span asp-validation-for="OldPassword" class="text-danger"></span>
+ </div>
+ </div>
+ <div class="form-group">
+ <label asp-for="NewPassword" class="col-md-2 control-label"></label>
+ <div class="col-md-10">
+ <input asp-for="NewPassword" class="form-control" />
+ <span asp-validation-for="NewPassword" class="text-danger"></span>
+ </div>
+ </div>
+ <div class="form-group">
+ <label asp-for="ConfirmPassword" class="col-md-2 control-label"></label>
+ <div class="col-md-10">
+ <input asp-for="ConfirmPassword" class="form-control" />
+ <span asp-validation-for="ConfirmPassword" class="text-danger"></span>
+ </div>
+ </div>
+ <div class="form-group">
+ <div class="col-md-offset-2 col-md-10">
+ <button type="submit" class="btn btn-default">Change password</button>
+ </div>
+ </div>
+</form>
+
+@section Scripts {
+ @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); }
+}
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Manage/Index.cshtml
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Manage/Index.cshtml b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Manage/Index.cshtml
new file mode 100644
index 0000000..8419b24
--- /dev/null
+++ b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Manage/Index.cshtml
@@ -0,0 +1,71 @@
+@model IndexViewModel
+@{
+ ViewData["Title"] = "Manage your account";
+}
+
+<h2>@ViewData["Title"].</h2>
+<p class="text-success">@ViewData["StatusMessage"]</p>
+
+<div>
+ <h4>Change your account settings</h4>
+ <hr />
+ <dl class="dl-horizontal">
+ <dt>Password:</dt>
+ <dd>
+ @if (Model.HasPassword)
+ {
+ <a asp-controller="Manage" asp-action="ChangePassword" class="btn-bracketed">Change</a>
+ }
+ else
+ {
+ <a asp-controller="Manage" asp-action="SetPassword" class="btn-bracketed">Create</a>
+ }
+ </dd>
+ <dt>External Logins:</dt>
+ <dd>
+
+ @Model.Logins.Count <a asp-controller="Manage" asp-action="ManageLogins" class="btn-bracketed">Manage</a>
+ </dd>
+ <dt>Phone Number:</dt>
+ <dd>
+ <p>
+ Phone Numbers can used as a second factor of verification in two-factor authentication.
+ See <a href="https://go.microsoft.com/fwlink/?LinkID=532713">this article</a>
+ for details on setting up this ASP.NET application to support two-factor authentication using SMS.
+ </p>
+ @*@(Model.PhoneNumber ?? "None")
+ @if (Model.PhoneNumber != null)
+ {
+ <br />
+ <a asp-controller="Manage" asp-action="AddPhoneNumber" class="btn-bracketed">Change</a>
+ <form asp-controller="Manage" asp-action="RemovePhoneNumber" method="post">
+ [<button type="submit" class="btn-link">Remove</button>]
+ </form>
+ }
+ else
+ {
+ <a asp-controller="Manage" asp-action="AddPhoneNumber" class="btn-bracketed">Add</a>
+ }*@
+ </dd>
+
+ <dt>Two-Factor Authentication:</dt>
+ <dd>
+ <p>
+ There are no two-factor authentication providers configured. See <a href="https://go.microsoft.com/fwlink/?LinkID=532713">this article</a>
+ for setting up this application to support two-factor authentication.
+ </p>
+ @*@if (Model.TwoFactor)
+ {
+ <form asp-controller="Manage" asp-action="DisableTwoFactorAuthentication" method="post" class="form-horizontal">
+ Enabled <button type="submit" class="btn-link btn-bracketed">Disable</button>
+ </form>
+ }
+ else
+ {
+ <form asp-controller="Manage" asp-action="EnableTwoFactorAuthentication" method="post" class="form-horizontal">
+ <button type="submit" class="btn-link btn-bracketed">Enable</button> Disabled
+ </form>
+ }*@
+ </dd>
+ </dl>
+</div>
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Manage/ManageLogins.cshtml
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Manage/ManageLogins.cshtml b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Manage/ManageLogins.cshtml
new file mode 100644
index 0000000..35e12da
--- /dev/null
+++ b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Manage/ManageLogins.cshtml
@@ -0,0 +1,54 @@
+@model ManageLoginsViewModel
+@using Microsoft.AspNetCore.Http.Authentication
+@{
+ ViewData["Title"] = "Manage your external logins";
+}
+
+<h2>@ViewData["Title"].</h2>
+
+<p class="text-success">@ViewData["StatusMessage"]</p>
+@if (Model.CurrentLogins.Count > 0)
+{
+ <h4>Registered Logins</h4>
+ <table class="table">
+ <tbody>
+ @for (var index = 0; index < Model.CurrentLogins.Count; index++)
+ {
+ <tr>
+ <td>@Model.CurrentLogins[index].LoginProvider</td>
+ <td>
+ @if ((bool)ViewData["ShowRemoveButton"])
+ {
+ <form asp-controller="Manage" asp-action="RemoveLogin" method="post" class="form-horizontal">
+ <div>
+ <input asp-for="@Model.CurrentLogins[index].LoginProvider" name="LoginProvider" type="hidden" />
+ <input asp-for="@Model.CurrentLogins[index].ProviderKey" name="ProviderKey" type="hidden" />
+ <input type="submit" class="btn btn-default" value="Remove" title="Remove this @Model.CurrentLogins[index].LoginProvider login from your account" />
+ </div>
+ </form>
+ }
+ else
+ {
+ @:
+ }
+ </td>
+ </tr>
+ }
+ </tbody>
+ </table>
+}
+@if (Model.OtherLogins.Count > 0)
+{
+ <h4>Add another service to log in.</h4>
+ <hr />
+ <form asp-controller="Manage" asp-action="LinkLogin" method="post" class="form-horizontal">
+ <div id="socialLoginList">
+ <p>
+ @foreach (var provider in Model.OtherLogins)
+ {
+ <button type="submit" class="btn btn-default" name="provider" value="@provider.AuthenticationScheme" title="Log in using your @provider.DisplayName account">@provider.AuthenticationScheme</button>
+ }
+ </p>
+ </div>
+ </form>
+}
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Manage/SetPassword.cshtml
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Manage/SetPassword.cshtml b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Manage/SetPassword.cshtml
new file mode 100644
index 0000000..cfa7791
--- /dev/null
+++ b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Manage/SetPassword.cshtml
@@ -0,0 +1,38 @@
+@model SetPasswordViewModel
+@{
+ ViewData["Title"] = "Set Password";
+}
+
+<p class="text-info">
+ You do not have a local username/password for this site. Add a local
+ account so you can log in without an external login.
+</p>
+
+<form asp-controller="Manage" asp-action="SetPassword" asp-route-returnurl="@ViewData["ReturnUrl"]" method="post" class="form-horizontal">
+ <h4>Set your password</h4>
+ <hr />
+ <div asp-validation-summary="All" class="text-danger"></div>
+ <div class="form-group">
+ <label asp-for="NewPassword" class="col-md-2 control-label"></label>
+ <div class="col-md-10">
+ <input asp-for="NewPassword" class="form-control" />
+ <span asp-validation-for="NewPassword" class="text-danger"></span>
+ </div>
+ </div>
+ <div class="form-group">
+ <label asp-for="ConfirmPassword" class="col-md-2 control-label"></label>
+ <div class="col-md-10">
+ <input asp-for="ConfirmPassword" class="form-control" />
+ <span asp-validation-for="ConfirmPassword" class="text-danger"></span>
+ </div>
+ </div>
+ <div class="form-group">
+ <div class="col-md-offset-2 col-md-10">
+ <button type="submit" class="btn btn-default">Set password</button>
+ </div>
+ </div>
+</form>
+
+@section Scripts {
+ @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); }
+}
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Manage/VerifyPhoneNumber.cshtml
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Manage/VerifyPhoneNumber.cshtml b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Manage/VerifyPhoneNumber.cshtml
new file mode 100644
index 0000000..af7cd0b
--- /dev/null
+++ b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Manage/VerifyPhoneNumber.cshtml
@@ -0,0 +1,30 @@
+@model VerifyPhoneNumberViewModel
+@{
+ ViewData["Title"] = "Verify Phone Number";
+}
+
+<h2>@ViewData["Title"].</h2>
+
+<form asp-controller="Manage" asp-action="VerifyPhoneNumber" asp-route-returnurl="@ViewData["ReturnUrl"]" method="post" class="form-horizontal">
+ <input asp-for="PhoneNumber" type="hidden" />
+ <h4>Add a phone number.</h4>
+ <h5>@ViewData["Status"]</h5>
+ <hr />
+ <div asp-validation-summary="All" class="text-danger"></div>
+ <div class="form-group">
+ <label asp-for="Code" class="col-md-2 control-label"></label>
+ <div class="col-md-10">
+ <input asp-for="Code" class="form-control" />
+ <span asp-validation-for="Code" class="text-danger"></span>
+ </div>
+ </div>
+ <div class="form-group">
+ <div class="col-md-offset-2 col-md-10">
+ <button type="submit" class="btn btn-default">Submit</button>
+ </div>
+ </div>
+</form>
+
+@section Scripts {
+ @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); }
+}
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Shared/Error.cshtml
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Shared/Error.cshtml b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Shared/Error.cshtml
new file mode 100644
index 0000000..229c2de
--- /dev/null
+++ b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Shared/Error.cshtml
@@ -0,0 +1,14 @@
+@{
+ ViewData["Title"] = "Error";
+}
+
+<h1 class="text-danger">Error.</h1>
+<h2 class="text-danger">An error occurred while processing your request.</h2>
+
+<h3>Development Mode</h3>
+<p>
+ Swapping to <strong>Development</strong> environment will display more detailed information about the error that occurred.
+</p>
+<p>
+ <strong>Development environment should not be enabled in deployed applications</strong>, 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 <strong>ASPNETCORE_ENVIRONMENT</strong> environment variable to <strong>Development</strong>, and restarting the application.
+</p>
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Shared/_Layout.cshtml
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Shared/_Layout.cshtml b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Shared/_Layout.cshtml
new file mode 100644
index 0000000..56827ca
--- /dev/null
+++ b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Shared/_Layout.cshtml
@@ -0,0 +1,68 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+ <title>@ViewData["Title"] - WebApplication</title>
+
+ <environment names="Development">
+ <link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.css" />
+ <link rel="stylesheet" href="~/css/site.css" />
+ </environment>
+ <environment names="Staging,Production">
+ <link rel="stylesheet" href="https://ajax.aspnetcdn.com/ajax/bootstrap/3.3.6/css/bootstrap.min.css"
+ asp-fallback-href="~/lib/bootstrap/dist/css/bootstrap.min.css"
+ asp-fallback-test-class="sr-only" asp-fallback-test-property="position" asp-fallback-test-value="absolute" />
+ <link rel="stylesheet" href="~/css/site.min.css" asp-append-version="true" />
+ </environment>
+</head>
+<body>
+ <div class="navbar navbar-inverse navbar-fixed-top">
+ <div class="container">
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+ <span class="sr-only">Toggle navigation</span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ <a asp-controller="Home" asp-action="Index" class="navbar-brand">WebApplication</a>
+ </div>
+ <div class="navbar-collapse collapse">
+ <ul class="nav navbar-nav">
+ <li><a asp-controller="Home" asp-action="Index">Home</a></li>
+ <li><a asp-controller="Home" asp-action="About">About</a></li>
+ <li><a asp-controller="Home" asp-action="Contact">Contact</a></li>
+ </ul>
+ @await Html.PartialAsync("_LoginPartial")
+ </div>
+ </div>
+ </div>
+ <div class="container body-content">
+ @RenderBody()
+ <hr />
+ <footer>
+ <p>© 2016 - WebApplication</p>
+ </footer>
+ </div>
+
+ <environment names="Development">
+ <script src="~/lib/jquery/dist/jquery.js"></script>
+ <script src="~/lib/bootstrap/dist/js/bootstrap.js"></script>
+ <script src="~/js/site.js" asp-append-version="true"></script>
+ </environment>
+ <environment names="Staging,Production">
+ <script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-2.2.3.min.js"
+ asp-fallback-src="~/lib/jquery/dist/jquery.min.js"
+ asp-fallback-test="window.jQuery">
+ </script>
+ <script src="https://ajax.aspnetcdn.com/ajax/bootstrap/3.3.6/bootstrap.min.js"
+ asp-fallback-src="~/lib/bootstrap/dist/js/bootstrap.min.js"
+ asp-fallback-test="window.jQuery && window.jQuery.fn && window.jQuery.fn.modal">
+ </script>
+ <script src="~/js/site.min.js" asp-append-version="true"></script>
+ </environment>
+
+ @RenderSection("scripts", required: false)
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Shared/_LoginPartial.cshtml
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Shared/_LoginPartial.cshtml b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Shared/_LoginPartial.cshtml
new file mode 100644
index 0000000..f50d5e8
--- /dev/null
+++ b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Shared/_LoginPartial.cshtml
@@ -0,0 +1,26 @@
+@using Microsoft.AspNetCore.Identity
+@using WebApplication.Models
+
+@inject SignInManager<ApplicationUser> SignInManager
+@inject UserManager<ApplicationUser> UserManager
+
+@if (SignInManager.IsSignedIn(User))
+{
+ <form asp-controller="Account" asp-action="LogOff" method="post" id="logoutForm" class="navbar-right">
+ <ul class="nav navbar-nav navbar-right">
+ <li>
+ <a asp-controller="Manage" asp-action="Index" title="Manage">Hello @UserManager.GetUserName(User)!</a>
+ </li>
+ <li>
+ <button type="submit" class="btn btn-link navbar-btn navbar-link">Log off</button>
+ </li>
+ </ul>
+ </form>
+}
+else
+{
+ <ul class="nav navbar-nav navbar-right">
+ <li><a asp-controller="Account" asp-action="Register">Register</a></li>
+ <li><a asp-controller="Account" asp-action="Login">Log in</a></li>
+ </ul>
+}
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Shared/_ValidationScriptsPartial.cshtml
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Shared/_ValidationScriptsPartial.cshtml b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Shared/_ValidationScriptsPartial.cshtml
new file mode 100644
index 0000000..289b220
--- /dev/null
+++ b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/Shared/_ValidationScriptsPartial.cshtml
@@ -0,0 +1,14 @@
+<environment names="Development">
+ <script src="~/lib/jquery-validation/dist/jquery.validate.js"></script>
+ <script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js"></script>
+</environment>
+<environment names="Staging,Production">
+ <script src="https://ajax.aspnetcdn.com/ajax/jquery.validate/1.15.0/jquery.validate.min.js"
+ asp-fallback-src="~/lib/jquery-validation/dist/jquery.validate.min.js"
+ asp-fallback-test="window.jQuery && window.jQuery.validator">
+ </script>
+ <script src="https://ajax.aspnetcdn.com/ajax/jquery.validation.unobtrusive/3.2.6/jquery.validate.unobtrusive.min.js"
+ asp-fallback-src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js"
+ asp-fallback-test="window.jQuery && window.jQuery.validator && window.jQuery.validator.unobtrusive">
+ </script>
+</environment>
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/_ViewImports.cshtml
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/_ViewImports.cshtml b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/_ViewImports.cshtml
new file mode 100644
index 0000000..dcca16c
--- /dev/null
+++ b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/_ViewImports.cshtml
@@ -0,0 +1,6 @@
+@using WebApplication
+@using WebApplication.Models
+@using WebApplication.Models.AccountViewModels
+@using WebApplication.Models.ManageViewModels
+@using Microsoft.AspNetCore.Identity
+@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/_ViewStart.cshtml
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/_ViewStart.cshtml b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/_ViewStart.cshtml
new file mode 100644
index 0000000..820a2f6
--- /dev/null
+++ b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/Views/_ViewStart.cshtml
@@ -0,0 +1,3 @@
+@{
+ Layout = "_Layout";
+}
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/appsettings.json
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/appsettings.json b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/appsettings.json
new file mode 100644
index 0000000..53b17ae
--- /dev/null
+++ b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/appsettings.json
@@ -0,0 +1,13 @@
+{
+ "ConnectionStrings": {
+ "DefaultConnection": "Data Source=WebApplication.db"
+ },
+ "Logging": {
+ "IncludeScopes": false,
+ "LogLevel": {
+ "Default": "Debug",
+ "System": "Information",
+ "Microsoft": "Information"
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/bower.json
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/bower.json b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/bower.json
new file mode 100644
index 0000000..3891fce
--- /dev/null
+++ b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/bower.json
@@ -0,0 +1,10 @@
+{
+ "name": "webapplication",
+ "private": true,
+ "dependencies": {
+ "bootstrap": "3.3.6",
+ "jquery": "2.2.3",
+ "jquery-validation": "1.15.0",
+ "jquery-validation-unobtrusive": "3.2.6"
+ }
+}
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/gulpfile.js
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/gulpfile.js b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/gulpfile.js
new file mode 100644
index 0000000..faf2955
--- /dev/null
+++ b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/gulpfile.js
@@ -0,0 +1,45 @@
+/// <binding Clean='clean' />
+"use strict";
+
+var gulp = require("gulp"),
+ rimraf = require("rimraf"),
+ concat = require("gulp-concat"),
+ cssmin = require("gulp-cssmin"),
+ uglify = require("gulp-uglify");
+
+var webroot = "./wwwroot/";
+
+var paths = {
+ js: webroot + "js/**/*.js",
+ minJs: webroot + "js/**/*.min.js",
+ css: webroot + "css/**/*.css",
+ minCss: webroot + "css/**/*.min.css",
+ concatJsDest: webroot + "js/site.min.js",
+ concatCssDest: webroot + "css/site.min.css"
+};
+
+gulp.task("clean:js", function (cb) {
+ rimraf(paths.concatJsDest, cb);
+});
+
+gulp.task("clean:css", function (cb) {
+ rimraf(paths.concatCssDest, cb);
+});
+
+gulp.task("clean", ["clean:js", "clean:css"]);
+
+gulp.task("min:js", function () {
+ return gulp.src([paths.js, "!" + paths.minJs], { base: "." })
+ .pipe(concat(paths.concatJsDest))
+ .pipe(uglify())
+ .pipe(gulp.dest("."));
+});
+
+gulp.task("min:css", function () {
+ return gulp.src([paths.css, "!" + paths.minCss])
+ .pipe(concat(paths.concatCssDest))
+ .pipe(cssmin())
+ .pipe(gulp.dest("."));
+});
+
+gulp.task("min", ["min:js", "min:css"]);
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/package.json
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/package.json b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/package.json
new file mode 100644
index 0000000..4bb6c88
--- /dev/null
+++ b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/package.json
@@ -0,0 +1,12 @@
+{
+ "name": "webapplication",
+ "version": "0.0.0",
+ "private": true,
+ "devDependencies": {
+ "gulp": "3.9.1",
+ "gulp-concat": "2.6.0",
+ "gulp-cssmin": "0.1.7",
+ "gulp-uglify": "1.5.3",
+ "rimraf": "2.5.2"
+ }
+}
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/project.json
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/project.json b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/project.json
new file mode 100644
index 0000000..97b3f06
--- /dev/null
+++ b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/project.json
@@ -0,0 +1,108 @@
+{
+ "userSecretsId": "aspnet-WebApplication-0799fe3e-6eaf-4c5f-b40e-7c6bfd5dfa9a",
+
+ "dependencies": {
+ "Microsoft.NETCore.App": {
+ "version": "1.0.0",
+ "type": "platform"
+ },
+ "Microsoft.AspNetCore.Authentication.Cookies": "1.0.0",
+ "Microsoft.AspNetCore.Diagnostics": "1.0.0",
+ "Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore": "1.0.0",
+ "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0",
+ "Microsoft.AspNetCore.Mvc": "1.0.0",
+ "Microsoft.AspNetCore.Razor.Tools": {
+ "version": "1.0.0-preview2-final",
+ "type": "build"
+ },
+ "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
+ "Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
+ "Microsoft.AspNetCore.StaticFiles": "1.0.0",
+ "Microsoft.EntityFrameworkCore.Sqlite": "1.0.0",
+ "Microsoft.EntityFrameworkCore.Tools": {
+ "version": "1.0.0-preview2-final",
+ "type": "build"
+ },
+ "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
+ "Microsoft.Extensions.Configuration.Json": "1.0.0",
+ "Microsoft.Extensions.Configuration.UserSecrets": "1.0.0",
+ "Microsoft.Extensions.Logging": "1.0.0",
+ "Microsoft.Extensions.Logging.Console": "1.0.0",
+ "Microsoft.Extensions.Logging.Debug": "1.0.0",
+ "log4net.Extensions.Logging": { "target": "project" },
+ "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0",
+ "Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
+ "version": "1.0.0-preview2-final",
+ "type": "build"
+ },
+ "Microsoft.VisualStudio.Web.CodeGenerators.Mvc": {
+ "version": "1.0.0-preview2-final",
+ "type": "build"
+ }
+ },
+
+ "tools": {
+ "Microsoft.AspNetCore.Razor.Tools": {
+ "version": "1.0.0-preview2-final",
+ "imports": "portable-net45+win8+dnxcore50"
+ },
+ "Microsoft.AspNetCore.Server.IISIntegration.Tools": {
+ "version": "1.0.0-preview2-final",
+ "imports": "portable-net45+win8+dnxcore50"
+ },
+ "Microsoft.EntityFrameworkCore.Tools": {
+ "version": "1.0.0-preview2-final",
+ "imports": [
+ "portable-net45+win8+dnxcore50",
+ "portable-net45+win8"
+ ]
+ },
+ "Microsoft.Extensions.SecretManager.Tools": {
+ "version": "1.0.0-preview2-final",
+ "imports": "portable-net45+win8+dnxcore50"
+ },
+ "Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
+ "version": "1.0.0-preview2-final",
+ "imports": [
+ "portable-net45+win8+dnxcore50",
+ "portable-net45+win8"
+ ]
+ }
+ },
+
+ "frameworks": {
+ "netcoreapp1.0": {
+ "imports": "portable-net45+win8"
+ }
+ },
+
+ "buildOptions": {
+ "debugType": "portable",
+ "emitEntryPoint": true,
+ "preserveCompilationContext": true
+ },
+
+ "runtimeOptions": {
+ "configProperties": {
+ "System.GC.Server": true
+ }
+ },
+
+ "publishOptions": {
+ "include": [
+ "wwwroot",
+ "Views",
+ "appsettings.json",
+ "web.config"
+ ]
+ },
+
+ "scripts": {
+ "prepublish": [ "npm install", "bower install", "gulp clean", "gulp min" ],
+ "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
+ },
+
+ "tooling": {
+ "defaultNamespace": "WebApplication"
+ }
+}
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/web.config
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/web.config b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/web.config
new file mode 100644
index 0000000..a8d6672
--- /dev/null
+++ b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/web.config
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<configuration>
+
+ <!--
+ Configure your application settings in appsettings.json. Learn more at https://go.microsoft.com/fwlink/?LinkId=786380
+ -->
+
+ <system.webServer>
+ <handlers>
+ <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified"/>
+ </handlers>
+ <aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/>
+ </system.webServer>
+</configuration>
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/wwwroot/css/site.css
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/wwwroot/css/site.css b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/wwwroot/css/site.css
new file mode 100644
index 0000000..6baa84d
--- /dev/null
+++ b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/wwwroot/css/site.css
@@ -0,0 +1,44 @@
+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;
+}
+
+/* Set widths on the form inputs since otherwise they're 100% wide */
+input,
+select,
+textarea {
+ max-width: 280px;
+}
+
+/* Carousel */
+.carousel-caption p {
+ font-size: 20px;
+ line-height: 1.4;
+}
+
+/* buttons and links extension to use brackets: [ click me ] */
+.btn-bracketed::before {
+ display:inline-block;
+ content: "[";
+ padding-right: 0.5em;
+}
+.btn-bracketed::after {
+ display:inline-block;
+ content: "]";
+ padding-left: 0.5em;
+}
+
+/* Hide/rearrange for smaller screens */
+@media screen and (max-width: 767px) {
+ /* Hide captions */
+ .carousel-caption {
+ display: none
+ }
+}
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/wwwroot/css/site.min.css
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/wwwroot/css/site.min.css b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/wwwroot/css/site.min.css
new file mode 100644
index 0000000..c8f600a
--- /dev/null
+++ b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/wwwroot/css/site.min.css
@@ -0,0 +1 @@
+body{padding-top:50px;padding-bottom:20px}.body-content{padding-left:15px;padding-right:15px}input,select,textarea{max-width:280px}.carousel-caption p{font-size:20px;line-height:1.4}.btn-bracketed::before{display:inline-block;content:"[";padding-right:.5em}.btn-bracketed::after{display:inline-block;content:"]";padding-left:.5em}@media screen and (max-width:767px){.carousel-caption{display:none}}
http://git-wip-us.apache.org/repos/asf/logging-log4net/blob/5e667994/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/wwwroot/favicon.ico
----------------------------------------------------------------------
diff --git a/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/wwwroot/favicon.ico b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/wwwroot/favicon.ico
new file mode 100644
index 0000000..a3a7999
Binary files /dev/null and b/extensions/log4net.Extensions.Logging/log4net.Extensions.Logging.Test/wwwroot/favicon.ico differ