Добавил контроллер для симптомов

This commit is contained in:
Никита Потапов 2024-05-28 00:27:17 +04:00
parent 19f7fbb7f4
commit d747d42272
4 changed files with 85 additions and 8 deletions

View File

@ -0,0 +1,78 @@
using Microsoft.AspNetCore.Mvc;
using PolyclinicContracts.BindingModels;
using PolyclinicContracts.BusinessLogicsContracts;
using PolyclinicContracts.SearchModels;
using PolyclinicContracts.ViewModels;
namespace PolyclinicWebAppImplementer.Controllers
{
public class SymptomesController : Controller
{
private readonly ISymptomLogic _symptomLogic;
private readonly IDiagnoseLogic _diagnoseLogic;
public SymptomesController(ISymptomLogic symptomLogic, IDiagnoseLogic diagnoseLogic)
{
_symptomLogic = symptomLogic;
_diagnoseLogic = diagnoseLogic;
}
[HttpGet]
public IActionResult Index()
{
List<SymptomViewModel> symptomes = _symptomLogic.ReadList();
ViewData["Title"] = "Список симптомов";
return View("SymptomesList", symptomes);
}
[HttpGet]
[HttpPost]
public IActionResult Add(SymptomViewModel model)
{
if (HttpContext.Request.Method == "GET")
{
ViewData["Title"] = "Новый симптом";
return View("SymptomForm");
}
else
{
SymptomBindingModel symptom = new SymptomBindingModel
{
Name = model.Name,
Comment = model.Comment,
};
_symptomLogic.Create(symptom);
return RedirectToAction("Index");
}
}
[HttpGet]
[HttpPost]
public IActionResult Edit(int id, SymptomViewModel model)
{
if (HttpContext.Request.Method == "GET")
{
var obj = _symptomLogic.ReadElement(new SymptomSearchModel { Id = id });
ViewData["Title"] = "Редактировать симптом";
return View("SymptomForm", obj);
}
else
{
SymptomBindingModel symptom = new SymptomBindingModel
{
Id = model.Id,
Name = model.Name,
Comment = model.Comment,
};
_symptomLogic.Update(symptom);
return RedirectToAction("Index");
}
}
[HttpPost]
public IActionResult Delete(int id)
{
var obj = _symptomLogic.ReadElement(new SymptomSearchModel { Id = id });
if (obj != null)
{
_symptomLogic.Delete(new SymptomBindingModel { Id = obj.Id });
}
return RedirectToAction("Index");
}
}
}

View File

@ -22,7 +22,7 @@
<ExcludeFromSingleFile>true</ExcludeFromSingleFile> <ExcludeFromSingleFile>true</ExcludeFromSingleFile>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory> <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content> </Content>
<Content Update="Views\Home\Symptomes.cshtml"> <Content Update="Views\Symptomes\SymptomesList.cshtml">
<ExcludeFromSingleFile>true</ExcludeFromSingleFile> <ExcludeFromSingleFile>true</ExcludeFromSingleFile>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory> <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content> </Content>

View File

@ -1,15 +1,14 @@
@{ @using PolyclinicContracts.ViewModels
ViewBag.SelectedSiteMenuItem = SiteMenuItems.Symptom; @model SymptomViewModel
} <h4>@ViewData["Title"]</h4>
<h4>Новый симптом</h4>
<form class="d-flex flex-column" method="post"> <form class="d-flex flex-column" method="post">
<div class="row mb-5"> <div class="row mb-5">
<div class="col-3">Название:</div> <div class="col-3">Название:</div>
<div class="col-8"><input type="text" id="name" name="name" /></div> <div class="col-8"><input type="text" asp-for="Name" /></div>
</div> </div>
<div class="row mb-5"> <div class="row mb-5">
<div class="col-3">Коментарий:</div> <div class="col-3">Коментарий:</div>
<div class="col-8"><textarea id="comment" name="comment"></textarea></div> <div class="col-8"><textarea asp-for="Comment"></textarea></div>
</div> </div>
<div class="row mb-5"> <div class="row mb-5">
<div class="col-3 d-flex align-content-center"> <div class="col-3 d-flex align-content-center">

View File

@ -3,7 +3,7 @@
} }
<div> <div>
<div class="d-flex flex-row"> <div class="d-flex flex-row">
<a class="btn btn-primary" asp-action="Symptom" asp-controller="Home" title="Добавить"> <a class="btn btn-primary" asp-action="Add" title="Добавить">
Добавить симптом Добавить симптом
</a> </a>
</div> </div>