полный круд для животных (я сам как животное уже)

This commit is contained in:
frog24 2024-05-28 18:38:03 +04:00
parent 1de62e911d
commit ba4fba5e1a
4 changed files with 148 additions and 12 deletions

View File

@ -69,7 +69,8 @@ namespace ClientApp.Controllers
Response.Redirect("Enter");
return;
}
public IActionResult IndexAnimal()
//=================ЖИВОТНЫЕ=================
public IActionResult IndexAnimal()
{
if (APIClient.Client == null)
{
@ -79,8 +80,90 @@ namespace ClientApp.Controllers
}
public IActionResult CreateAnimal()
{
if (APIClient.Client == null)
{
return Redirect("~/Home/Enter");
}
return View();
}
[HttpPost]
public void CreateAnimal(string name, int age, string species)
{
if (APIClient.Client == null)
{
throw new Exception("Вы как суда попали? Сюда вход только авторизованным");
}
if (string.IsNullOrEmpty(name) || age <= 0 || string.IsNullOrEmpty(species))
{
throw new Exception("Ошибка в введённых данных");
}
APIClient.PostRequest("api/animal/createanimal", new AnimalBindingModel
{
AnimalName = name,
Age = age,
Species = species,
ClientId = APIClient.Client.Id
});
Response.Redirect("Index");
}
public IActionResult UpdateAnimal()
{
if (APIClient.Client == null)
{
return Redirect("~/Home/Enter");
}
ViewBag.Animals = APIClient.GetRequest<List<AnimalViewModel>>($"api/animal/getanimals?clientid={APIClient.Client.Id}");
return View();
}
[HttpPost]
public void UpdateAnimal(int pet, string name, int age, string species)
{
if (APIClient.Client == null)
{
throw new Exception("Вы как суда попали? Суда вход только авторизованным");
}
if (string.IsNullOrEmpty(name) || age <= 0 || string.IsNullOrEmpty(species))
{
throw new Exception("Ошибка введённых данных");
}
APIClient.PostRequest("api/animal/updateanimal", new AnimalViewModel
{
Id = pet,
AnimalName = name,
Age = age,
Species = species,
});
Response.Redirect("Index");
}
[HttpGet]
public Tuple<AnimalViewModel>? GetAnimal(int animalId)
{
if (APIClient.Client == null)
{
throw new Exception("Вы как суда попали? Суда вход только авторизованным");
}
var result = APIClient.GetRequest<Tuple<AnimalViewModel>>($"api/animal/getanimal?animalId={animalId}");
if (result == null)
{
return default;
}
return result;
}
[HttpPost]
public void IndexAnimal(int id)
{
if (APIClient.Client == null)
{
throw new Exception("Вы как суда попали? Суда вход только авторизованным");
}
APIClient.PostRequest("api/animal/deleteanimal", new AnimalBindingModel
{
Id = id
});
Response.Redirect("Index");
}
//=================ПОСЕЩЕНИЯ=================
public IActionResult IndexDoctorVisit()
{
return View(new List<DoctorVisitViewModel>());

View File

@ -7,15 +7,15 @@
<form method="post">
<div class="row">
<div class="col-4">Кличка:</div>
<div class="col-8"><input type="text" name="title" id="title" /></div>
<div class="col-8"><input type="text" name="name" /></div>
</div>
<div class="row">
<div class="col-4">Вид:</div>
<div class="col-8"><input type="text" name="cost" id="cost" /></div>
<div class="col-8"><input type="text" name="species" /></div>
</div>
<div class="row">
<div class="col-4">Возраст:</div>
<div class="col-8"><input type="text" name="cost" id="cost" /></div>
<div class="col-8"><input type="text" name="age" /></div>
</div>
<div class="row">
<div class="col-8"></div>

View File

@ -20,6 +20,7 @@
}
<p>
<a asp-action="CreateAnimal">Создать животное</a>
<a asp-action="UpdateAnimal">Обновить животное</a>
</p>
<table class="table">
<thead>
@ -37,10 +38,7 @@
Возраст
</th>
<th>
Изменить деталь
</th>
<th>
Удалить деталь
Удалить животное
</th>
</tr>
</thead>
@ -61,10 +59,10 @@
@Html.DisplayFor(modelItem => item.Age)
</td>
<td>
<a asp-action="CreateAnimal" asp-route-id="@item.Id" class="btn btn-primary">Изменить</a>
</td>
<td>
<a asp-action="Delete" asp-route-id="@item.Id" class="btn btn-danger">Удалить</a>
<form method="post">
<input type="text" title="id" name="id" value="@item.Id" hidden="hidden" />
<input type="submit" class="btn btn-danger" value="Удалить" />
</form>
</td>
</tr>
}

View File

@ -0,0 +1,55 @@
@{
ViewData["Title"] = "UpdateAnimal";
}
<div class="text-center">
<h2 class="display-4">Редактирование животного</h2>
</div>
<form method="post">
<div class="row">
<div class="col-4">Животное:</div>
<div class="col-8">
<select id="pet" name="pet" class="form-control" asp-items="@(new SelectList(@ViewBag.Animals, "Id", "AnimalName"))"></select>
</div>
</div>
<div class="row">
<div class="col-4">Кличка:</div>
<div class="col-8"><input type="text" name="name" id="name"/></div>
</div>
<div class="row">
<div class="col-4">Вид:</div>
<div class="col-8"><input type="text" name="species" id="species" /></div>
</div>
<div class="row">
<div class="col-4">Возраст:</div>
<div class="col-8"><input type="text" name="age" id="age" /></div>
</div>
<div class="row">
<div class="col-8"></div>
<div class="col-4"><input type="submit" value="Сохранить" class="btn btn-primary" /></div>
</div>
</form>
@section Scripts
{
<script>
function check() {
var animal = $('#pet').val();
if (animal) {
$.ajax({
method: "GET",
url: "/Home/GetAnimal",
data: { animalId: animal },
success: function (result) {
$('#name').val(result.item1.animalName);
$('#age').val(result.item1.age);
$('#species').val(result.item1.species);
}
});
};
}
check();
$('#pet').on('change', function () {
check();
});
</script>
}