From 5f2ef996c1b24f7d683e5f2d23fe84c6539a1447 Mon Sep 17 00:00:00 2001 From: Michael Rich Date: Mon, 4 Feb 2019 02:19:44 -0600 Subject: [PATCH] Created Project added Models and relationships and migrated to sqlserver --- .../Context/VolunteerSiteDbContext.cs | 19 ++ .../20190204080041_initial.Designer.cs | 168 ++++++++++++++++++ .../Migrations/20190204080041_initial.cs | 153 ++++++++++++++++ .../VolunteerSiteDbContextModelSnapshot.cs | 166 +++++++++++++++++ .../VolunteerSite.Data.csproj | 20 +++ .../Models/ErrorViewModel.cs | 11 ++ .../Models/GroupMember.cs | 19 ++ .../VolunteerSite.Domain/Models/JobListing.cs | 22 +++ .../Models/Organization.cs | 20 +++ .../VolunteerSite.Domain/Models/Volunteer.cs | 19 ++ .../Models/VolunteerGroup.cs | 17 ++ .../VolunteerSite.Domain.csproj | 16 ++ .../Controllers/HomeController.cs | 29 +++ .../Models/ErrorViewModel.cs | 11 ++ .../VolunteerSite.WebUI/Program.cs | 24 +++ .../Properties/launchSettings.json | 27 +++ .../VolunteerSite.WebUI/Startup.cs | 69 +++++++ .../Views/Home/Index.cshtml | 8 + .../Views/Home/Privacy.cshtml | 6 + .../Views/Shared/Error.cshtml | 25 +++ .../Views/Shared/_CookieConsentPartial.cshtml | 25 +++ .../Views/Shared/_Layout.cshtml | 77 ++++++++ .../Shared/_ValidationScriptsPartial.cshtml | 18 ++ .../Views/_ViewImports.cshtml | 3 + .../Views/_ViewStart.cshtml | 3 + .../VolunteerSite.WebUI.csproj | 20 +++ .../appsettings.Development.json | 9 + .../VolunteerSite.WebUI/appsettings.json | 8 + .../VolunteerSite.WebUI/wwwroot/css/site.css | 56 ++++++ .../VolunteerSite.WebUI/wwwroot/favicon.ico | Bin 0 -> 32038 bytes .../VolunteerSite.WebUI/wwwroot/js/site.js | 4 + .../Controllers/HomeController.cs | 29 +++ .../Models/ErrorViewModel.cs | 11 ++ .../VolunteerSite.WebUI2/Program.cs | 24 +++ .../Properties/launchSettings.json | 27 +++ .../VolunteerSite.WebUI2/Startup.cs | 64 +++++++ .../Views/Home/Index.cshtml | 8 + .../Views/Home/Privacy.cshtml | 6 + .../Views/Shared/Error.cshtml | 25 +++ .../Views/Shared/_CookieConsentPartial.cshtml | 25 +++ .../Views/Shared/_Layout.cshtml | 77 ++++++++ .../Shared/_ValidationScriptsPartial.cshtml | 18 ++ .../Views/_ViewImports.cshtml | 3 + .../Views/_ViewStart.cshtml | 3 + .../VolunteerSite.WebUI2.csproj | 14 ++ .../appsettings.Development.json | 9 + .../VolunteerSite.WebUI2/appsettings.json | 8 + .../VolunteerSite.WebUI2/wwwroot/css/site.css | 56 ++++++ .../VolunteerSite.WebUI2/wwwroot/favicon.ico | Bin 0 -> 32038 bytes .../VolunteerSite.WebUI2/wwwroot/js/site.js | 4 + VolunterSite.WebUI/VolunterSite.WebUI.sln | 37 ++++ .../Controllers/HomeController.cs | 43 +++++ .../Models/ErrorViewModel.cs | 11 ++ .../VolunterSite.WebUI/Program.cs | 24 +++ .../Properties/launchSettings.json | 27 +++ .../VolunterSite.WebUI/Startup.cs | 67 +++++++ .../Views/Home/About.cshtml | 7 + .../Views/Home/Contact.cshtml | 17 ++ .../Views/Home/Index.cshtml | 94 ++++++++++ .../Views/Home/Privacy.cshtml | 6 + .../Views/Shared/Error.cshtml | 22 +++ .../Views/Shared/_CookieConsentPartial.cshtml | 41 +++++ .../Views/Shared/_Layout.cshtml | 74 ++++++++ .../Shared/_ValidationScriptsPartial.cshtml | 18 ++ .../Views/_ViewImports.cshtml | 3 + .../Views/_ViewStart.cshtml | 3 + .../VolunterSite.WebUI.csproj | 12 ++ .../appsettings.Development.json | 9 + .../VolunterSite.WebUI/appsettings.json | 8 + .../VolunterSite.WebUI/wwwroot/css/site.css | 37 ++++ .../wwwroot/css/site.min.css | 1 + .../VolunterSite.WebUI/wwwroot/favicon.ico | Bin 0 -> 32038 bytes .../wwwroot/images/banner1.svg | 1 + .../wwwroot/images/banner2.svg | 1 + .../wwwroot/images/banner3.svg | 1 + .../VolunterSite.WebUI/wwwroot/js/site.js | 4 + .../VolunterSite.WebUI/wwwroot/js/site.min.js | 0 77 files changed, 2051 insertions(+) create mode 100644 VolunterSite.WebUI/VolunteerSite.Data/Context/VolunteerSiteDbContext.cs create mode 100644 VolunterSite.WebUI/VolunteerSite.Data/Migrations/20190204080041_initial.Designer.cs create mode 100644 VolunterSite.WebUI/VolunteerSite.Data/Migrations/20190204080041_initial.cs create mode 100644 VolunterSite.WebUI/VolunteerSite.Data/Migrations/VolunteerSiteDbContextModelSnapshot.cs create mode 100644 VolunterSite.WebUI/VolunteerSite.Data/VolunteerSite.Data.csproj create mode 100644 VolunterSite.WebUI/VolunteerSite.Domain/Models/ErrorViewModel.cs create mode 100644 VolunterSite.WebUI/VolunteerSite.Domain/Models/GroupMember.cs create mode 100644 VolunterSite.WebUI/VolunteerSite.Domain/Models/JobListing.cs create mode 100644 VolunterSite.WebUI/VolunteerSite.Domain/Models/Organization.cs create mode 100644 VolunterSite.WebUI/VolunteerSite.Domain/Models/Volunteer.cs create mode 100644 VolunterSite.WebUI/VolunteerSite.Domain/Models/VolunteerGroup.cs create mode 100644 VolunterSite.WebUI/VolunteerSite.Domain/VolunteerSite.Domain.csproj create mode 100644 VolunterSite.WebUI/VolunteerSite.WebUI/Controllers/HomeController.cs create mode 100644 VolunterSite.WebUI/VolunteerSite.WebUI/Models/ErrorViewModel.cs create mode 100644 VolunterSite.WebUI/VolunteerSite.WebUI/Program.cs create mode 100644 VolunterSite.WebUI/VolunteerSite.WebUI/Properties/launchSettings.json create mode 100644 VolunterSite.WebUI/VolunteerSite.WebUI/Startup.cs create mode 100644 VolunterSite.WebUI/VolunteerSite.WebUI/Views/Home/Index.cshtml create mode 100644 VolunterSite.WebUI/VolunteerSite.WebUI/Views/Home/Privacy.cshtml create mode 100644 VolunterSite.WebUI/VolunteerSite.WebUI/Views/Shared/Error.cshtml create mode 100644 VolunterSite.WebUI/VolunteerSite.WebUI/Views/Shared/_CookieConsentPartial.cshtml create mode 100644 VolunterSite.WebUI/VolunteerSite.WebUI/Views/Shared/_Layout.cshtml create mode 100644 VolunterSite.WebUI/VolunteerSite.WebUI/Views/Shared/_ValidationScriptsPartial.cshtml create mode 100644 VolunterSite.WebUI/VolunteerSite.WebUI/Views/_ViewImports.cshtml create mode 100644 VolunterSite.WebUI/VolunteerSite.WebUI/Views/_ViewStart.cshtml create mode 100644 VolunterSite.WebUI/VolunteerSite.WebUI/VolunteerSite.WebUI.csproj create mode 100644 VolunterSite.WebUI/VolunteerSite.WebUI/appsettings.Development.json create mode 100644 VolunterSite.WebUI/VolunteerSite.WebUI/appsettings.json create mode 100644 VolunterSite.WebUI/VolunteerSite.WebUI/wwwroot/css/site.css create mode 100644 VolunterSite.WebUI/VolunteerSite.WebUI/wwwroot/favicon.ico create mode 100644 VolunterSite.WebUI/VolunteerSite.WebUI/wwwroot/js/site.js create mode 100644 VolunterSite.WebUI/VolunteerSite.WebUI2/Controllers/HomeController.cs create mode 100644 VolunterSite.WebUI/VolunteerSite.WebUI2/Models/ErrorViewModel.cs create mode 100644 VolunterSite.WebUI/VolunteerSite.WebUI2/Program.cs create mode 100644 VolunterSite.WebUI/VolunteerSite.WebUI2/Properties/launchSettings.json create mode 100644 VolunterSite.WebUI/VolunteerSite.WebUI2/Startup.cs create mode 100644 VolunterSite.WebUI/VolunteerSite.WebUI2/Views/Home/Index.cshtml create mode 100644 VolunterSite.WebUI/VolunteerSite.WebUI2/Views/Home/Privacy.cshtml create mode 100644 VolunterSite.WebUI/VolunteerSite.WebUI2/Views/Shared/Error.cshtml create mode 100644 VolunterSite.WebUI/VolunteerSite.WebUI2/Views/Shared/_CookieConsentPartial.cshtml create mode 100644 VolunterSite.WebUI/VolunteerSite.WebUI2/Views/Shared/_Layout.cshtml create mode 100644 VolunterSite.WebUI/VolunteerSite.WebUI2/Views/Shared/_ValidationScriptsPartial.cshtml create mode 100644 VolunterSite.WebUI/VolunteerSite.WebUI2/Views/_ViewImports.cshtml create mode 100644 VolunterSite.WebUI/VolunteerSite.WebUI2/Views/_ViewStart.cshtml create mode 100644 VolunterSite.WebUI/VolunteerSite.WebUI2/VolunteerSite.WebUI2.csproj create mode 100644 VolunterSite.WebUI/VolunteerSite.WebUI2/appsettings.Development.json create mode 100644 VolunterSite.WebUI/VolunteerSite.WebUI2/appsettings.json create mode 100644 VolunterSite.WebUI/VolunteerSite.WebUI2/wwwroot/css/site.css create mode 100644 VolunterSite.WebUI/VolunteerSite.WebUI2/wwwroot/favicon.ico create mode 100644 VolunterSite.WebUI/VolunteerSite.WebUI2/wwwroot/js/site.js create mode 100644 VolunterSite.WebUI/VolunterSite.WebUI.sln create mode 100644 VolunterSite.WebUI/VolunterSite.WebUI/Controllers/HomeController.cs create mode 100644 VolunterSite.WebUI/VolunterSite.WebUI/Models/ErrorViewModel.cs create mode 100644 VolunterSite.WebUI/VolunterSite.WebUI/Program.cs create mode 100644 VolunterSite.WebUI/VolunterSite.WebUI/Properties/launchSettings.json create mode 100644 VolunterSite.WebUI/VolunterSite.WebUI/Startup.cs create mode 100644 VolunterSite.WebUI/VolunterSite.WebUI/Views/Home/About.cshtml create mode 100644 VolunterSite.WebUI/VolunterSite.WebUI/Views/Home/Contact.cshtml create mode 100644 VolunterSite.WebUI/VolunterSite.WebUI/Views/Home/Index.cshtml create mode 100644 VolunterSite.WebUI/VolunterSite.WebUI/Views/Home/Privacy.cshtml create mode 100644 VolunterSite.WebUI/VolunterSite.WebUI/Views/Shared/Error.cshtml create mode 100644 VolunterSite.WebUI/VolunterSite.WebUI/Views/Shared/_CookieConsentPartial.cshtml create mode 100644 VolunterSite.WebUI/VolunterSite.WebUI/Views/Shared/_Layout.cshtml create mode 100644 VolunterSite.WebUI/VolunterSite.WebUI/Views/Shared/_ValidationScriptsPartial.cshtml create mode 100644 VolunterSite.WebUI/VolunterSite.WebUI/Views/_ViewImports.cshtml create mode 100644 VolunterSite.WebUI/VolunterSite.WebUI/Views/_ViewStart.cshtml create mode 100644 VolunterSite.WebUI/VolunterSite.WebUI/VolunterSite.WebUI.csproj create mode 100644 VolunterSite.WebUI/VolunterSite.WebUI/appsettings.Development.json create mode 100644 VolunterSite.WebUI/VolunterSite.WebUI/appsettings.json create mode 100644 VolunterSite.WebUI/VolunterSite.WebUI/wwwroot/css/site.css create mode 100644 VolunterSite.WebUI/VolunterSite.WebUI/wwwroot/css/site.min.css create mode 100644 VolunterSite.WebUI/VolunterSite.WebUI/wwwroot/favicon.ico create mode 100644 VolunterSite.WebUI/VolunterSite.WebUI/wwwroot/images/banner1.svg create mode 100644 VolunterSite.WebUI/VolunterSite.WebUI/wwwroot/images/banner2.svg create mode 100644 VolunterSite.WebUI/VolunterSite.WebUI/wwwroot/images/banner3.svg create mode 100644 VolunterSite.WebUI/VolunterSite.WebUI/wwwroot/js/site.js create mode 100644 VolunterSite.WebUI/VolunterSite.WebUI/wwwroot/js/site.min.js diff --git a/VolunterSite.WebUI/VolunteerSite.Data/Context/VolunteerSiteDbContext.cs b/VolunterSite.WebUI/VolunteerSite.Data/Context/VolunteerSiteDbContext.cs new file mode 100644 index 0000000..051f081 --- /dev/null +++ b/VolunterSite.WebUI/VolunteerSite.Data/Context/VolunteerSiteDbContext.cs @@ -0,0 +1,19 @@ +using Microsoft.EntityFrameworkCore; +using VolunteerSite.Domain.Models; +using System; +using System.Collections.Generic; +using System.Text; + +namespace VolunteerSite.Data.Context +{ + public class VolunteerSiteDbContext : DbContext + { + public VolunteerSiteDbContext(DbContextOptions options): base(options) { } + + public DbSet Volunteers { get; set; } + public DbSet VolunteerGroups { get; set; } + public DbSet Organizations { get; set; } + public DbSet JobListings { get; set; } + public DbSet GroupMembers { get; set; } + } +} diff --git a/VolunterSite.WebUI/VolunteerSite.Data/Migrations/20190204080041_initial.Designer.cs b/VolunterSite.WebUI/VolunteerSite.Data/Migrations/20190204080041_initial.Designer.cs new file mode 100644 index 0000000..d5218b7 --- /dev/null +++ b/VolunterSite.WebUI/VolunteerSite.Data/Migrations/20190204080041_initial.Designer.cs @@ -0,0 +1,168 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using VolunteerSite.Data.Context; + +namespace VolunteerSite.Data.Migrations +{ + [DbContext(typeof(VolunteerSiteDbContext))] + [Migration("20190204080041_initial")] + partial class initial + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "2.2.1-servicing-10028") + .HasAnnotation("Relational:MaxIdentifierLength", 128) + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + modelBuilder.Entity("VolunteerSite.Domain.Models.GroupMember", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("Email"); + + b.Property("FirstName"); + + b.Property("LastName"); + + b.Property("PhoneNumber"); + + b.Property("TotalHours"); + + b.Property("VolunteerGroupId"); + + b.Property("VolunteerGroupId1"); + + b.HasKey("Id"); + + b.HasIndex("VolunteerGroupId1"); + + b.ToTable("GroupMembers"); + }); + + modelBuilder.Entity("VolunteerSite.Domain.Models.JobListing", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("Address"); + + b.Property("City"); + + b.Property("Date"); + + b.Property("Description"); + + b.Property("OrganizationId"); + + b.Property("OrganizationId1"); + + b.Property("PositionsAvailable"); + + b.Property("State"); + + b.Property("TypeOfJob"); + + b.HasKey("Id"); + + b.HasIndex("OrganizationId1"); + + b.ToTable("JobListings"); + }); + + modelBuilder.Entity("VolunteerSite.Domain.Models.Organization", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("Address"); + + b.Property("City"); + + b.Property("CompanyName"); + + b.Property("Email"); + + b.Property("PhoneNumber"); + + b.Property("State"); + + b.HasKey("Id"); + + b.ToTable("Organizations"); + }); + + modelBuilder.Entity("VolunteerSite.Domain.Models.Volunteer", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("Email"); + + b.Property("FirstName"); + + b.Property("LastName"); + + b.Property("PhoneNumber"); + + b.Property("SkillsAndExperience"); + + b.HasKey("Id"); + + b.ToTable("Volunteers"); + }); + + modelBuilder.Entity("VolunteerSite.Domain.Models.VolunteerGroup", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("GroupName"); + + b.Property("GroupOwnerId"); + + b.Property("GroupOwnerId1"); + + b.HasKey("Id"); + + b.HasIndex("GroupOwnerId1"); + + b.ToTable("VolunteerGroups"); + }); + + modelBuilder.Entity("VolunteerSite.Domain.Models.GroupMember", b => + { + b.HasOne("VolunteerSite.Domain.Models.VolunteerGroup", "VolunteerGroup") + .WithMany("GroupMembers") + .HasForeignKey("VolunteerGroupId1"); + }); + + modelBuilder.Entity("VolunteerSite.Domain.Models.JobListing", b => + { + b.HasOne("VolunteerSite.Domain.Models.Organization", "Organization") + .WithMany("JobListings") + .HasForeignKey("OrganizationId1"); + }); + + modelBuilder.Entity("VolunteerSite.Domain.Models.VolunteerGroup", b => + { + b.HasOne("VolunteerSite.Domain.Models.Volunteer", "GroupOwner") + .WithMany("VolunteerGroups") + .HasForeignKey("GroupOwnerId1"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/VolunterSite.WebUI/VolunteerSite.Data/Migrations/20190204080041_initial.cs b/VolunterSite.WebUI/VolunteerSite.Data/Migrations/20190204080041_initial.cs new file mode 100644 index 0000000..3bee4d1 --- /dev/null +++ b/VolunterSite.WebUI/VolunteerSite.Data/Migrations/20190204080041_initial.cs @@ -0,0 +1,153 @@ +using System; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; + +namespace VolunteerSite.Data.Migrations +{ + public partial class initial : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "Organizations", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), + CompanyName = table.Column(nullable: true), + Address = table.Column(nullable: true), + City = table.Column(nullable: true), + State = table.Column(nullable: true), + Email = table.Column(nullable: true), + PhoneNumber = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Organizations", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "Volunteers", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), + FirstName = table.Column(nullable: true), + LastName = table.Column(nullable: true), + Email = table.Column(nullable: true), + PhoneNumber = table.Column(nullable: true), + SkillsAndExperience = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_Volunteers", x => x.Id); + }); + + migrationBuilder.CreateTable( + name: "JobListings", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), + Address = table.Column(nullable: true), + City = table.Column(nullable: true), + State = table.Column(nullable: true), + PositionsAvailable = table.Column(nullable: false), + Description = table.Column(nullable: true), + TypeOfJob = table.Column(nullable: true), + Date = table.Column(nullable: false), + OrganizationId = table.Column(nullable: true), + OrganizationId1 = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_JobListings", x => x.Id); + table.ForeignKey( + name: "FK_JobListings_Organizations_OrganizationId1", + column: x => x.OrganizationId1, + principalTable: "Organizations", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + }); + + migrationBuilder.CreateTable( + name: "VolunteerGroups", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), + GroupName = table.Column(nullable: true), + GroupOwnerId = table.Column(nullable: true), + GroupOwnerId1 = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_VolunteerGroups", x => x.Id); + table.ForeignKey( + name: "FK_VolunteerGroups_Volunteers_GroupOwnerId1", + column: x => x.GroupOwnerId1, + principalTable: "Volunteers", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + }); + + migrationBuilder.CreateTable( + name: "GroupMembers", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn), + FirstName = table.Column(nullable: true), + LastName = table.Column(nullable: true), + Email = table.Column(nullable: true), + PhoneNumber = table.Column(nullable: true), + TotalHours = table.Column(nullable: false), + VolunteerGroupId = table.Column(nullable: true), + VolunteerGroupId1 = table.Column(nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_GroupMembers", x => x.Id); + table.ForeignKey( + name: "FK_GroupMembers_VolunteerGroups_VolunteerGroupId1", + column: x => x.VolunteerGroupId1, + principalTable: "VolunteerGroups", + principalColumn: "Id", + onDelete: ReferentialAction.Restrict); + }); + + migrationBuilder.CreateIndex( + name: "IX_GroupMembers_VolunteerGroupId1", + table: "GroupMembers", + column: "VolunteerGroupId1"); + + migrationBuilder.CreateIndex( + name: "IX_JobListings_OrganizationId1", + table: "JobListings", + column: "OrganizationId1"); + + migrationBuilder.CreateIndex( + name: "IX_VolunteerGroups_GroupOwnerId1", + table: "VolunteerGroups", + column: "GroupOwnerId1"); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "GroupMembers"); + + migrationBuilder.DropTable( + name: "JobListings"); + + migrationBuilder.DropTable( + name: "VolunteerGroups"); + + migrationBuilder.DropTable( + name: "Organizations"); + + migrationBuilder.DropTable( + name: "Volunteers"); + } + } +} diff --git a/VolunterSite.WebUI/VolunteerSite.Data/Migrations/VolunteerSiteDbContextModelSnapshot.cs b/VolunterSite.WebUI/VolunteerSite.Data/Migrations/VolunteerSiteDbContextModelSnapshot.cs new file mode 100644 index 0000000..504fb09 --- /dev/null +++ b/VolunterSite.WebUI/VolunteerSite.Data/Migrations/VolunteerSiteDbContextModelSnapshot.cs @@ -0,0 +1,166 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using VolunteerSite.Data.Context; + +namespace VolunteerSite.Data.Migrations +{ + [DbContext(typeof(VolunteerSiteDbContext))] + partial class VolunteerSiteDbContextModelSnapshot : ModelSnapshot + { + protected override void BuildModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "2.2.1-servicing-10028") + .HasAnnotation("Relational:MaxIdentifierLength", 128) + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + modelBuilder.Entity("VolunteerSite.Domain.Models.GroupMember", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("Email"); + + b.Property("FirstName"); + + b.Property("LastName"); + + b.Property("PhoneNumber"); + + b.Property("TotalHours"); + + b.Property("VolunteerGroupId"); + + b.Property("VolunteerGroupId1"); + + b.HasKey("Id"); + + b.HasIndex("VolunteerGroupId1"); + + b.ToTable("GroupMembers"); + }); + + modelBuilder.Entity("VolunteerSite.Domain.Models.JobListing", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("Address"); + + b.Property("City"); + + b.Property("Date"); + + b.Property("Description"); + + b.Property("OrganizationId"); + + b.Property("OrganizationId1"); + + b.Property("PositionsAvailable"); + + b.Property("State"); + + b.Property("TypeOfJob"); + + b.HasKey("Id"); + + b.HasIndex("OrganizationId1"); + + b.ToTable("JobListings"); + }); + + modelBuilder.Entity("VolunteerSite.Domain.Models.Organization", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("Address"); + + b.Property("City"); + + b.Property("CompanyName"); + + b.Property("Email"); + + b.Property("PhoneNumber"); + + b.Property("State"); + + b.HasKey("Id"); + + b.ToTable("Organizations"); + }); + + modelBuilder.Entity("VolunteerSite.Domain.Models.Volunteer", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("Email"); + + b.Property("FirstName"); + + b.Property("LastName"); + + b.Property("PhoneNumber"); + + b.Property("SkillsAndExperience"); + + b.HasKey("Id"); + + b.ToTable("Volunteers"); + }); + + modelBuilder.Entity("VolunteerSite.Domain.Models.VolunteerGroup", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); + + b.Property("GroupName"); + + b.Property("GroupOwnerId"); + + b.Property("GroupOwnerId1"); + + b.HasKey("Id"); + + b.HasIndex("GroupOwnerId1"); + + b.ToTable("VolunteerGroups"); + }); + + modelBuilder.Entity("VolunteerSite.Domain.Models.GroupMember", b => + { + b.HasOne("VolunteerSite.Domain.Models.VolunteerGroup", "VolunteerGroup") + .WithMany("GroupMembers") + .HasForeignKey("VolunteerGroupId1"); + }); + + modelBuilder.Entity("VolunteerSite.Domain.Models.JobListing", b => + { + b.HasOne("VolunteerSite.Domain.Models.Organization", "Organization") + .WithMany("JobListings") + .HasForeignKey("OrganizationId1"); + }); + + modelBuilder.Entity("VolunteerSite.Domain.Models.VolunteerGroup", b => + { + b.HasOne("VolunteerSite.Domain.Models.Volunteer", "GroupOwner") + .WithMany("VolunteerGroups") + .HasForeignKey("GroupOwnerId1"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/VolunterSite.WebUI/VolunteerSite.Data/VolunteerSite.Data.csproj b/VolunterSite.WebUI/VolunteerSite.Data/VolunteerSite.Data.csproj new file mode 100644 index 0000000..48e0d90 --- /dev/null +++ b/VolunterSite.WebUI/VolunteerSite.Data/VolunteerSite.Data.csproj @@ -0,0 +1,20 @@ + + + + netcoreapp2.2 + + + + + + + all + runtime; build; native; contentfiles; analyzers + + + + + + + + diff --git a/VolunterSite.WebUI/VolunteerSite.Domain/Models/ErrorViewModel.cs b/VolunterSite.WebUI/VolunteerSite.Domain/Models/ErrorViewModel.cs new file mode 100644 index 0000000..8167476 --- /dev/null +++ b/VolunterSite.WebUI/VolunteerSite.Domain/Models/ErrorViewModel.cs @@ -0,0 +1,11 @@ +using System; + +namespace VolunterSite.WebUI.Models +{ + public class ErrorViewModel + { + public string RequestId { get; set; } + + public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); + } +} \ No newline at end of file diff --git a/VolunterSite.WebUI/VolunteerSite.Domain/Models/GroupMember.cs b/VolunterSite.WebUI/VolunteerSite.Domain/Models/GroupMember.cs new file mode 100644 index 0000000..748aa57 --- /dev/null +++ b/VolunterSite.WebUI/VolunteerSite.Domain/Models/GroupMember.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace VolunteerSite.Domain.Models +{ + public class GroupMember + { + public int Id { get; set; } + public string FirstName { get; set; } + public string LastName { get; set; } + public string Email { get; set; } + public string PhoneNumber { get; set; } + public int TotalHours { get; set; } + + public string VolunteerGroupId { get; set; } + public VolunteerGroup VolunteerGroup { get; set; } + } +} diff --git a/VolunterSite.WebUI/VolunteerSite.Domain/Models/JobListing.cs b/VolunterSite.WebUI/VolunteerSite.Domain/Models/JobListing.cs new file mode 100644 index 0000000..915d6e1 --- /dev/null +++ b/VolunterSite.WebUI/VolunteerSite.Domain/Models/JobListing.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace VolunteerSite.Domain.Models +{ + public class JobListing + { + public int Id { get; set; } + public string Address { get; set; } + public string City { get; set; } + public string State { get; set; } + public int PositionsAvailable { get; set; } + public string Description { get; set; } + public string TypeOfJob { get; set; } + public DateTime Date { get; set; } + + public string OrganizationId { get; set; } + public Organization Organization { get; set; } + } +} diff --git a/VolunterSite.WebUI/VolunteerSite.Domain/Models/Organization.cs b/VolunterSite.WebUI/VolunteerSite.Domain/Models/Organization.cs new file mode 100644 index 0000000..448779a --- /dev/null +++ b/VolunterSite.WebUI/VolunteerSite.Domain/Models/Organization.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Text; +using VolunterSite.WebUI.Models; + +namespace VolunteerSite.Domain.Models +{ + public class Organization + { + public int Id { get; set; } + public string CompanyName { get; set; } + public string Address { get; set; } + public string City { get; set; } + public string State { get; set; } + public string Email { get; set; } + public string PhoneNumber { get; set; } + + public IEnumerable JobListings { get; set; } + } +} diff --git a/VolunterSite.WebUI/VolunteerSite.Domain/Models/Volunteer.cs b/VolunterSite.WebUI/VolunteerSite.Domain/Models/Volunteer.cs new file mode 100644 index 0000000..bda03d0 --- /dev/null +++ b/VolunterSite.WebUI/VolunteerSite.Domain/Models/Volunteer.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace VolunteerSite.Domain.Models +{ + public class Volunteer + { + public int Id { get; set; } + public string FirstName { get; set; } + public string LastName { get; set; } + public string Email { get; set; } + public string PhoneNumber { get; set; } + public string SkillsAndExperience { get; set; } + + // Navigation Collection + public IEnumerable VolunteerGroups { get; set; } + } +} diff --git a/VolunterSite.WebUI/VolunteerSite.Domain/Models/VolunteerGroup.cs b/VolunterSite.WebUI/VolunteerSite.Domain/Models/VolunteerGroup.cs new file mode 100644 index 0000000..7fddf02 --- /dev/null +++ b/VolunterSite.WebUI/VolunteerSite.Domain/Models/VolunteerGroup.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace VolunteerSite.Domain.Models +{ + public class VolunteerGroup + { + public int Id { get; set; } + public string GroupName { get; set; } + + public string GroupOwnerId { get; set; } + public Volunteer GroupOwner { get; set; } + + public IEnumerable GroupMembers { get; set; } + } +} diff --git a/VolunterSite.WebUI/VolunteerSite.Domain/VolunteerSite.Domain.csproj b/VolunterSite.WebUI/VolunteerSite.Domain/VolunteerSite.Domain.csproj new file mode 100644 index 0000000..dbe0552 --- /dev/null +++ b/VolunterSite.WebUI/VolunteerSite.Domain/VolunteerSite.Domain.csproj @@ -0,0 +1,16 @@ + + + + netcoreapp2.2 + + + + + + + all + runtime; build; native; contentfiles; analyzers + + + + diff --git a/VolunterSite.WebUI/VolunteerSite.WebUI/Controllers/HomeController.cs b/VolunterSite.WebUI/VolunteerSite.WebUI/Controllers/HomeController.cs new file mode 100644 index 0000000..092f3c8 --- /dev/null +++ b/VolunterSite.WebUI/VolunteerSite.WebUI/Controllers/HomeController.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; +using VolunteerSite.WebUI.Models; + +namespace VolunteerSite.WebUI.Controllers +{ + public class HomeController : Controller + { + public IActionResult Index() + { + return View(); + } + + public IActionResult Privacy() + { + return View(); + } + + [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] + public IActionResult Error() + { + return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier }); + } + } +} diff --git a/VolunterSite.WebUI/VolunteerSite.WebUI/Models/ErrorViewModel.cs b/VolunterSite.WebUI/VolunteerSite.WebUI/Models/ErrorViewModel.cs new file mode 100644 index 0000000..2205216 --- /dev/null +++ b/VolunterSite.WebUI/VolunteerSite.WebUI/Models/ErrorViewModel.cs @@ -0,0 +1,11 @@ +using System; + +namespace VolunteerSite.WebUI.Models +{ + public class ErrorViewModel + { + public string RequestId { get; set; } + + public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); + } +} \ No newline at end of file diff --git a/VolunterSite.WebUI/VolunteerSite.WebUI/Program.cs b/VolunterSite.WebUI/VolunteerSite.WebUI/Program.cs new file mode 100644 index 0000000..e0b7d22 --- /dev/null +++ b/VolunterSite.WebUI/VolunteerSite.WebUI/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; +using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Logging; + +namespace VolunteerSite.WebUI +{ + public class Program + { + public static void Main(string[] args) + { + CreateWebHostBuilder(args).Build().Run(); + } + + public static IWebHostBuilder CreateWebHostBuilder(string[] args) => + WebHost.CreateDefaultBuilder(args) + .UseStartup(); + } +} diff --git a/VolunterSite.WebUI/VolunteerSite.WebUI/Properties/launchSettings.json b/VolunterSite.WebUI/VolunteerSite.WebUI/Properties/launchSettings.json new file mode 100644 index 0000000..2b54a80 --- /dev/null +++ b/VolunterSite.WebUI/VolunteerSite.WebUI/Properties/launchSettings.json @@ -0,0 +1,27 @@ +{ + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:55530", + "sslPort": 44312 + } + }, + "profiles": { + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "VolunteerSite.WebUI": { + "commandName": "Project", + "launchBrowser": true, + "applicationUrl": "https://localhost:5001;http://localhost:5000", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } +} \ No newline at end of file diff --git a/VolunterSite.WebUI/VolunteerSite.WebUI/Startup.cs b/VolunterSite.WebUI/VolunteerSite.WebUI/Startup.cs new file mode 100644 index 0000000..35de0cd --- /dev/null +++ b/VolunterSite.WebUI/VolunteerSite.WebUI/Startup.cs @@ -0,0 +1,69 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.HttpsPolicy; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using VolunteerSite.Data.Context; + +namespace VolunteerSite.WebUI +{ + 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) + { + // bad way of adding connection string + //TODO: fix later + var connectionString = "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=volunteersite;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"; + services.AddDbContext(options => options.UseSqlServer(connectionString)); + + 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.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1); + } + + // 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(); + } + else + { + app.UseExceptionHandler("/Home/Error"); + app.UseHsts(); + } + + app.UseHttpsRedirection(); + app.UseStaticFiles(); + app.UseCookiePolicy(); + + app.UseMvc(routes => + { + routes.MapRoute( + name: "default", + template: "{controller=Home}/{action=Index}/{id?}"); + }); + } + } +} diff --git a/VolunterSite.WebUI/VolunteerSite.WebUI/Views/Home/Index.cshtml b/VolunterSite.WebUI/VolunteerSite.WebUI/Views/Home/Index.cshtml new file mode 100644 index 0000000..d2d19bd --- /dev/null +++ b/VolunterSite.WebUI/VolunteerSite.WebUI/Views/Home/Index.cshtml @@ -0,0 +1,8 @@ +@{ + ViewData["Title"] = "Home Page"; +} + +
+

Welcome

+

Learn about building Web apps with ASP.NET Core.

+
diff --git a/VolunterSite.WebUI/VolunteerSite.WebUI/Views/Home/Privacy.cshtml b/VolunterSite.WebUI/VolunteerSite.WebUI/Views/Home/Privacy.cshtml new file mode 100644 index 0000000..af4fb19 --- /dev/null +++ b/VolunterSite.WebUI/VolunteerSite.WebUI/Views/Home/Privacy.cshtml @@ -0,0 +1,6 @@ +@{ + ViewData["Title"] = "Privacy Policy"; +} +

@ViewData["Title"]

+ +

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

diff --git a/VolunterSite.WebUI/VolunteerSite.WebUI/Views/Shared/Error.cshtml b/VolunterSite.WebUI/VolunteerSite.WebUI/Views/Shared/Error.cshtml new file mode 100644 index 0000000..a1e0478 --- /dev/null +++ b/VolunterSite.WebUI/VolunteerSite.WebUI/Views/Shared/Error.cshtml @@ -0,0 +1,25 @@ +@model ErrorViewModel +@{ + 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. +

+

+ The Development environment shouldn't be enabled for deployed applications. + It can result in displaying sensitive information from exceptions to end users. + For local debugging, enable the Development environment by setting the ASPNETCORE_ENVIRONMENT environment variable to Development + and restarting the app. +

diff --git a/VolunterSite.WebUI/VolunteerSite.WebUI/Views/Shared/_CookieConsentPartial.cshtml b/VolunterSite.WebUI/VolunteerSite.WebUI/Views/Shared/_CookieConsentPartial.cshtml new file mode 100644 index 0000000..a535ea4 --- /dev/null +++ b/VolunterSite.WebUI/VolunteerSite.WebUI/Views/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) +{ + + +} diff --git a/VolunterSite.WebUI/VolunteerSite.WebUI/Views/Shared/_Layout.cshtml b/VolunterSite.WebUI/VolunteerSite.WebUI/Views/Shared/_Layout.cshtml new file mode 100644 index 0000000..d9a0579 --- /dev/null +++ b/VolunterSite.WebUI/VolunteerSite.WebUI/Views/Shared/_Layout.cshtml @@ -0,0 +1,77 @@ + + + + + + @ViewData["Title"] - VolunteerSite.WebUI + + + + + + + + + + +
+ +
+
+ +
+ @RenderBody() +
+
+ +
+
+ © 2019 - VolunteerSite.WebUI - Privacy +
+
+ + + + + + + + + + + + @RenderSection("Scripts", required: false) + + diff --git a/VolunterSite.WebUI/VolunteerSite.WebUI/Views/Shared/_ValidationScriptsPartial.cshtml b/VolunterSite.WebUI/VolunteerSite.WebUI/Views/Shared/_ValidationScriptsPartial.cshtml new file mode 100644 index 0000000..3c0e077 --- /dev/null +++ b/VolunterSite.WebUI/VolunteerSite.WebUI/Views/Shared/_ValidationScriptsPartial.cshtml @@ -0,0 +1,18 @@ + + + + + + + + diff --git a/VolunterSite.WebUI/VolunteerSite.WebUI/Views/_ViewImports.cshtml b/VolunterSite.WebUI/VolunteerSite.WebUI/Views/_ViewImports.cshtml new file mode 100644 index 0000000..94c63b5 --- /dev/null +++ b/VolunterSite.WebUI/VolunteerSite.WebUI/Views/_ViewImports.cshtml @@ -0,0 +1,3 @@ +@using VolunteerSite.WebUI +@using VolunteerSite.WebUI.Models +@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers diff --git a/VolunterSite.WebUI/VolunteerSite.WebUI/Views/_ViewStart.cshtml b/VolunterSite.WebUI/VolunteerSite.WebUI/Views/_ViewStart.cshtml new file mode 100644 index 0000000..a5f1004 --- /dev/null +++ b/VolunterSite.WebUI/VolunteerSite.WebUI/Views/_ViewStart.cshtml @@ -0,0 +1,3 @@ +@{ + Layout = "_Layout"; +} diff --git a/VolunterSite.WebUI/VolunteerSite.WebUI/VolunteerSite.WebUI.csproj b/VolunterSite.WebUI/VolunteerSite.WebUI/VolunteerSite.WebUI.csproj new file mode 100644 index 0000000..cb9cfff --- /dev/null +++ b/VolunterSite.WebUI/VolunteerSite.WebUI/VolunteerSite.WebUI.csproj @@ -0,0 +1,20 @@ + + + + netcoreapp2.2 + InProcess + + + + + + + + + + + + + + + diff --git a/VolunterSite.WebUI/VolunteerSite.WebUI/appsettings.Development.json b/VolunterSite.WebUI/VolunteerSite.WebUI/appsettings.Development.json new file mode 100644 index 0000000..e203e94 --- /dev/null +++ b/VolunterSite.WebUI/VolunteerSite.WebUI/appsettings.Development.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Debug", + "System": "Information", + "Microsoft": "Information" + } + } +} diff --git a/VolunterSite.WebUI/VolunteerSite.WebUI/appsettings.json b/VolunterSite.WebUI/VolunteerSite.WebUI/appsettings.json new file mode 100644 index 0000000..def9159 --- /dev/null +++ b/VolunterSite.WebUI/VolunteerSite.WebUI/appsettings.json @@ -0,0 +1,8 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Warning" + } + }, + "AllowedHosts": "*" +} diff --git a/VolunterSite.WebUI/VolunteerSite.WebUI/wwwroot/css/site.css b/VolunterSite.WebUI/VolunteerSite.WebUI/wwwroot/css/site.css new file mode 100644 index 0000000..c486131 --- /dev/null +++ b/VolunterSite.WebUI/VolunteerSite.WebUI/wwwroot/css/site.css @@ -0,0 +1,56 @@ +/* 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. */ + +a.navbar-brand { + white-space: normal; + text-align: center; + word-break: break-all; +} + +/* Sticky footer styles +-------------------------------------------------- */ +html { + font-size: 14px; +} +@media (min-width: 768px) { + html { + font-size: 16px; + } +} + +.border-top { + border-top: 1px solid #e5e5e5; +} +.border-bottom { + border-bottom: 1px solid #e5e5e5; +} + +.box-shadow { + box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .05); +} + +button.accept-policy { + font-size: 1rem; + line-height: inherit; +} + +/* Sticky footer styles +-------------------------------------------------- */ +html { + position: relative; + min-height: 100%; +} + +body { + /* Margin bottom by footer height */ + margin-bottom: 60px; +} +.footer { + position: absolute; + bottom: 0; + width: 100%; + white-space: nowrap; + /* Set the fixed height of the footer here */ + height: 60px; + line-height: 60px; /* Vertically center the text there */ +} diff --git a/VolunterSite.WebUI/VolunteerSite.WebUI/wwwroot/favicon.ico b/VolunterSite.WebUI/VolunteerSite.WebUI/wwwroot/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a3a799985c43bc7309d701b2cad129023377dc71 GIT binary patch literal 32038 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 !string.IsNullOrEmpty(RequestId); + } +} \ No newline at end of file diff --git a/VolunterSite.WebUI/VolunteerSite.WebUI2/Program.cs b/VolunterSite.WebUI/VolunteerSite.WebUI2/Program.cs new file mode 100644 index 0000000..07d96c0 --- /dev/null +++ b/VolunterSite.WebUI/VolunteerSite.WebUI2/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; +using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Logging; + +namespace VolunteerSite.WebUI2 +{ + public class Program + { + public static void Main(string[] args) + { + CreateWebHostBuilder(args).Build().Run(); + } + + public static IWebHostBuilder CreateWebHostBuilder(string[] args) => + WebHost.CreateDefaultBuilder(args) + .UseStartup(); + } +} diff --git a/VolunterSite.WebUI/VolunteerSite.WebUI2/Properties/launchSettings.json b/VolunterSite.WebUI/VolunteerSite.WebUI2/Properties/launchSettings.json new file mode 100644 index 0000000..5168021 --- /dev/null +++ b/VolunterSite.WebUI/VolunteerSite.WebUI2/Properties/launchSettings.json @@ -0,0 +1,27 @@ +{ + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:55509", + "sslPort": 44376 + } + }, + "profiles": { + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "VolunteerSite.WebUI2": { + "commandName": "Project", + "launchBrowser": true, + "applicationUrl": "https://localhost:5001;http://localhost:5000", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } +} \ No newline at end of file diff --git a/VolunterSite.WebUI/VolunteerSite.WebUI2/Startup.cs b/VolunterSite.WebUI/VolunteerSite.WebUI2/Startup.cs new file mode 100644 index 0000000..1718a40 --- /dev/null +++ b/VolunterSite.WebUI/VolunteerSite.WebUI2/Startup.cs @@ -0,0 +1,64 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.HttpsPolicy; +using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; + +namespace VolunteerSite.WebUI2 +{ + 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.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2); + } + + // 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(); + } + else + { + app.UseExceptionHandler("/Home/Error"); + // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. + app.UseHsts(); + } + + app.UseHttpsRedirection(); + app.UseStaticFiles(); + app.UseCookiePolicy(); + + app.UseMvc(routes => + { + routes.MapRoute( + name: "default", + template: "{controller=Home}/{action=Index}/{id?}"); + }); + } + } +} diff --git a/VolunterSite.WebUI/VolunteerSite.WebUI2/Views/Home/Index.cshtml b/VolunterSite.WebUI/VolunteerSite.WebUI2/Views/Home/Index.cshtml new file mode 100644 index 0000000..d2d19bd --- /dev/null +++ b/VolunterSite.WebUI/VolunteerSite.WebUI2/Views/Home/Index.cshtml @@ -0,0 +1,8 @@ +@{ + ViewData["Title"] = "Home Page"; +} + +
+

Welcome

+

Learn about building Web apps with ASP.NET Core.

+
diff --git a/VolunterSite.WebUI/VolunteerSite.WebUI2/Views/Home/Privacy.cshtml b/VolunterSite.WebUI/VolunteerSite.WebUI2/Views/Home/Privacy.cshtml new file mode 100644 index 0000000..af4fb19 --- /dev/null +++ b/VolunterSite.WebUI/VolunteerSite.WebUI2/Views/Home/Privacy.cshtml @@ -0,0 +1,6 @@ +@{ + ViewData["Title"] = "Privacy Policy"; +} +

@ViewData["Title"]

+ +

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

diff --git a/VolunterSite.WebUI/VolunteerSite.WebUI2/Views/Shared/Error.cshtml b/VolunterSite.WebUI/VolunteerSite.WebUI2/Views/Shared/Error.cshtml new file mode 100644 index 0000000..a1e0478 --- /dev/null +++ b/VolunterSite.WebUI/VolunteerSite.WebUI2/Views/Shared/Error.cshtml @@ -0,0 +1,25 @@ +@model ErrorViewModel +@{ + 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. +

+

+ The Development environment shouldn't be enabled for deployed applications. + It can result in displaying sensitive information from exceptions to end users. + For local debugging, enable the Development environment by setting the ASPNETCORE_ENVIRONMENT environment variable to Development + and restarting the app. +

diff --git a/VolunterSite.WebUI/VolunteerSite.WebUI2/Views/Shared/_CookieConsentPartial.cshtml b/VolunterSite.WebUI/VolunteerSite.WebUI2/Views/Shared/_CookieConsentPartial.cshtml new file mode 100644 index 0000000..a535ea4 --- /dev/null +++ b/VolunterSite.WebUI/VolunteerSite.WebUI2/Views/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) +{ + + +} diff --git a/VolunterSite.WebUI/VolunteerSite.WebUI2/Views/Shared/_Layout.cshtml b/VolunterSite.WebUI/VolunteerSite.WebUI2/Views/Shared/_Layout.cshtml new file mode 100644 index 0000000..5075eab --- /dev/null +++ b/VolunterSite.WebUI/VolunteerSite.WebUI2/Views/Shared/_Layout.cshtml @@ -0,0 +1,77 @@ + + + + + + @ViewData["Title"] - VolunteerSite.WebUI2 + + + + + + + + + + +
+ +
+
+ +
+ @RenderBody() +
+
+ +
+
+ © 2019 - VolunteerSite.WebUI2 - Privacy +
+
+ + + + + + + + + + + + @RenderSection("Scripts", required: false) + + diff --git a/VolunterSite.WebUI/VolunteerSite.WebUI2/Views/Shared/_ValidationScriptsPartial.cshtml b/VolunterSite.WebUI/VolunteerSite.WebUI2/Views/Shared/_ValidationScriptsPartial.cshtml new file mode 100644 index 0000000..3c0e077 --- /dev/null +++ b/VolunterSite.WebUI/VolunteerSite.WebUI2/Views/Shared/_ValidationScriptsPartial.cshtml @@ -0,0 +1,18 @@ + + + + + + + + diff --git a/VolunterSite.WebUI/VolunteerSite.WebUI2/Views/_ViewImports.cshtml b/VolunterSite.WebUI/VolunteerSite.WebUI2/Views/_ViewImports.cshtml new file mode 100644 index 0000000..fe7cfb0 --- /dev/null +++ b/VolunterSite.WebUI/VolunteerSite.WebUI2/Views/_ViewImports.cshtml @@ -0,0 +1,3 @@ +@using VolunteerSite.WebUI2 +@using VolunteerSite.WebUI2.Models +@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers diff --git a/VolunterSite.WebUI/VolunteerSite.WebUI2/Views/_ViewStart.cshtml b/VolunterSite.WebUI/VolunteerSite.WebUI2/Views/_ViewStart.cshtml new file mode 100644 index 0000000..a5f1004 --- /dev/null +++ b/VolunterSite.WebUI/VolunteerSite.WebUI2/Views/_ViewStart.cshtml @@ -0,0 +1,3 @@ +@{ + Layout = "_Layout"; +} diff --git a/VolunterSite.WebUI/VolunteerSite.WebUI2/VolunteerSite.WebUI2.csproj b/VolunterSite.WebUI/VolunteerSite.WebUI2/VolunteerSite.WebUI2.csproj new file mode 100644 index 0000000..8b11822 --- /dev/null +++ b/VolunterSite.WebUI/VolunteerSite.WebUI2/VolunteerSite.WebUI2.csproj @@ -0,0 +1,14 @@ + + + + netcoreapp2.2 + InProcess + + + + + + + + + diff --git a/VolunterSite.WebUI/VolunteerSite.WebUI2/appsettings.Development.json b/VolunterSite.WebUI/VolunteerSite.WebUI2/appsettings.Development.json new file mode 100644 index 0000000..e203e94 --- /dev/null +++ b/VolunterSite.WebUI/VolunteerSite.WebUI2/appsettings.Development.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Debug", + "System": "Information", + "Microsoft": "Information" + } + } +} diff --git a/VolunterSite.WebUI/VolunteerSite.WebUI2/appsettings.json b/VolunterSite.WebUI/VolunteerSite.WebUI2/appsettings.json new file mode 100644 index 0000000..def9159 --- /dev/null +++ b/VolunterSite.WebUI/VolunteerSite.WebUI2/appsettings.json @@ -0,0 +1,8 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Warning" + } + }, + "AllowedHosts": "*" +} diff --git a/VolunterSite.WebUI/VolunteerSite.WebUI2/wwwroot/css/site.css b/VolunterSite.WebUI/VolunteerSite.WebUI2/wwwroot/css/site.css new file mode 100644 index 0000000..c486131 --- /dev/null +++ b/VolunterSite.WebUI/VolunteerSite.WebUI2/wwwroot/css/site.css @@ -0,0 +1,56 @@ +/* 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. */ + +a.navbar-brand { + white-space: normal; + text-align: center; + word-break: break-all; +} + +/* Sticky footer styles +-------------------------------------------------- */ +html { + font-size: 14px; +} +@media (min-width: 768px) { + html { + font-size: 16px; + } +} + +.border-top { + border-top: 1px solid #e5e5e5; +} +.border-bottom { + border-bottom: 1px solid #e5e5e5; +} + +.box-shadow { + box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .05); +} + +button.accept-policy { + font-size: 1rem; + line-height: inherit; +} + +/* Sticky footer styles +-------------------------------------------------- */ +html { + position: relative; + min-height: 100%; +} + +body { + /* Margin bottom by footer height */ + margin-bottom: 60px; +} +.footer { + position: absolute; + bottom: 0; + width: 100%; + white-space: nowrap; + /* Set the fixed height of the footer here */ + height: 60px; + line-height: 60px; /* Vertically center the text there */ +} diff --git a/VolunterSite.WebUI/VolunteerSite.WebUI2/wwwroot/favicon.ico b/VolunterSite.WebUI/VolunteerSite.WebUI2/wwwroot/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a3a799985c43bc7309d701b2cad129023377dc71 GIT binary patch literal 32038 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 !string.IsNullOrEmpty(RequestId); + } +} \ No newline at end of file diff --git a/VolunterSite.WebUI/VolunterSite.WebUI/Program.cs b/VolunterSite.WebUI/VolunterSite.WebUI/Program.cs new file mode 100644 index 0000000..13daccf --- /dev/null +++ b/VolunterSite.WebUI/VolunterSite.WebUI/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; +using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Logging; + +namespace VolunterSite.WebUI +{ + public class Program + { + public static void Main(string[] args) + { + CreateWebHostBuilder(args).Build().Run(); + } + + public static IWebHostBuilder CreateWebHostBuilder(string[] args) => + WebHost.CreateDefaultBuilder(args) + .UseStartup(); + } +} diff --git a/VolunterSite.WebUI/VolunterSite.WebUI/Properties/launchSettings.json b/VolunterSite.WebUI/VolunterSite.WebUI/Properties/launchSettings.json new file mode 100644 index 0000000..e92f707 --- /dev/null +++ b/VolunterSite.WebUI/VolunterSite.WebUI/Properties/launchSettings.json @@ -0,0 +1,27 @@ +{ + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:60571", + "sslPort": 44345 + } + }, + "profiles": { + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "VolunterSite.WebUI": { + "commandName": "Project", + "launchBrowser": true, + "applicationUrl": "https://localhost:5001;http://localhost:5000", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } +} \ No newline at end of file diff --git a/VolunterSite.WebUI/VolunterSite.WebUI/Startup.cs b/VolunterSite.WebUI/VolunterSite.WebUI/Startup.cs new file mode 100644 index 0000000..b7fb12e --- /dev/null +++ b/VolunterSite.WebUI/VolunterSite.WebUI/Startup.cs @@ -0,0 +1,67 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.HttpsPolicy; +using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; + +namespace VolunterSite.WebUI +{ + 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) + { + // bad way of adding connection string + //TODO: fix later + var connectionString = "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=master;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"; + services.AddDbContext + + 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.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1); + } + + // 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(); + } + else + { + app.UseExceptionHandler("/Home/Error"); + app.UseHsts(); + } + + app.UseHttpsRedirection(); + app.UseStaticFiles(); + app.UseCookiePolicy(); + + app.UseMvc(routes => + { + routes.MapRoute( + name: "default", + template: "{controller=Home}/{action=Index}/{id?}"); + }); + } + } +} diff --git a/VolunterSite.WebUI/VolunterSite.WebUI/Views/Home/About.cshtml b/VolunterSite.WebUI/VolunterSite.WebUI/Views/Home/About.cshtml new file mode 100644 index 0000000..3674e37 --- /dev/null +++ b/VolunterSite.WebUI/VolunterSite.WebUI/Views/Home/About.cshtml @@ -0,0 +1,7 @@ +@{ + ViewData["Title"] = "About"; +} +

@ViewData["Title"]

+

@ViewData["Message"]

+ +

Use this area to provide additional information.

diff --git a/VolunterSite.WebUI/VolunterSite.WebUI/Views/Home/Contact.cshtml b/VolunterSite.WebUI/VolunterSite.WebUI/Views/Home/Contact.cshtml new file mode 100644 index 0000000..a11a186 --- /dev/null +++ b/VolunterSite.WebUI/VolunterSite.WebUI/Views/Home/Contact.cshtml @@ -0,0 +1,17 @@ +@{ + ViewData["Title"] = "Contact"; +} +

@ViewData["Title"]

+

@ViewData["Message"]

+ +
+ One Microsoft Way
+ Redmond, WA 98052-6399
+ P: + 425.555.0100 +
+ +
+ Support: Support@example.com
+ Marketing: Marketing@example.com +
diff --git a/VolunterSite.WebUI/VolunterSite.WebUI/Views/Home/Index.cshtml b/VolunterSite.WebUI/VolunterSite.WebUI/Views/Home/Index.cshtml new file mode 100644 index 0000000..f42d2a0 --- /dev/null +++ b/VolunterSite.WebUI/VolunterSite.WebUI/Views/Home/Index.cshtml @@ -0,0 +1,94 @@ +@{ + ViewData["Title"] = "Home Page"; +} + + + + diff --git a/VolunterSite.WebUI/VolunterSite.WebUI/Views/Home/Privacy.cshtml b/VolunterSite.WebUI/VolunterSite.WebUI/Views/Home/Privacy.cshtml new file mode 100644 index 0000000..7bd3861 --- /dev/null +++ b/VolunterSite.WebUI/VolunterSite.WebUI/Views/Home/Privacy.cshtml @@ -0,0 +1,6 @@ +@{ + ViewData["Title"] = "Privacy Policy"; +} +

@ViewData["Title"]

+ +

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

diff --git a/VolunterSite.WebUI/VolunterSite.WebUI/Views/Shared/Error.cshtml b/VolunterSite.WebUI/VolunterSite.WebUI/Views/Shared/Error.cshtml new file mode 100644 index 0000000..ec2ea6b --- /dev/null +++ b/VolunterSite.WebUI/VolunterSite.WebUI/Views/Shared/Error.cshtml @@ -0,0 +1,22 @@ +@model ErrorViewModel +@{ + 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/VolunterSite.WebUI/VolunterSite.WebUI/Views/Shared/_CookieConsentPartial.cshtml b/VolunterSite.WebUI/VolunterSite.WebUI/Views/Shared/_CookieConsentPartial.cshtml new file mode 100644 index 0000000..bbfbb09 --- /dev/null +++ b/VolunterSite.WebUI/VolunterSite.WebUI/Views/Shared/_CookieConsentPartial.cshtml @@ -0,0 +1,41 @@ +@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/VolunterSite.WebUI/VolunterSite.WebUI/Views/Shared/_Layout.cshtml b/VolunterSite.WebUI/VolunterSite.WebUI/Views/Shared/_Layout.cshtml new file mode 100644 index 0000000..43e56e5 --- /dev/null +++ b/VolunterSite.WebUI/VolunterSite.WebUI/Views/Shared/_Layout.cshtml @@ -0,0 +1,74 @@ + + + + + + @ViewData["Title"] - VolunterSite.WebUI + + + + + + + + + + + + + + + +
+ @RenderBody() +
+
+

© 2019 - VolunterSite.WebUI

+
+
+ + + + + + + + + + + + + @RenderSection("Scripts", required: false) + + diff --git a/VolunterSite.WebUI/VolunterSite.WebUI/Views/Shared/_ValidationScriptsPartial.cshtml b/VolunterSite.WebUI/VolunterSite.WebUI/Views/Shared/_ValidationScriptsPartial.cshtml new file mode 100644 index 0000000..2a9241f --- /dev/null +++ b/VolunterSite.WebUI/VolunterSite.WebUI/Views/Shared/_ValidationScriptsPartial.cshtml @@ -0,0 +1,18 @@ + + + + + + + + diff --git a/VolunterSite.WebUI/VolunterSite.WebUI/Views/_ViewImports.cshtml b/VolunterSite.WebUI/VolunterSite.WebUI/Views/_ViewImports.cshtml new file mode 100644 index 0000000..8c97aa0 --- /dev/null +++ b/VolunterSite.WebUI/VolunterSite.WebUI/Views/_ViewImports.cshtml @@ -0,0 +1,3 @@ +@using VolunterSite.WebUI +@using VolunterSite.WebUI.Models +@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers diff --git a/VolunterSite.WebUI/VolunterSite.WebUI/Views/_ViewStart.cshtml b/VolunterSite.WebUI/VolunterSite.WebUI/Views/_ViewStart.cshtml new file mode 100644 index 0000000..a5f1004 --- /dev/null +++ b/VolunterSite.WebUI/VolunterSite.WebUI/Views/_ViewStart.cshtml @@ -0,0 +1,3 @@ +@{ + Layout = "_Layout"; +} diff --git a/VolunterSite.WebUI/VolunterSite.WebUI/VolunterSite.WebUI.csproj b/VolunterSite.WebUI/VolunterSite.WebUI/VolunterSite.WebUI.csproj new file mode 100644 index 0000000..efb8edb --- /dev/null +++ b/VolunterSite.WebUI/VolunterSite.WebUI/VolunterSite.WebUI.csproj @@ -0,0 +1,12 @@ + + + + netcoreapp2.1 + + + + + + + + diff --git a/VolunterSite.WebUI/VolunterSite.WebUI/appsettings.Development.json b/VolunterSite.WebUI/VolunterSite.WebUI/appsettings.Development.json new file mode 100644 index 0000000..e203e94 --- /dev/null +++ b/VolunterSite.WebUI/VolunterSite.WebUI/appsettings.Development.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Debug", + "System": "Information", + "Microsoft": "Information" + } + } +} diff --git a/VolunterSite.WebUI/VolunterSite.WebUI/appsettings.json b/VolunterSite.WebUI/VolunterSite.WebUI/appsettings.json new file mode 100644 index 0000000..def9159 --- /dev/null +++ b/VolunterSite.WebUI/VolunterSite.WebUI/appsettings.json @@ -0,0 +1,8 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Warning" + } + }, + "AllowedHosts": "*" +} diff --git a/VolunterSite.WebUI/VolunterSite.WebUI/wwwroot/css/site.css b/VolunterSite.WebUI/VolunterSite.WebUI/wwwroot/css/site.css new file mode 100644 index 0000000..e89c781 --- /dev/null +++ b/VolunterSite.WebUI/VolunterSite.WebUI/wwwroot/css/site.css @@ -0,0 +1,37 @@ +/* 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; + } +} diff --git a/VolunterSite.WebUI/VolunterSite.WebUI/wwwroot/css/site.min.css b/VolunterSite.WebUI/VolunterSite.WebUI/wwwroot/css/site.min.css new file mode 100644 index 0000000..5e93e30 --- /dev/null +++ b/VolunterSite.WebUI/VolunterSite.WebUI/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}} \ No newline at end of file diff --git a/VolunterSite.WebUI/VolunterSite.WebUI/wwwroot/favicon.ico b/VolunterSite.WebUI/VolunterSite.WebUI/wwwroot/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a3a799985c43bc7309d701b2cad129023377dc71 GIT binary patch literal 32038 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 \ No newline at end of file diff --git a/VolunterSite.WebUI/VolunterSite.WebUI/wwwroot/images/banner2.svg b/VolunterSite.WebUI/VolunterSite.WebUI/wwwroot/images/banner2.svg new file mode 100644 index 0000000..9679c60 --- /dev/null +++ b/VolunterSite.WebUI/VolunterSite.WebUI/wwwroot/images/banner2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/VolunterSite.WebUI/VolunterSite.WebUI/wwwroot/images/banner3.svg b/VolunterSite.WebUI/VolunterSite.WebUI/wwwroot/images/banner3.svg new file mode 100644 index 0000000..38b3d7c --- /dev/null +++ b/VolunterSite.WebUI/VolunterSite.WebUI/wwwroot/images/banner3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/VolunterSite.WebUI/VolunterSite.WebUI/wwwroot/js/site.js b/VolunterSite.WebUI/VolunterSite.WebUI/wwwroot/js/site.js new file mode 100644 index 0000000..ac49c18 --- /dev/null +++ b/VolunterSite.WebUI/VolunterSite.WebUI/wwwroot/js/site.js @@ -0,0 +1,4 @@ +// 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. + +// Write your JavaScript code. diff --git a/VolunterSite.WebUI/VolunterSite.WebUI/wwwroot/js/site.min.js b/VolunterSite.WebUI/VolunterSite.WebUI/wwwroot/js/site.min.js new file mode 100644 index 0000000..e69de29