- C# 51.3%
- HTML 44.2%
- CSS 2.7%
- JavaScript 1.8%
| bin/Release/net10.0 | ||
| Controllers | ||
| Models | ||
| obj | ||
| Properties | ||
| Published | ||
| Views | ||
| wwwroot | ||
| .gitignore | ||
| appsettings.Development.json | ||
| appsettings.json | ||
| Program.cs | ||
| README.md | ||
| WebApplication1.csproj | ||
| WebApplication1.csproj.user | ||
Dotnet Applikation
Applikationen är skapad för grupp E och utgår från rollen Handläggare. Den är byggd med C# och ASP.NET Core MVC och använder samma MySQL-databas som PHP-applikationen.
Requirements
- En handläggare får skapa och läsa observationer, media, incidenter och personer.
Egna krav
- Applikationen ska ha en personsida och en incidentsida med navigation mellan sidorna.
- Applikationen ska visa registrerade personer i en HTML-tabell.
- Handläggaren ska kunna ange ett incidentnummer i ett sökformulär.
Struktur och formulär
Jag har skapat två controllers med tillhörande vyer. HomeController visar registrerade personer och IncidentController visar ett formulär där handläggaren kan ange ett incidentnummer.
Sidorna använder en gemensam layout med navigation och sidfot. Applikationen har laddats upp via filezilla till wwwlab.webug.se och båda sidorna samt navigationen har testats.
Enkla tabeller och proceduranrop
Applikationen visar registrerade personer genom att hämta hela tabellen Person med SELECT utan join. Resultatet visas i en HTML-tabell med person-ID, namn och kodnamn.
På incidentsidan anger handläggaren ett incidentnummer i ett formulär. Applikationen anropar proceduren GetIncidentObservations och visar resultatet i en HTML-tabell med observations-ID, datum, säkerhet, grad och ansvarig handläggare. Om inga observationer hittas visas ett meddelande.
Båda funktionerna har testats på skolans server.
Requirements
- Handläggaren ska kunna välja en incident och se incidentens observationer.
- Applikationen ska visa registrerade personer i en HTML-tabell.
Komplex tabell – kolumnlayout
Jag har skapat en komplex tabell som visar incidenter och deras observationer. Informationen hämtas från tabellerna Incident och Observation med en LEFT JOIN på IncidentNumber. Det gör att även incidenter utan observationer visas.
Jag använder kolumnlayout eftersom jag tillhör grupp E. Varje incident visas på en egen rad i huvudtabellen med incidentnummer, namn och plats. Incidentens observationer visas bredvid varandra i nästlade HTML-tabeller med observations-ID, datum och grad. Om incidenten saknar observationer visas ett meddelande.
Requirement
- Handläggaren ska kunna se en incident och dess tillhörande observationer.
Sökning och filtrering med dropdown
Handläggaren kan söka efter observationer genom att ange ett incidentnummer. Proceduren GetIncidentObservations hämtar observationerna och resultatet visas i en HTML-tabell.
Jag har även lagt till en separat dropdown som filtrerar den komplexa tabellen efter region. Regionerna hämtas med SELECT DISTINCT från Incident eftersom regioninformationen finns där efter denormaliseringen. Varje region visas därför endast en gång i dropdownen.
När en region väljs visas endast den regionens incidenter med tillhörande observationer i kolumnlayout. Alternativet ”Alla regioner” visar samtliga incidenter. Regionvalet skickas som en parameter till SQL-frågan.
Requirements
- Handläggaren ska kunna söka efter observationer med ett incidentnummer.
- Handläggaren ska kunna filtrera incidenter och deras observationer efter region med en dropdown.
Uppdatering av databasen – procedur, UPDATE och INSERT
Jag har lagt till tre funktioner som ändrar information i databasen. Handläggaren kan registrera en person genom proceduren RegisterPerson, uppdatera personens namn och kodnamn med UPDATE samt koppla en person till en observation med INSERT i PersonObservation.
Uppdateringen använder en separat dropdown för att välja person. Kopplingen använder egna dropdowns för person och observation. Dessa är skilda från regionfiltreringen i steg 5.
Registrerade och uppdaterade uppgifter visas i persontabellen. Kopplingarna visas i en egen HTML-tabell med person-ID och observations-ID. Formulären använder POST och databasändringarna använder parametriserade anrop.
Alla tre funktionerna har testats lokalt.
Requirements
- Handläggaren ska kunna registrera en person genom en procedur.
- Handläggaren ska kunna uppdatera en persons namn och kodnamn.
- Handläggaren ska kunna koppla en person till en observation.
- Separata dropdowns ska användas som parametrar vid databasändringar.
- Resultaten av databasändringarna ska vara synliga i applikationen.