got initial month layout

This commit is contained in:
2023-01-05 17:27:57 -07:00
parent 159313cbca
commit dc70216f1d
8 changed files with 181 additions and 29 deletions

View File

@@ -1,5 +1,13 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<ItemGroup>
<ProjectReference Include="..\Management\Management.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="dotenv.net" Version="3.1.2" />
</ItemGroup>
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<Nullable>enable</Nullable>

View File

@@ -1,9 +1,42 @@
@page "/"
@using CanvasModel.EnrollmentTerms
@using Management.Web.Shared.Semester
@inject ICanvasService canvasService
@code
{
private IEnumerable<EnrollmentTermModel>? terms { get; set; } = null;
private ulong? selectedTermId { get; set; } = null;
private EnrollmentTermModel? selectedTerm
{
get => terms?.FirstOrDefault(t => t.Id == selectedTermId);
}
protected override async Task OnInitializedAsync()
{
terms = await canvasService.GetCurrentTermsFor();
}
}
<PageTitle>Index</PageTitle>
<h1>Hello, world!</h1>
@if (terms != null)
{
<div class="row justify-content-center">
<div class="col-auto">
Welcome to your new app.
<SurveyPrompt Title="How is Blazor working for you?" />
<form>
<lablel for="termselect">Select Term:</lablel>
<select id="termselect" class="form-select" @bind="selectedTermId">
@foreach (var term in terms)
{
<option value="@term.Id">@term.Name</option>
}
</select>
</form>
</div>
</div>
}
@if (selectedTerm is not null)
{
<SemesterDetail Term="selectedTerm" />
}

View File

@@ -1,6 +1,12 @@
global using System.Text.Json.Serialization;
global using System.Text.Json;
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.Web;
using Management.Web.Data;
using dotenv.net;
DotEnv.Load();
var builder = WebApplication.CreateBuilder(args);
@@ -8,15 +14,17 @@ var builder = WebApplication.CreateBuilder(args);
builder.Services.AddRazorPages();
builder.Services.AddServerSideBlazor();
builder.Services.AddSingleton<WeatherForecastService>();
builder.Services.AddSingleton<IWebRequestor, WebRequestor>();
builder.Services.AddSingleton<ICanvasService, CanvasService>();
var app = builder.Build();
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/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.UseExceptionHandler("/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();

View File

@@ -0,0 +1,26 @@
@code
{
[Parameter, EditorRequired]
public CalendarMonth Month { get; set; } = default!;
}
<div class="row text-center fw-bold">
<div class="col">Saturday</div>
<div class="col">Monday</div>
<div class="col">Tuesday</div>
<div class="col">Wednesday</div>
<div class="col">Thursday</div>
<div class="col">Friday</div>
<div class="col">Saturday</div>
</div>
@foreach(var week in Month.DaysByWeek)
{
<div class="row m-3">
@foreach (var day in week)
{
<div class="col border rounded rounded-3 pb-5 m-1">@day?.Day</div>
}
</div>
}

View File

@@ -0,0 +1,23 @@
@using CanvasModel.EnrollmentTerms
@code
{
[Parameter, EditorRequired]
public EnrollmentTermModel Term { get; set; } = default!;
private SemesterPlanner semester { get; set; } = default!;
protected override void OnParametersSet()
{
semester = new SemesterPlanner(Term);
}
}
@Term.Name
@foreach (var month in semester.Months)
{
<MonthDetail Month="month" />
<hr />
}

View File

@@ -1,16 +0,0 @@
<div class="alert alert-secondary mt-4">
<span class="oi oi-pencil me-2" aria-hidden="true"></span>
<strong>@Title</strong>
<span class="text-nowrap">
Please take our
<a target="_blank" class="font-weight-bold link-dark" href="https://go.microsoft.com/fwlink/?linkid=2186158">brief survey</a>
</span>
and tell us what you think.
</div>
@code {
// Demonstrates how a parent component can supply parameters
[Parameter]
public string? Title { get; set; }
}