Skip to content

Commit 31fc5cd

Browse files
committedMay 21, 2022
Initial commit
0 parents  commit 31fc5cd

14 files changed

+631
-0
lines changed
 

‎.gitignore

+350
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,350 @@
1+
## Ignore Visual Studio temporary files, build results, and
2+
## files generated by popular Visual Studio add-ons.
3+
##
4+
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
5+
6+
# User-specific files
7+
*.rsuser
8+
*.suo
9+
*.user
10+
*.userosscache
11+
*.sln.docstates
12+
13+
# User-specific files (MonoDevelop/Xamarin Studio)
14+
*.userprefs
15+
16+
# Mono auto generated files
17+
mono_crash.*
18+
19+
# Build results
20+
[Dd]ebug/
21+
[Dd]ebugPublic/
22+
[Rr]elease/
23+
[Rr]eleases/
24+
x64/
25+
x86/
26+
[Aa][Rr][Mm]/
27+
[Aa][Rr][Mm]64/
28+
bld/
29+
[Bb]in/
30+
[Oo]bj/
31+
[Ll]og/
32+
[Ll]ogs/
33+
34+
# Visual Studio 2015/2017 cache/options directory
35+
.vs/
36+
# Uncomment if you have tasks that create the project's static files in wwwroot
37+
#wwwroot/
38+
39+
# Visual Studio 2017 auto generated files
40+
Generated\ Files/
41+
42+
# MSTest test Results
43+
[Tt]est[Rr]esult*/
44+
[Bb]uild[Ll]og.*
45+
46+
# NUnit
47+
*.VisualState.xml
48+
TestResult.xml
49+
nunit-*.xml
50+
51+
# Build Results of an ATL Project
52+
[Dd]ebugPS/
53+
[Rr]eleasePS/
54+
dlldata.c
55+
56+
# Benchmark Results
57+
BenchmarkDotNet.Artifacts/
58+
59+
# .NET Core
60+
project.lock.json
61+
project.fragment.lock.json
62+
artifacts/
63+
64+
# StyleCop
65+
StyleCopReport.xml
66+
67+
# Files built by Visual Studio
68+
*_i.c
69+
*_p.c
70+
*_h.h
71+
*.ilk
72+
*.meta
73+
*.obj
74+
*.iobj
75+
*.pch
76+
*.pdb
77+
*.ipdb
78+
*.pgc
79+
*.pgd
80+
*.rsp
81+
*.sbr
82+
*.tlb
83+
*.tli
84+
*.tlh
85+
*.tmp
86+
*.tmp_proj
87+
*_wpftmp.csproj
88+
*.log
89+
*.vspscc
90+
*.vssscc
91+
.builds
92+
*.pidb
93+
*.svclog
94+
*.scc
95+
96+
# Chutzpah Test files
97+
_Chutzpah*
98+
99+
# Visual C++ cache files
100+
ipch/
101+
*.aps
102+
*.ncb
103+
*.opendb
104+
*.opensdf
105+
*.sdf
106+
*.cachefile
107+
*.VC.db
108+
*.VC.VC.opendb
109+
110+
# Visual Studio profiler
111+
*.psess
112+
*.vsp
113+
*.vspx
114+
*.sap
115+
116+
# Visual Studio Trace Files
117+
*.e2e
118+
119+
# TFS 2012 Local Workspace
120+
$tf/
121+
122+
# Guidance Automation Toolkit
123+
*.gpState
124+
125+
# ReSharper is a .NET coding add-in
126+
_ReSharper*/
127+
*.[Rr]e[Ss]harper
128+
*.DotSettings.user
129+
130+
# TeamCity is a build add-in
131+
_TeamCity*
132+
133+
# DotCover is a Code Coverage Tool
134+
*.dotCover
135+
136+
# AxoCover is a Code Coverage Tool
137+
.axoCover/*
138+
!.axoCover/settings.json
139+
140+
# Visual Studio code coverage results
141+
*.coverage
142+
*.coveragexml
143+
144+
# NCrunch
145+
_NCrunch_*
146+
.*crunch*.local.xml
147+
nCrunchTemp_*
148+
149+
# MightyMoose
150+
*.mm.*
151+
AutoTest.Net/
152+
153+
# Web workbench (sass)
154+
.sass-cache/
155+
156+
# Installshield output folder
157+
[Ee]xpress/
158+
159+
# DocProject is a documentation generator add-in
160+
DocProject/buildhelp/
161+
DocProject/Help/*.HxT
162+
DocProject/Help/*.HxC
163+
DocProject/Help/*.hhc
164+
DocProject/Help/*.hhk
165+
DocProject/Help/*.hhp
166+
DocProject/Help/Html2
167+
DocProject/Help/html
168+
169+
# Click-Once directory
170+
publish/
171+
172+
# Publish Web Output
173+
*.[Pp]ublish.xml
174+
*.azurePubxml
175+
# Note: Comment the next line if you want to checkin your web deploy settings,
176+
# but database connection strings (with potential passwords) will be unencrypted
177+
*.pubxml
178+
*.publishproj
179+
180+
# Microsoft Azure Web App publish settings. Comment the next line if you want to
181+
# checkin your Azure Web App publish settings, but sensitive information contained
182+
# in these scripts will be unencrypted
183+
PublishScripts/
184+
185+
# NuGet Packages
186+
*.nupkg
187+
# NuGet Symbol Packages
188+
*.snupkg
189+
# The packages folder can be ignored because of Package Restore
190+
**/[Pp]ackages/*
191+
# except build/, which is used as an MSBuild target.
192+
!**/[Pp]ackages/build/
193+
# Uncomment if necessary however generally it will be regenerated when needed
194+
#!**/[Pp]ackages/repositories.config
195+
# NuGet v3's project.json files produces more ignorable files
196+
*.nuget.props
197+
*.nuget.targets
198+
199+
# Microsoft Azure Build Output
200+
csx/
201+
*.build.csdef
202+
203+
# Microsoft Azure Emulator
204+
ecf/
205+
rcf/
206+
207+
# Windows Store app package directories and files
208+
AppPackages/
209+
BundleArtifacts/
210+
Package.StoreAssociation.xml
211+
_pkginfo.txt
212+
*.appx
213+
*.appxbundle
214+
*.appxupload
215+
216+
# Visual Studio cache files
217+
# files ending in .cache can be ignored
218+
*.[Cc]ache
219+
# but keep track of directories ending in .cache
220+
!?*.[Cc]ache/
221+
222+
# Others
223+
ClientBin/
224+
~$*
225+
*~
226+
*.dbmdl
227+
*.dbproj.schemaview
228+
*.jfm
229+
*.pfx
230+
*.publishsettings
231+
orleans.codegen.cs
232+
233+
# Including strong name files can present a security risk
234+
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
235+
#*.snk
236+
237+
# Since there are multiple workflows, uncomment next line to ignore bower_components
238+
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
239+
#bower_components/
240+
241+
# RIA/Silverlight projects
242+
Generated_Code/
243+
244+
# Backup & report files from converting an old project file
245+
# to a newer Visual Studio version. Backup files are not needed,
246+
# because we have git ;-)
247+
_UpgradeReport_Files/
248+
Backup*/
249+
UpgradeLog*.XML
250+
UpgradeLog*.htm
251+
ServiceFabricBackup/
252+
*.rptproj.bak
253+
254+
# SQL Server files
255+
*.mdf
256+
*.ldf
257+
*.ndf
258+
259+
# Business Intelligence projects
260+
*.rdl.data
261+
*.bim.layout
262+
*.bim_*.settings
263+
*.rptproj.rsuser
264+
*- [Bb]ackup.rdl
265+
*- [Bb]ackup ([0-9]).rdl
266+
*- [Bb]ackup ([0-9][0-9]).rdl
267+
268+
# Microsoft Fakes
269+
FakesAssemblies/
270+
271+
# GhostDoc plugin setting file
272+
*.GhostDoc.xml
273+
274+
# Node.js Tools for Visual Studio
275+
.ntvs_analysis.dat
276+
node_modules/
277+
278+
# Visual Studio 6 build log
279+
*.plg
280+
281+
# Visual Studio 6 workspace options file
282+
*.opt
283+
284+
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
285+
*.vbw
286+
287+
# Visual Studio LightSwitch build output
288+
**/*.HTMLClient/GeneratedArtifacts
289+
**/*.DesktopClient/GeneratedArtifacts
290+
**/*.DesktopClient/ModelManifest.xml
291+
**/*.Server/GeneratedArtifacts
292+
**/*.Server/ModelManifest.xml
293+
_Pvt_Extensions
294+
295+
# Paket dependency manager
296+
.paket/paket.exe
297+
paket-files/
298+
299+
# FAKE - F# Make
300+
.fake/
301+
302+
# CodeRush personal settings
303+
.cr/personal
304+
305+
# Python Tools for Visual Studio (PTVS)
306+
__pycache__/
307+
*.pyc
308+
309+
# Cake - Uncomment if you are using it
310+
# tools/**
311+
# !tools/packages.config
312+
313+
# Tabs Studio
314+
*.tss
315+
316+
# Telerik's JustMock configuration file
317+
*.jmconfig
318+
319+
# BizTalk build output
320+
*.btp.cs
321+
*.btm.cs
322+
*.odx.cs
323+
*.xsd.cs
324+
325+
# OpenCover UI analysis results
326+
OpenCover/
327+
328+
# Azure Stream Analytics local run output
329+
ASALocalRun/
330+
331+
# MSBuild Binary and Structured Log
332+
*.binlog
333+
334+
# NVidia Nsight GPU debugger configuration file
335+
*.nvuser
336+
337+
# MFractors (Xamarin productivity tool) working folder
338+
.mfractor/
339+
340+
# Local History for Visual Studio
341+
.localhistory/
342+
343+
# BeatPulse healthcheck temp database
344+
healthchecksdb
345+
346+
# Backup folder for Package Reference Convert tool in Visual Studio 2017
347+
MigrationBackup/
348+
349+
# Ionide (cross platform F# VS Code tools) working folder
350+
.ionide/

‎README.md

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# ToDo App Series
2+
3+
A short YouTube series on getting started with C# coding using a Blazor.

‎ToDo.sln

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
2+
Microsoft Visual Studio Solution File, Format Version 12.00
3+
# Visual Studio Version 17
4+
VisualStudioVersion = 17.1.32421.90
5+
MinimumVisualStudioVersion = 10.0.40219.1
6+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ToDo", "ToDo\ToDo.csproj", "{A8B81C68-CC38-4932-B462-46CA015AEE56}"
7+
EndProject
8+
Global
9+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
10+
Debug|Any CPU = Debug|Any CPU
11+
Release|Any CPU = Release|Any CPU
12+
EndGlobalSection
13+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
14+
{A8B81C68-CC38-4932-B462-46CA015AEE56}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15+
{A8B81C68-CC38-4932-B462-46CA015AEE56}.Debug|Any CPU.Build.0 = Debug|Any CPU
16+
{A8B81C68-CC38-4932-B462-46CA015AEE56}.Release|Any CPU.ActiveCfg = Release|Any CPU
17+
{A8B81C68-CC38-4932-B462-46CA015AEE56}.Release|Any CPU.Build.0 = Release|Any CPU
18+
EndGlobalSection
19+
GlobalSection(SolutionProperties) = preSolution
20+
HideSolutionNode = FALSE
21+
EndGlobalSection
22+
GlobalSection(ExtensibilityGlobals) = postSolution
23+
SolutionGuid = {2FAC0FC8-049A-47F3-BAA0-BF86605521EB}
24+
EndGlobalSection
25+
EndGlobal

‎ToDo/App.razor

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<Router AppAssembly="@typeof(App).Assembly">
2+
<Found Context="routeData">
3+
<RouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)" />
4+
</Found>
5+
<NotFound>
6+
<PageTitle>Not found</PageTitle>
7+
<LayoutView Layout="@typeof(MainLayout)">
8+
<p role="alert">Sorry, there's nothing at this address.</p>
9+
</LayoutView>
10+
</NotFound>
11+
</Router>

‎ToDo/Pages/Index.razor

+79
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
@page "/"
2+
@using System.ComponentModel.DataAnnotations
3+
4+
<PageTitle>My ToDo App</PageTitle>
5+
6+
<EditForm Model="@model" OnValidSubmit="OnValidSubmit">
7+
<DataAnnotationsValidator />
8+
<MudGrid>
9+
<MudItem xs="12" sm="12">
10+
<MudCard>
11+
<MudCardContent>
12+
<MudTextField Label="ToDo" @bind-Value="model.Name" For="@(() => model.Name)" />
13+
</MudCardContent>
14+
<MudCardActions>
15+
<MudButton ButtonType="ButtonType.Submit" Variant="Variant.Filled" Color="Color.Primary" Class="ml-auto">Add</MudButton>
16+
</MudCardActions>
17+
</MudCard>
18+
</MudItem>
19+
</MudGrid>
20+
</EditForm>
21+
22+
@if (todos.Any())
23+
{
24+
<MudPaper Class="mt-5">
25+
<MudList Clickable=true>
26+
@foreach (var todo in todos)
27+
{
28+
<MudListItem Icon="@todo.Icon" OnClick="todo.SetComplete">
29+
@if (todo.IsComplete)
30+
{
31+
<span style="text-decoration:line-through">@todo.Name</span>
32+
}
33+
else
34+
{
35+
@todo.Name
36+
}
37+
</MudListItem>
38+
}
39+
</MudList>
40+
</MudPaper>
41+
}
42+
43+
@code {
44+
ToDo model = new ToDo();
45+
46+
List<ToDo> todos = new List<ToDo>();
47+
bool success;
48+
49+
public class ToDo
50+
{
51+
[Required]
52+
public string Name { get; set; } = string.Empty;
53+
54+
public string Icon
55+
{
56+
get
57+
{
58+
if (IsComplete) return Icons.TwoTone.CheckBox;
59+
else return Icons.Filled.CheckBoxOutlineBlank;
60+
}
61+
}
62+
63+
public bool IsComplete { get; set; }
64+
65+
public void SetComplete()
66+
{
67+
IsComplete = !IsComplete;
68+
}
69+
}
70+
71+
private void OnValidSubmit(EditContext context)
72+
{
73+
todos.Add(model);
74+
success = true;
75+
model = new ToDo();
76+
StateHasChanged();
77+
}
78+
79+
}

‎ToDo/Program.cs

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
using Microsoft.AspNetCore.Components.Web;
2+
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
3+
using MudBlazor.Services;
4+
using ToDo;
5+
6+
var builder = WebAssemblyHostBuilder.CreateDefault(args);
7+
builder.RootComponents.Add<App>("#app");
8+
builder.RootComponents.Add<HeadOutlet>("head::after");
9+
10+
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
11+
builder.Services.AddMudServices();
12+
13+
await builder.Build().RunAsync();

‎ToDo/Properties/launchSettings.json

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
{
2+
"iisSettings": {
3+
"windowsAuthentication": false,
4+
"anonymousAuthentication": true,
5+
"iisExpress": {
6+
"applicationUrl": "http://localhost:65283",
7+
"sslPort": 44398
8+
}
9+
},
10+
"profiles": {
11+
"IIS Express": {
12+
"commandName": "IISExpress",
13+
"launchBrowser": true,
14+
"inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}",
15+
"environmentVariables": {
16+
"ASPNETCORE_ENVIRONMENT": "Development"
17+
}
18+
},
19+
"Mudblazor.Template": {
20+
"commandName": "Project",
21+
"dotnetRunMessages": "true",
22+
"launchBrowser": true,
23+
"inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}",
24+
"applicationUrl": "https://localhost:5001;http://localhost:5000",
25+
"environmentVariables": {
26+
"ASPNETCORE_ENVIRONMENT": "Development"
27+
}
28+
}
29+
}
30+
}

‎ToDo/Shared/MainLayout.razor

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
@inherits LayoutComponentBase
2+
3+
<MudThemeProvider />
4+
<MudDialogProvider />
5+
<MudSnackbarProvider />
6+
7+
<MudLayout>
8+
<MudAppBar Elevation="0">
9+
<MudIcon Icon="@Icons.TwoTone.CheckBox" Class="mr-2" /><MudText>ToDo App</MudText>
10+
</MudAppBar>
11+
<MudMainContent>
12+
<MudContainer MaxWidth="MaxWidth.Large" Class="my-16 pt-16">
13+
@Body
14+
</MudContainer>
15+
</MudMainContent>
16+
</MudLayout>

‎ToDo/ToDo.csproj

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<Project Sdk="Microsoft.NET.Sdk.BlazorWebAssembly">
2+
3+
<PropertyGroup>
4+
<TargetFramework>net6.0</TargetFramework>
5+
<Nullable>enable</Nullable>
6+
<ImplicitUsings>enable</ImplicitUsings>
7+
</PropertyGroup>
8+
9+
<ItemGroup>
10+
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="6.0.4" />
11+
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="6.0.4" PrivateAssets="all" />
12+
<PackageReference Include="MudBlazor" Version="6.0.9" />
13+
</ItemGroup>
14+
15+
16+
</Project>

‎ToDo/ToDo.sln

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
2+
Microsoft Visual Studio Solution File, Format Version 12.00
3+
# Visual Studio Version 17
4+
VisualStudioVersion = 17.0.31717.71
5+
MinimumVisualStudioVersion = 10.0.40219.1
6+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ToDo", "ToDo.csproj", "{20C2E550-60E9-47D0-9640-D28F2C5B2827}"
7+
EndProject
8+
Global
9+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
10+
Debug|Any CPU = Debug|Any CPU
11+
Release|Any CPU = Release|Any CPU
12+
EndGlobalSection
13+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
14+
{20C2E550-60E9-47D0-9640-D28F2C5B2827}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15+
{20C2E550-60E9-47D0-9640-D28F2C5B2827}.Debug|Any CPU.Build.0 = Debug|Any CPU
16+
{20C2E550-60E9-47D0-9640-D28F2C5B2827}.Release|Any CPU.ActiveCfg = Release|Any CPU
17+
{20C2E550-60E9-47D0-9640-D28F2C5B2827}.Release|Any CPU.Build.0 = Release|Any CPU
18+
EndGlobalSection
19+
GlobalSection(SolutionProperties) = preSolution
20+
HideSolutionNode = FALSE
21+
EndGlobalSection
22+
GlobalSection(ExtensibilityGlobals) = postSolution
23+
SolutionGuid = {90155375-FFBD-483A-97CF-663EB5331B74}
24+
EndGlobalSection
25+
EndGlobal

‎ToDo/_Imports.razor

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
@using System.Net.Http
2+
@using System.Net.Http.Json
3+
@using Microsoft.AspNetCore.Components.Forms
4+
@using Microsoft.AspNetCore.Components.Routing
5+
@using Microsoft.AspNetCore.Components.Web
6+
@using Microsoft.AspNetCore.Components.Web.Virtualization
7+
@using Microsoft.AspNetCore.Components.WebAssembly.Http
8+
@using Microsoft.JSInterop
9+
@using MudBlazor
10+
@using ToDo
11+
@using ToDo.Shared

‎ToDo/wwwroot/favicon.ico

4.19 KB
Binary file not shown.

‎ToDo/wwwroot/index.html

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<!DOCTYPE html>
2+
<html>
3+
4+
<head>
5+
<meta charset="utf-8" />
6+
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
7+
<title>ToDo</title>
8+
<base href="/" />
9+
<link href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&display=swap" rel="stylesheet" />
10+
<link href="_content/MudBlazor/MudBlazor.min.css" rel="stylesheet" />
11+
</head>
12+
13+
<body>
14+
<div id="app">Loading...</div>
15+
16+
<div id="blazor-error-ui">
17+
An unhandled error has occurred.
18+
<a href="" class="reload">Reload</a>
19+
<a class="dismiss">🗙</a>
20+
</div>
21+
<script src="_framework/blazor.webassembly.js"></script>
22+
<script src="_content/MudBlazor/MudBlazor.min.js"></script>
23+
</body>
24+
25+
</html>

‎ToDo/wwwroot/sample-data/weather.json

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
[
2+
{
3+
"date": "2018-05-06",
4+
"temperatureC": 1,
5+
"summary": "Freezing"
6+
},
7+
{
8+
"date": "2018-05-07",
9+
"temperatureC": 14,
10+
"summary": "Bracing"
11+
},
12+
{
13+
"date": "2018-05-08",
14+
"temperatureC": -13,
15+
"summary": "Freezing"
16+
},
17+
{
18+
"date": "2018-05-09",
19+
"temperatureC": -16,
20+
"summary": "Balmy"
21+
},
22+
{
23+
"date": "2018-05-10",
24+
"temperatureC": -2,
25+
"summary": "Chilly"
26+
}
27+
]

0 commit comments

Comments
 (0)
Please sign in to comment.