Работает привязка\отвязка курсов к рецептам в исполнителе
This commit is contained in:
parent
1c68c684c6
commit
00dbb2356c
@ -68,6 +68,10 @@ namespace PolyclinicDatabaseImplement.Models
|
|||||||
|
|
||||||
public void UpdateProcedures(PolyclinicDatabase database, RecipeBindingModel bindingModel)
|
public void UpdateProcedures(PolyclinicDatabase database, RecipeBindingModel bindingModel)
|
||||||
{
|
{
|
||||||
|
if (database.Procedures.Count() == 0)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
var RecipeProcedures = database.RecipeProcedures.Where(x => x.ProcedureId == bindingModel.Id).ToList();
|
var RecipeProcedures = database.RecipeProcedures.Where(x => x.ProcedureId == bindingModel.Id).ToList();
|
||||||
|
|
||||||
if (RecipeProcedures != null)
|
if (RecipeProcedures != null)
|
||||||
|
@ -0,0 +1,72 @@
|
|||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using PolyclinicBusinessLogic.BusinessLogics;
|
||||||
|
using PolyclinicContracts.BindingModels;
|
||||||
|
using PolyclinicContracts.BusinessLogicsContracts;
|
||||||
|
using PolyclinicContracts.SearchModels;
|
||||||
|
using PolyclinicWebAppImplementer.Models;
|
||||||
|
|
||||||
|
namespace PolyclinicWebAppImplementer.Controllers
|
||||||
|
{
|
||||||
|
public class RecipeController : Controller
|
||||||
|
{
|
||||||
|
private readonly IRecipeLogic _recipeLogic;
|
||||||
|
private readonly ICourseLogic _courseLogic;
|
||||||
|
|
||||||
|
public RecipeController(IRecipeLogic recipeLogic, ICourseLogic courseLogic)
|
||||||
|
{
|
||||||
|
_recipeLogic = recipeLogic;
|
||||||
|
_courseLogic = courseLogic;
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpGet]
|
||||||
|
[HttpPost]
|
||||||
|
public IActionResult LinkCourse(RecipeLinkCourseModel model)
|
||||||
|
{
|
||||||
|
var recipes = _recipeLogic.ReadList();
|
||||||
|
var courses = _courseLogic.ReadList();
|
||||||
|
var linkedRecipes = recipes
|
||||||
|
.Where(x => x.CourseId != null)
|
||||||
|
.Select(x => (x, _courseLogic.ReadElement(new CourseSearchModel { Id = x.CourseId }))).ToList();
|
||||||
|
|
||||||
|
if (HttpContext.Request.Method == "GET")
|
||||||
|
{
|
||||||
|
model = new()
|
||||||
|
{
|
||||||
|
Recipes = recipes,
|
||||||
|
Courses = courses,
|
||||||
|
LinkedRecipes = linkedRecipes
|
||||||
|
};
|
||||||
|
|
||||||
|
return View(model);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var recipe = _recipeLogic.ReadElement(new RecipeSearchModel { Id = model.RecipeId });
|
||||||
|
var recipeBindingModel = new RecipeBindingModel
|
||||||
|
{
|
||||||
|
Id = recipe.Id,
|
||||||
|
ProceduresCount = recipe.ProceduresCount,
|
||||||
|
Comment = recipe.Comment,
|
||||||
|
RecipeProcedures = recipe.RecipeProcedures,
|
||||||
|
CourseId = model.CourseId
|
||||||
|
};
|
||||||
|
_recipeLogic.Update(recipeBindingModel);
|
||||||
|
return RedirectToAction("LinkCourse");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
[HttpPost]
|
||||||
|
public IActionResult UnLinkCourse(int id)
|
||||||
|
{
|
||||||
|
var recipe = _recipeLogic.ReadElement(new RecipeSearchModel { Id = id });
|
||||||
|
var recipeBindingModel = new RecipeBindingModel
|
||||||
|
{
|
||||||
|
Id = recipe.Id,
|
||||||
|
ProceduresCount = recipe.ProceduresCount,
|
||||||
|
Comment = recipe.Comment,
|
||||||
|
RecipeProcedures = recipe.RecipeProcedures
|
||||||
|
};
|
||||||
|
_recipeLogic.Update(recipeBindingModel);
|
||||||
|
return RedirectToAction("LinkCourse");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
using PolyclinicContracts.ViewModels;
|
||||||
|
|
||||||
|
namespace PolyclinicWebAppImplementer.Models
|
||||||
|
{
|
||||||
|
public class RecipeLinkCourseModel
|
||||||
|
{
|
||||||
|
public List<RecipeViewModel> Recipes { get; set; } = new();
|
||||||
|
public List<CourseViewModel> Courses { get; set; } = new();
|
||||||
|
public int? RecipeId { get; set; }
|
||||||
|
public int? CourseId { get; set; }
|
||||||
|
public RecipeViewModel? Recipe { get; set; }
|
||||||
|
public CourseViewModel? Course { get; set; }
|
||||||
|
public List<(RecipeViewModel Recipe, CourseViewModel Course)> LinkedRecipes { get; set; } = new();
|
||||||
|
}
|
||||||
|
}
|
@ -9,7 +9,7 @@
|
|||||||
public static (string Controller, string Action, string Title, PageVisible Visible) Login = ("User", "Login", "Вход", PageVisible.AllowOnlyNotAuthorized);
|
public static (string Controller, string Action, string Title, PageVisible Visible) Login = ("User", "Login", "Вход", PageVisible.AllowOnlyNotAuthorized);
|
||||||
public static (string Controller, string Action, string Title, PageVisible Visible) Register = ("User", "Register", "Регистрация", PageVisible.AllowOnlyNotAuthorized);
|
public static (string Controller, string Action, string Title, PageVisible Visible) Register = ("User", "Register", "Регистрация", PageVisible.AllowOnlyNotAuthorized);
|
||||||
public static (string Controller, string Action, string Title, PageVisible Visible) Privacy = ("User", "Privacy", "Личный кабинет", PageVisible.AllowOnlyAuthorized);
|
public static (string Controller, string Action, string Title, PageVisible Visible) Privacy = ("User", "Privacy", "Личный кабинет", PageVisible.AllowOnlyAuthorized);
|
||||||
public static (string Controller, string Action, string Title, PageVisible Visible) AddRecipeToCourse = ("Home", "AddRecipeToCourse", "Привязка рецепта", PageVisible.AllowOnlyAuthorized);
|
public static (string Controller, string Action, string Title, PageVisible Visible) AddRecipeToCourse = ("Recipe", "LinkCourse", "Привязка рецептов", PageVisible.AllowOnlyAuthorized);
|
||||||
public static (string Controller, string Action, string Title, PageVisible Visible) MedicamentsByDiagnoses = ("Home", "MedicamentsByDiagnoses", "Лекарства по болезням", PageVisible.AllowOnlyAuthorized);
|
public static (string Controller, string Action, string Title, PageVisible Visible) MedicamentsByDiagnoses = ("Home", "MedicamentsByDiagnoses", "Лекарства по болезням", PageVisible.AllowOnlyAuthorized);
|
||||||
public static (string Controller, string Action, string Title, PageVisible Visible) DiagnosesReport = ("Home", "DiagnosesReport", "Отчет по болезням", PageVisible.AllowOnlyAuthorized);
|
public static (string Controller, string Action, string Title, PageVisible Visible) DiagnosesReport = ("Home", "DiagnosesReport", "Отчет по болезням", PageVisible.AllowOnlyAuthorized);
|
||||||
|
|
||||||
|
@ -1,41 +0,0 @@
|
|||||||
@{
|
|
||||||
ViewBag.SelectedSiteMenuItem = SiteMenuItems.AddRecipeToCourse;
|
|
||||||
}
|
|
||||||
<h4>Привязка рецепта к курсу</h4>
|
|
||||||
<form id="addrecipetocourse" method="post">
|
|
||||||
<div class="row mb-2">
|
|
||||||
<div class="col-3 d-flex align-content-center">
|
|
||||||
<h5 class="me-2">Рецепт</h5>
|
|
||||||
<select id="recipeId" name="recipeId" class="me-2">
|
|
||||||
<option value="">Выберите рецепт</option>
|
|
||||||
@{
|
|
||||||
for (int i = 0; i < 10; i++)
|
|
||||||
{
|
|
||||||
<option value="@i">Рецепт оууеее @i</option>
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row mb-2">
|
|
||||||
<div class="col-3 d-flex align-content-center">
|
|
||||||
<h5 class="me-2">Курс</h5>
|
|
||||||
<select id="courseId" name="courseId" class="me-2">
|
|
||||||
<option value="">Выберите курс</option>
|
|
||||||
@{
|
|
||||||
for (int i = 0; i < 10; i++)
|
|
||||||
{
|
|
||||||
<option value="@i">Какой то курс @i</option>
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row mb-2">
|
|
||||||
<div class="col-3">
|
|
||||||
<button class="btn btn-primary" type="submit">
|
|
||||||
Привязать
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
@ -0,0 +1,67 @@
|
|||||||
|
@model RecipeLinkCourseModel
|
||||||
|
@{
|
||||||
|
ViewBag.SelectedSiteMenuItem = SiteMenuItems.AddRecipeToCourse;
|
||||||
|
}
|
||||||
|
<h4>Привязка рецепта к курсу</h4>
|
||||||
|
<div class="row">
|
||||||
|
<form method="post" class="col">
|
||||||
|
<div class="row mb-2">
|
||||||
|
<div class="col-3 d-flex align-content-center">
|
||||||
|
<h5 class="me-2">Рецепт</h5>
|
||||||
|
<select required asp-for="@Model.RecipeId" class="me-2">
|
||||||
|
<option value="">Выберите рецепт</option>
|
||||||
|
@foreach (var item in Model.Recipes)
|
||||||
|
{
|
||||||
|
@if (item.CourseId == null)
|
||||||
|
{
|
||||||
|
<option value="@item.Id">#@item.Id @item.Comment</option>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mb-2">
|
||||||
|
<div class="col-3 d-flex align-content-center">
|
||||||
|
<h5 class="me-2">Курс</h5>
|
||||||
|
<select required asp-for="@Model.CourseId" class="me-2">
|
||||||
|
<option value="">Выберите курс</option>
|
||||||
|
@foreach (var item in Model.Courses)
|
||||||
|
{
|
||||||
|
<option value="@item.Id">#@item.Id @item.Comment</option>
|
||||||
|
}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mb-2">
|
||||||
|
<div class="col-3">
|
||||||
|
<button class="btn btn-primary" type="submit">
|
||||||
|
Привязать
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
<div class="col">
|
||||||
|
<h4>Привязанные рецепты</h4>
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<th>Рецепт</th>
|
||||||
|
<th>Курс</th>
|
||||||
|
<th></th>
|
||||||
|
</tr>
|
||||||
|
@foreach (var item in Model.LinkedRecipes)
|
||||||
|
{
|
||||||
|
<tr>
|
||||||
|
<td>#@item.Recipe.Id @item.Recipe.Comment</td>
|
||||||
|
<td>#@item.Course.Id @item.Course.Comment</td>
|
||||||
|
<td>
|
||||||
|
<form method="post" asp-action="UnLinkCourse" asp-route-id="@item.Recipe.Id">
|
||||||
|
<button class="btn btn-danger btm-sm" type="submit">
|
||||||
|
Отвязать
|
||||||
|
</button>
|
||||||
|
</form>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
}
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
Loading…
Reference in New Issue
Block a user