Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Add about page and book image #493

Merged
merged 17 commits into from
Jun 5, 2024
13 changes: 9 additions & 4 deletions EssentialCSharp.Web/Controllers/HomeController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -60,16 +60,21 @@ public IActionResult TermsOfService()
return View();
}

[Route("/Announcements",
Name = "Announcements")]
[Route("/Announcements", Name = "Announcements")]
public IActionResult Announcements()
{
ViewBag.PageTitle = "Announcements";
return View();
}

[Route("/home",
Name = "home")]
[Route("/about", Name = "about")]
public IActionResult About()
{
ViewBag.PageTitle = "About";
return View();
}

[Route("/home", Name = "home")]
public IActionResult Home()
{
return View();
Expand Down
71 changes: 71 additions & 0 deletions EssentialCSharp.Web/Views/Home/About.cshtml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
@{
ViewData["Title"] = "About";
}

<div class="px-3">
<h1>@ViewData["Title"]</h1>
<hr class="divider-light-blue" />

<div class="row py-3 gx-5">
<div class="col-12 col-md-6 my-1">
<div class="h3">
Who We Are
</div>
<p>
IntelliTect is a high-end software architecture and development consulting firm based in Spokane, Washington.
</p>
<p>
At IntelliTect, we offer a full range of software and consulting services.
Our passion for innovation manifests itself primarily in technology and software development.
</p>
<p>
We provide high-end architecture consulting, full life-cycle software development, and training that enables our clients to solve their most challenging problems.
</p>
<div>
<a class="btn btn-primary" href="https://intellitect.com/" target="_blank">Learn More About Intellitect</a>
</div>
</div>
<div class="col-12 col-md-6">
<div class="d-flex align-items-center justify-content-center h-100 bg-light">
<img src="/images/intellitect-logo.svg" class="img-fluid" alt="IntelliTect Logo" style="height: 75px">
</div>
</div>
</div>

<hr class="divider-light-blue" />

<div class="row gx-5">
<div class="col-12 col-md-6">
<div class="d-flex align-items-center justify-content-center h-100">
<img src="/images/book.png" class="img-fluid" style="height: 450px" alt="Essential C Sharp Book">
kelseymcmahon marked this conversation as resolved.
Show resolved Hide resolved
</div>
</div>
<div class="col-12 col-md-6 mt-3">
<div class="h3">
Essential C# Book
</div>
<p>
Check out the interactive and comprehensive guide to the C# coding language to expand your development knowledge and enhance your skill set at your own pace. The site includes everything developers need to master C# and is an excellent tool for beginners to experts.
</p>
<div>
<a class="btn btn-primary" href="https://a.co/d/95wxhTg" target="_blank">Get the Book</a>
</div>

<div class="quote">
<div class="quote-content">
<div class="quote-icon">
<i class="fa fa-solid fa-quote-left"></i>
</div>
<div class="quote-text">
Welcome to one of the most venerable and trusted franchises you could dream of in the world of C# books&mdash;and probably far beyond!
</div>
</div>
<div class="quote-author">
<strong>From the Foreword by Mads Torgersen</strong>
<br />
<i>C# Lead Designer, Microsoft</i>
</div>
</div>
</div>
</div>
</div>
43 changes: 13 additions & 30 deletions EssentialCSharp.Web/Views/Home/Announcements.cshtml
Original file line number Diff line number Diff line change
@@ -1,57 +1,40 @@
@{
ViewData["Title"] = "Announcements";
}
<div class="py-2 px-2">
<div>
<h1>@ViewData["Title"]</h1>
</div>

<div>
<hr class="divider-blue" />
</div>
<div class="px-3">
<h1>@ViewData["Title"]</h1>
<hr class="divider-light-blue" />

<div class="row py-4">
<div class="row">
<div class="col-12 my-2">
<h3>Web Features Coming Soon</h3>
<h2 class="fs-4">Web Features Coming Soon</h2>
</div>
<div v-for="(feature, i) in featuresComingSoonList" key="i" class="col-sm-12 col-md-6 col-lg-4 mb-4">
<div class="card card-blue">
<div v-for="(feature, i) in featuresComingSoonList" key="i" class="col-sm-12 col-md-6 col-lg-4 mb-5">
<div class="card card-primary">
<div class="card-body">
<h5 class="card-title" v-html="feature.title"></h5>
<p class="card-text" v-html="feature.text"></p>
</div>
</div>
</div>
</div>

<div>
<hr class="divider-light-blue" />
</div>

<div class="row py-4">
<div class="col-12 my-2">
<h3>Content Coming Soon</h3>
<h2 class="fs-4">Content Coming Soon</h2>
</div>
<div v-for="(feature, i) in contentComingSoonList" key="i" class="col-sm-12 col-md-6 col-lg-4 mb-4">
<div class="card card-light-blue">
<div v-for="(feature, i) in contentComingSoonList" key="i" class="col-sm-12 col-md-6 col-lg-4 mb-5">
<div class="card card-secondary">
<div class="card-body">
<h5 class="card-title" v-html="feature.title"></h5>
<p class="card-text" v-html="feature.text"></p>
</div>
</div>
</div>
</div>

<div>
<hr class="divider-yellow" />
</div>

<div class="row py-4">
<div class="col-12 my-2">
<h3>Recently Completed</h3>
<h2 class="fs-4">Recently Completed</h2>
</div>
<div v-for="(feature, i) in completedFeaturesList" key="i" class="col-sm-12 col-md-6 col-lg-4 mb-4">
<div class="card card-yellow">
<div v-for="(feature, i) in completedFeaturesList" key="i" class="col-sm-12 col-md-6 col-lg-4 mb-5">
<div class="card card-accent">
<div class="card-body">
<h5 class="card-title" v-html="feature.title"></h5>
<p class="card-text" v-html="feature.text"></p>
Expand Down
27 changes: 16 additions & 11 deletions EssentialCSharp.Web/Views/Home/Guidelines.cshtml
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,24 @@
var guidelines = (List<GuidelineListing>)ViewBag.Guidelines as List<GuidelineListing>;
}

<div>
@foreach (var group in guidelines.GroupBy(g => g.SanitizedSubsection).OrderBy(g => g.Key))
{
<h2 id="@group.Key?.ToLower()">@group.Key</h2>
foreach (var guideline in group)
<div class="px-3">
<h1>@ViewData["Title"]</h1>
<hr class="divider-light-blue" />

<div>
@foreach (var group in guidelines.GroupBy(g => g.SanitizedSubsection).OrderBy(g => g.Key))
{
<div>
<i class="@GetSymbolForType(guideline.Type)" style="color: @GetColorForType(guideline.Type); padding-right: 10px;"></i>
<span>@guideline.Guideline</span>
</div>
<h2 class="fs-4" id="@group.Key?.ToLower()">@group.Key</h2>
foreach (var guideline in group)
{
<div>
<i class="@GetSymbolForType(guideline.Type)" style="color: @GetColorForType(guideline.Type); padding-right: 10px;"></i>
<span>@guideline.Guideline</span>
</div>
}
<br />
}
<br />
}
</div>
</div>

@functions {
Expand Down
108 changes: 66 additions & 42 deletions EssentialCSharp.Web/Views/Home/Home.cshtml
Original file line number Diff line number Diff line change
@@ -1,39 +1,71 @@
<div class="py-2 px-2">
<div class="px-3">
<div>
<h1>Welcome to Essential C#</h1>
<h4><i>Written by Mark Michaelis with Eric Lippert & Kevin Bost</i></h4>
<div class="quote">
<div class="quote-content">
<div class="quote-icon">
<i class="fa fa-solid fa-quote-left"></i>
</div>

<hr class="divider-light-blue" />

<div class="row gx-5">
<div class="col-12 col-md-6">
<h3>The Comprehensive, Expert Guide to C# Language Programming</h3>
<div class="h5"><i>Written by Mark Michaelis with Eric Lippert & Kevin Bost</i></div>
<p>
Essential C# is a well-organized, no-fluff guide to C# for programmers at all levels of experience.
Reflecting the most important C# features from 3.0 through 8.0 and including modern programming patterns,
it will help you write code that&rsquo;s simple, powerful, robust, secure, and maintainable.
</p>
<p>
World-class C# expert Mark Michaelis presents a complete tutorial and reference for the entire language,
including expert coverage of key C# enhancements, C#&rsquo;s use with .NET Core/.NET Standard,
and cross-platform compilation. He illustrates key C# constructs with succinct examples,
and presents best-practice coding guidelines.
</p>
</div>
</div>

<hr class="divider-light-blue" />

<div class="row gx-5">
<div class="col-12 col-md-6">
<div class="d-flex align-items-center justify-content-center h-100">
<img src="/images/book.png" class="img-fluid" style="height: 450px" alt="Essential C Sharp Book">
</div>
</div>
<div class="col-12 col-md-6 mt-3">
<h3>Essential C# Book</h3>
<p>
Check out the interactive and comprehensive guide to the C# coding language to expand your development knowledge and enhance your skill set at your own pace. The site includes everything developers need to master C# and is an excellent tool for beginners to experts.
</p>
<div>
<a class="btn btn-primary" href="https://a.co/d/95wxhTg" target="_blank">Get the Book</a>
</div>

<div class="quote">
<div class="quote-content">
<div class="quote-icon">
<i class="fa fa-solid fa-quote-left"></i>
</div>
<div class="quote-text">
Welcome to one of the most venerable and trusted franchises you could dream of in the world of C# books&mdash;and probably far beyond!
</div>
</div>
<div class="quote-text">
Welcome to one of the most venerable and trusted franchises you could dream of in the world of C# books&mdash;and probably far beyond!
<div class="quote-author">
<strong>From the Foreword by Mads Torgersen</strong>
<br />
<i>C# Lead Designer, Microsoft</i>
</div>
</div>
<div class="quote-author">
<strong>From the Foreword by Mads Torgersen</strong>
<br />
<i>C# Lead Designer, Microsoft</i>
</div>
</div>
</div>

<div class="py-4">
<h3>The Comprehensive, Expert Guide to C# Language Programming</h3>
<p>Essential C# is a well-organized, no-fluff guide</a> to C# for programmers at all levels of experience. Reflecting the most important C# features from 3.0 through 8.0 and including modern programming patterns, it will help you write code that&rsquo;s simple, powerful, robust, secure, and maintainable. World-class C# expert Mark Michaelis presents a complete tutorial and reference for the entire language, including expert coverage of key C# enhancements, C#&rsquo;s use with .NET Core/.NET Standard, and cross-platform compilation. He illustrates key C# constructs with succinct examples, and presents best-practice coding guidelines.</p>
</div>

<div>
<hr class="divider-blue" />
</div>
<hr class="divider-light-blue" />

<div class="row py-4">
<div class="row">
<div class="col-12 my-2">
<h3>Web Features Coming Soon</h3>
</div>
<div v-for="(feature, i) in featuresComingSoonList.slice(0, 3)" key="i" class="col-sm-12 col-md-6 col-lg-4 mb-4">
<div class="card card-blue">
<div v-for="(feature, i) in featuresComingSoonList.slice(0, 3)" key="i" class="col-sm-12 col-md-6 col-lg-4 mb-5">
<div class="card card-primary">
<div class="card-body">
<h5 class="card-title" v-html="feature.title"></h5>
<p class="card-text" v-html="feature.text"></p>
Expand All @@ -42,47 +74,39 @@
</div>
</div>

<div>
<hr class="divider-light-blue" />
</div>

<div class="row py-4">
<div class="row">
<div class="col-12 my-2">
<h3>Content Coming Soon</h3>
</div>
<div v-for="(feature, i) in contentComingSoonList.slice(0, 3)" key="i" class="col-sm-12 col-md-6 col-lg-4 mb-4">
<div class="card card-light-blue">
<div v-for="(feature, i) in contentComingSoonList.slice(0, 3)" key="i" class="col-sm-12 col-md-6 col-lg-4 mb-5">
<div class="card card-secondary">
<div class="card-body">
<h5 class="card-title" v-html="feature.title"></h5>
<h5 class="card-title" v-html="feature.title"></h5>
<p class="card-text" v-html="feature.text"></p>
</div>
</div>
</div>
</div>

<div>
<hr class="divider-yellow" />
</div>

<div class="row py-4">
<div class="row">
<div class="col-12 my-2">
<h3>Recently Completed</h3>
</div>
<div v-for="(feature, i) in completedFeaturesList.slice(0, 3)" key="i" class="col-sm-12 col-md-6 col-lg-4 mb-4">
<div class="card card-yellow">
<div v-for="(feature, i) in completedFeaturesList.slice(0, 3)" key="i" class="col-sm-12 col-md-6 col-lg-4 mb-5">
<div class="card card-accent">
<div class="card-body">
<h5 class="card-title" v-html="feature.title"></h5>
<p class="card-text" v-html="feature.text"></p>
</div>
</div>
</div>
</div>

<div class="row justify-content-center">
<div class="col-auto">
<button type="button" class="button my-4" onclick="window.location.href='/Announcements'">
<a class="btn btn-primary" href="/Announcements">
View All Announcements
</button>
</a>
</div>
</div>

</div>
Loading
Loading