Controller
SchoolContext _context annab Controllerile ja Vaatele teada mis andmebaas välja näeb ning kõik informatsioon selle sees.
Index laseb meil vaadata kõik Delinquents informatsiooni üldiselt kasutades ToListAsync() meetodit mis paneb kõik raamatud tabelisse.
Create esimesena annab meile Create vaate ning siis kui on informatsioon antud, see kontrollib et mudel on õige ning kui on, lisab andmebaasile ja viib sind tagasi Indexisse.
See kasutab ka SaveChangesAsync et salvestada informatsiooni
Delete kustutab antud valik ära peale kui kontrollib et asi on olemas. see kasutab esimesena FirstorDefaultAsync, mis Tagastab asünkroonselt jada esimese elemendi. Ning kasutab Lambda meetodit et lühidalt näidata anonüümset meetodit.
Ning siis salvestab andmebaasi peale kui kustutab valitud objekt ära.
Details lubab meil vaadata täpsemad informatsiooni antud objekti kohta. See kasutab samuti FirstorDefaultAsync ja Lambda meetodit.
Edit lubab meil muuta antud objekti. Kasutab FirstorDefaultAsync ja Lambda meetodit. Sellel on ka post-meetod mis siis salvestab kõike mis muudeti.
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Rendering;
using Microsoft.EntityFrameworkCore;
using TallinnaRakenduslikKolledzKaur.Data;
using TallinnaRakenduslikKolledzKaur.Models;
namespace TallinnaRakenduslikKolledzKaur.Controllers
{
public class DelinquentsController : Controller
{
private readonly SchoolContext _context;
public DelinquentsController(SchoolContext context)
{
_context = context;
}
public async Task<IActionResult> Index()
{
return View(await _context.Delinquents.ToListAsync());
}
[HttpGet]
public IActionResult Create()
{
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create(Delinquent delinquent)
{
if (ModelState.IsValid)
{
_context.Delinquents.Add(delinquent);
await _context.SaveChangesAsync();
}
return RedirectToAction("Index");
}
[HttpGet]
public async Task<IActionResult> Details(int? Id)
{
if (Id == null)
{
return NotFound();
}
var delinquent = await _context.Delinquents.FirstOrDefaultAsync(d => d.BreakerId == Id);
if (delinquent == null)
{
return NotFound();
}
return View(delinquent);
}
[HttpGet]
public async Task<IActionResult> Edit(int? Id)
{
if (Id == null)
{
return NotFound();
}
var delinquent = await _context.Delinquents.FirstOrDefaultAsync(d => d.BreakerId == Id);
if (delinquent == null)
{
return NotFound();
}
_context.Delinquents.Update(delinquent);
return View(delinquent);
}
[HttpPost, ActionName("Edit")]
[ValidateAntiForgeryToken]
public async Task<IActionResult> EditConfirmed([Bind("BreakerId,FirstName,LastName,Violations,Description,Position")] Delinquent delinquent)
{
_context.Delinquents.Update(delinquent);
await _context.SaveChangesAsync();
return RedirectToAction("Index");
}
[HttpGet]
public async Task<IActionResult> Delete(int? Id)
{
if (Id == null)
{
return NotFound();
}
var delinquent = await _context.Delinquents.FirstOrDefaultAsync(d => d.BreakerId == Id);
if (delinquent == null)
{
return NotFound();
}
return View(delinquent);
}
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Delete(Delinquent delinquent)
{
if (await _context.Delinquents.AnyAsync(d => d.BreakerId == delinquent.BreakerId))
{
_context.Delinquents.Remove(delinquent);
await _context.SaveChangesAsync();
}
return RedirectToAction("Index");
}
}
}
Mudel
using System.ComponentModel.DataAnnotations;
namespace TallinnaRakenduslikKolledzKaur.Models
{
public enum Violations
{
Vandalism, IPhoneUser, Smoking, Bullying, AI_User
}
public enum Positions
{
Student,Instructor
}
public class Delinquent
{
[Key]
public int BreakerId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public Violations Violations { get; set; }
public string? Description { get; set; }
public Positions Position { get; set; }
}
}
View
Create
@model TallinnaRakenduslikKolledzKaur.Models.Delinquent
@{
ViewData["Title"] = "Uus Delinquent";
}
<h1>Tee uus delinquent</h1>
<h4>Sisesta info:</h4>
<hr />
<div class="row">
<div class="col-md-4">
<form asp-action="Create">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<!--<div>
<label asp-for="CourseId" class="control-label"></label>
<input asp-for="CourseId" class="form-control" />
<span asp-validation-for="CourseId" class="text-danger"></span>
</div> -->
<div>
<label asp-for="FirstName" class="control-label"></label>
<input asp-for="FirstName" class="form-control" />
<span asp-validation-for="FirstName" class="text-danger"></span>
</div>
<div>
<label asp-for="LastName" class="control-label"></label>
<input asp-for="LastName" class="form-control" />
<span asp-validation-for="LastName" class="text-danger"></span>
</div>
<div>
<label asp-for="Description" class="control-label"></label>
<input asp-for="Description" class="form-control" />
<span asp-validation-for="Description" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Position" class="control-label"></label>
<select asp-for="Position" class="control-label">
<option value="">-- Select Position --</option>
<option value="Student">Student</option>
<option value="Instructor">Instructor</option>
</select>
<span asp-validation-for="Position" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Violations" class="control-label"></label>
<select asp-for="Violations" class="control-label">
<option value="">-- Select Violation --</option>
<option value="AI_User">AI User</option>
<option value="Bullying">Bully</option>
<option value="Smoking">Smoker</option>
<option value="IPhoneUser">IPhone User</option>
<option value="Vandalism">Vandalism</option>
</select>
<span asp-validation-for="Violations" class="text-danger"></span>
</div>
<div class="form-group">
<input type="submit" value="Tee uus" class="btn btn-primary" /> | <a asp-action="Index" class="btn btn-outline-primary">Tühista</a>
</div>
</form>
</div>
</div>
Delete
@model TallinnaRakenduslikKolledzKaur.Models.Delinquent
@{
ViewData["Title"] = "Kustuta Delinquent";
}
<h1>Kustuta Delinquent</h1>
<h3>
Kas oled kindel et tahad kustudada @Html.DisplayFor(Model => Model.FirstName)
</h3>
<div>
<h4>Delinquent</h4>
<hr />
<dt class="col-sm-2">@Html.DisplayNameFor(Model => Model.LastName)</dt>
<dt class="col-sm-2">@Html.DisplayFor(Model => Model.LastName)</dt>
<dt class="col-sm-2">@Html.DisplayNameFor(Model => Model.FirstName)</dt>
<dt class="col-sm-2">@Html.DisplayFor(Model => Model.FirstName)</dt>
<dt class="col-sm-2">@Html.DisplayNameFor(Model => Model.Violations)</dt>
<dt class="col-sm-2">@Html.DisplayFor(Model => Model.Violations)</dt>
<dt class="col-sm-2">@Html.DisplayNameFor(Model => Model.Description)</dt>
<dt class="col-sm-2">@Html.DisplayFor(Model => Model.Description)</dt>
<dt class="col-sm-2">@Html.DisplayNameFor(Model => Model.Position)</dt>
<dt class="col-sm-2">@Html.DisplayFor(Model => Model.Position)</dt>
<form asp-action="Delete">
<input type="hidden" asp-for="BreakerId" />
<input type="submit" value="Kustuta Delinquent" class="btn btn-danger" /> | <a asp-action="Index">Tühista</a>
</form>
</div>
Details
@model TallinnaRakenduslikKolledzKaur.Models.Delinquent
@{
ViewData["Title"] = "Viewing delinquents";
}
<div>
<h4>Delinquent</h4>
<hr />
<dl class="row">
<dt class="col-sm-2">@Html.DisplayNameFor(Model => Model.FirstName)</dt>
<dd class="col-sm-10">@Html.DisplayFor(Model => Model.FirstName)</dd>
</dl>
<dl class="row">
<dt class="col-sm-2">@Html.DisplayNameFor(Model => Model.LastName)</dt>
<dd class="col-sm-10">@Html.DisplayFor(Model => Model.LastName)</dd>
</dl>
<dl class="row">
<dt class="col-sm-2">@Html.DisplayNameFor(Model => Model.Violations)</dt>
<dd class="col-sm-10">@Html.DisplayFor(Model => Model.Violations)</dd>
</dl>
<dl class="row">
<dt class="col-sm-2">@Html.DisplayNameFor(Model => Model.Description)</dt>
<dd class="col-sm-10">@Html.DisplayFor(Model => Model.Description)</dd>
</dl>
<dl class="row">
<dt class="col-sm-2">@Html.DisplayNameFor(Model => Model.Position)</dt>
<dd class="col-sm-10">@Html.DisplayFor(Model => Model.Position)</dd>
</dl>
</div>
<form asp-action="Tagasi">
<input type="hidden" asp-for="BreakerId" />
<a asp-action="Index">Tagasi</a>
</form>
Edit
@model TallinnaRakenduslikKolledzKaur.Models.Delinquent
@{
ViewData["Title"] = "Muuda Delinquent";
}
<h1>Muuda Delinquent</h1>
<hr />
<div class="row">
<div class="col-md-4">
<form asp-action="Edit">
<input type="hidden" asp-for="@Model.BreakerId" />
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div>
<label asp-for="FirstName" class="control-label"></label>
<input asp-for="FirstName" class="form-control" />
<span asp-validation-for="FirstName" class="text-danger"></span>
</div>
<div>
<label asp-for="LastName" class="control-label"></label>
<input asp-for="LastName" class="form-control" />
<span asp-validation-for="LastName" class="text-danger"></span>
</div>
<div>
<label asp-for="Description" class="control-label"></label>
<input asp-for="Description" class="form-control" />
<span asp-validation-for="Description" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Position" class="control-label"></label>
<select asp-for="Position" class="control-label">
<option value="">-- Select Position --</option>
<option value="Student">Student</option>
<option value="Instructor">Instructor</option>
</select>
<span asp-validation-for="Position" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Violations" class="control-label"></label>
<select asp-for="Violations" class="control-label">
<option value="">-- Select Violation --</option>
<option value="AI_User">AI User</option>
<option value="Bullying">Bully</option>
<option value="Smoking">Smoker</option>
<option value="IPhoneUser">IPhone User</option>
<option value="Vandalism">Vandalism</option>
</select>
<span asp-validation-for="Violations" class="text-danger"></span>
</div>
<div class="form-group">
<input type="submit" asp-route-id="@Model.BreakerId" value="Edit" class="btn btn-primary" />
</div>
</form>
</div>
</div>
<div>
<a asp-action="Index">Mine tagasi loendisse</a>
</div>
Index
@model IEnumerable<TallinnaRakenduslikKolledzKaur.Models.Delinquent>
@{
ViewData["Title"] = "Delinquents";
}
<h1>Delinquents Loend:</h1>
<p>
<a asp-action="Create">Sisesta Delinquent</a>
</p>
<table class="table">
<thead>
<tr>
<th>
@Html.DisplayNameFor(Model => Model.BreakerId)
</th>
<th>
@Html.DisplayNameFor(Model => Model.LastName)
</th>
<th>
@Html.DisplayNameFor(Model => Model.FirstName)
</th>
<th>
@Html.DisplayNameFor(Model => Model.Violations)
</th>
<th>
@Html.DisplayNameFor(Model => Model.Description)
</th>
<th>
@Html.DisplayNameFor(Model => Model.Position)
</th>
<th>Tööriistad</th>
</tr>
</thead>
<tbody>
@foreach (var delinquent in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => delinquent.BreakerId)
</td>
<td>
@Html.DisplayFor(modelItem => delinquent.LastName)
</td>
<td>
@Html.DisplayFor(modelItem => delinquent.FirstName)
</td>
<td>
@Html.DisplayFor(modelItem => delinquent.Violations)
</td>
<td>
@Html.DisplayFor(modelItem => delinquent.Description)
</td>
<td>
@Html.DisplayFor(modelItem => delinquent.Position)
</td>
<td>
<a asp-action="Edit" asp-route-id="@delinquent.BreakerId">Muuda</a>
<a asp-action="Details" asp-route-id="@delinquent.BreakerId">Vaata</a>
<a asp-action="Delete" asp-route-id="@delinquent.BreakerId">Kustuta</a>
</td>
</tr>
}
</tbody>
</table>