Minor changes
This commit is contained in:
parent
f57a08bc31
commit
11abd6a2a6
1
.gitignore
vendored
1
.gitignore
vendored
@ -14,6 +14,7 @@
|
||||
# User-specific files (MonoDevelop/Xamarin Studio)
|
||||
*.userprefs
|
||||
Reports
|
||||
Logs
|
||||
|
||||
# Mono auto generated files
|
||||
mono_crash.*
|
||||
|
@ -8,6 +8,7 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace HospitalBusinessLogics.BusinessLogics
|
||||
@ -159,9 +160,9 @@ namespace HospitalBusinessLogics.BusinessLogics
|
||||
{
|
||||
throw new ArgumentNullException("Не указано ФИО доктора", nameof(model.FullName));
|
||||
}
|
||||
if (string.IsNullOrEmpty(model.Email))
|
||||
if (string.IsNullOrEmpty(model.Email) || !Regex.IsMatch(model.Email, @"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$", RegexOptions.IgnoreCase))
|
||||
{
|
||||
throw new ArgumentNullException("Не указана электронная почта (логин)", nameof(model.Email));
|
||||
throw new ArgumentNullException("Невалидная электронная почта (логин)", nameof(model.Email));
|
||||
}
|
||||
if (string.IsNullOrEmpty(model.Password))
|
||||
{
|
||||
|
@ -34,5 +34,33 @@ namespace HospitalContracts.ViewModels
|
||||
/// Идентификатор рецепта
|
||||
/// </summary>
|
||||
public int RecipeId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Получить хэш-код
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public override int GetHashCode()
|
||||
{
|
||||
return Id.GetHashCode();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Сравнить объекты
|
||||
/// </summary>
|
||||
/// <param name="obj"></param>
|
||||
/// <returns></returns>
|
||||
public override bool Equals(object? obj)
|
||||
{
|
||||
if (this == obj)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (obj != null && obj is DiseaseViewModel other)
|
||||
{
|
||||
return this.Id == other.Id;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -29,5 +29,33 @@ namespace HospitalContracts.ViewModels
|
||||
/// </summary>
|
||||
[DisplayName("Описание лекарства")]
|
||||
public string? Description { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Получить хэш-код
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public override int GetHashCode()
|
||||
{
|
||||
return Id.GetHashCode();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Сравнить объекты
|
||||
/// </summary>
|
||||
/// <param name="obj"></param>
|
||||
/// <returns></returns>
|
||||
public override bool Equals(object? obj)
|
||||
{
|
||||
if (this == obj)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (obj != null && obj is MedicineViewModel other)
|
||||
{
|
||||
return this.Id == other.Id;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -38,5 +38,33 @@ namespace HospitalContracts.ViewModels
|
||||
get;
|
||||
set;
|
||||
} = new();
|
||||
|
||||
/// <summary>
|
||||
/// Получить хэш-код
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public override int GetHashCode()
|
||||
{
|
||||
return Id.GetHashCode();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Сравнить объекты
|
||||
/// </summary>
|
||||
/// <param name="obj"></param>
|
||||
/// <returns></returns>
|
||||
public override bool Equals(object? obj)
|
||||
{
|
||||
if (this == obj)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (obj != null && obj is ProcedureViewModel other)
|
||||
{
|
||||
return this.Id == other.Id;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -125,7 +125,7 @@ namespace HospitalDatabaseImplement.Implements
|
||||
return null;
|
||||
}
|
||||
|
||||
disease.Update(model);
|
||||
disease.Update(context, model);
|
||||
context.SaveChanges();
|
||||
return disease.GetViewModel;
|
||||
}
|
||||
|
@ -73,7 +73,7 @@ namespace HospitalDatabaseImplement.Models
|
||||
/// Изменить сущность
|
||||
/// </summary>
|
||||
/// <param name="model"></param>
|
||||
public void Update(DiseaseBindingModel model)
|
||||
public void Update(HospitalDatabase context, DiseaseBindingModel model)
|
||||
{
|
||||
if (model == null)
|
||||
{
|
||||
@ -82,7 +82,11 @@ namespace HospitalDatabaseImplement.Models
|
||||
|
||||
Name = model.Name;
|
||||
Symptoms = model.Symptoms;
|
||||
}
|
||||
RecipeId = model.RecipeId;
|
||||
Recipe = context.Recipes
|
||||
.First(x => x.Id == model.RecipeId);
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Получить модель представления
|
||||
|
@ -294,7 +294,7 @@ namespace HospitalWebApp.Controllers
|
||||
|
||||
var result = new
|
||||
{
|
||||
allRecipes = allRecipes.Select(r => new { id = r.Id, issueDate = r.IssueDate }),
|
||||
allRecipes = allRecipes.Select(r => new { id = r.Id, issueDate = r.IssueDate.ToShortDateString() }),
|
||||
patientRecipeIds = patientRecipeIds
|
||||
};
|
||||
|
||||
|
@ -8,6 +8,7 @@
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
||||
<PackageReference Include="NLog.Web.AspNetCore" Version="5.3.11" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
@ -7,12 +7,17 @@ using HospitalContracts.BusinessLogicsContracts;
|
||||
using HospitalContracts.StoragesContracts;
|
||||
using HospitalDatabaseImplement.Implements;
|
||||
using HospitalWebApp;
|
||||
using NLog.Extensions.Logging;
|
||||
|
||||
var builder = WebApplication.CreateBuilder(args);
|
||||
|
||||
// Add services to the container.
|
||||
builder.Services.AddControllersWithViews();
|
||||
|
||||
// Logger service
|
||||
builder.Logging.SetMinimumLevel(LogLevel.Trace);
|
||||
builder.Logging.AddNLog("nlog.config");
|
||||
|
||||
// Storage services
|
||||
builder.Services.AddTransient<IDoctorStorage, DoctorStorage>();
|
||||
builder.Services.AddTransient<IPatientStorage, PatientStorage>();
|
||||
|
@ -26,7 +26,7 @@
|
||||
<select name="recipe" id="recipe" class="form-control">
|
||||
@foreach (var recipe in ViewBag.Recipes)
|
||||
{
|
||||
<option value="@recipe.Id">@recipe.Id - @recipe.IssueDate</option>
|
||||
<option value="@recipe.Id">@recipe.Id - @recipe.IssueDate.ToShortDateString()</option>
|
||||
}
|
||||
</select>
|
||||
</div>
|
||||
|
@ -38,10 +38,10 @@
|
||||
@foreach (var disease in Model)
|
||||
{
|
||||
<tr>
|
||||
<td>@Html.DisplayFor(modelItem => disease.Id)</td>
|
||||
<td>@Html.DisplayFor(modelItem => disease.Name)</td>
|
||||
<td>@Html.DisplayFor(modelItem => disease.Symptoms)</td>
|
||||
<td>@Html.DisplayFor(modelItem => disease.RecipeId)</td>
|
||||
<th>@disease.Id</th>
|
||||
<td>@disease.Name</td>
|
||||
<td>@disease.Symptoms</td>
|
||||
<td>@disease.RecipeId</td>
|
||||
<td>
|
||||
<p><button type="button" class="btn btn-primary" onclick="location.href='@Url.Action("UpdateDisease", "/Disease", new { id = disease.Id })'">Изменить</button></p>
|
||||
</td>
|
||||
|
@ -31,7 +31,7 @@
|
||||
@foreach (var recipe in ViewBag.Recipes)
|
||||
{
|
||||
var isSelected = Model.RecipeId.Equals(recipe.Id);
|
||||
<option value="@recipe.Id" selected="@isSelected">@recipe.Id - @recipe.IssueDate</option>
|
||||
<option value="@recipe.Id" selected="@isSelected">@recipe.Id - @recipe.IssueDate.ToShortDateString()</option>
|
||||
}
|
||||
</select>
|
||||
</div>
|
||||
|
@ -34,7 +34,7 @@
|
||||
</div>
|
||||
|
||||
<!-- Действия для отчета в формате Pdf -->
|
||||
<div class="d-flex justify-content-around">
|
||||
<div class="d-flex justify-content-between">
|
||||
<!-- Сохранить отчет в формате Pdf -->
|
||||
<div class="text-center">
|
||||
<button type="submit" class="btn btn-primary" formaction="@Url.Action("CreateReportPdf", "Home")">Сведения о пациентах Pdf</button>
|
||||
|
@ -37,9 +37,9 @@
|
||||
@foreach (var medicine in Model)
|
||||
{
|
||||
<tr>
|
||||
<td>@Html.DisplayFor(modelItem => medicine.Id)</td>
|
||||
<td>@Html.DisplayFor(modelItem => medicine.Name)</td>
|
||||
<td>@Html.DisplayFor(modelItem => medicine.Description)</td>
|
||||
<th>@medicine.Id</th>
|
||||
<td>@medicine.Name</td>
|
||||
<td>@medicine.Description</td>
|
||||
<td>
|
||||
<p><button type="button" class="btn btn-primary" onclick="location.href='@Url.Action("UpdateMedicine", "/Medicine", new { id = medicine.Id })'">Изменить</button></p>
|
||||
</td>
|
||||
|
@ -27,7 +27,7 @@
|
||||
<select name="recipes" id="recipes" class="form-control" size="4" multiple>
|
||||
@foreach (var recipe in ViewBag.Recipes)
|
||||
{
|
||||
<option value="@recipe.Id">@recipe.Id - @recipe.IssueDate</option>
|
||||
<option value="@recipe.Id">@recipe.Id - @recipe.IssueDate.ToShortDateString()</option>
|
||||
}
|
||||
</select>
|
||||
</div>
|
||||
|
@ -39,11 +39,11 @@
|
||||
@foreach (var patient in Model)
|
||||
{
|
||||
<tr>
|
||||
<td>@Html.DisplayFor(modelItem => patient.Id)</td>
|
||||
<td>@Html.DisplayFor(modelItem => patient.FullName)</td>
|
||||
<td>@Html.DisplayFor(modelItem => patient.BirthDate)</td>
|
||||
<td>@Html.DisplayFor(modelItem => patient.Phone)</td>
|
||||
<td>@Html.DisplayFor(modelItem => patient.DoctorFullName)</td>
|
||||
<th>@patient.Id</th>
|
||||
<td>@patient.FullName</td>
|
||||
<td>@patient.BirthDate.ToShortDateString()</td>
|
||||
<td>@patient.Phone</td>
|
||||
<td>@patient.DoctorFullName</td>
|
||||
<td>
|
||||
<p><button type="button" class="btn btn-primary" onclick="location.href='@Url.Action("UpdatePatient", "/Patient", new { id = patient.Id })'">Изменить</button></p>
|
||||
</td>
|
||||
|
@ -37,9 +37,9 @@
|
||||
@foreach (var procedure in Model)
|
||||
{
|
||||
<tr>
|
||||
<td>@Html.DisplayFor(modelItem => procedure.Id)</td>
|
||||
<td>@Html.DisplayFor(modelItem => procedure.Name)</td>
|
||||
<td>@Html.DisplayFor(modelItem => procedure.Description)</td>
|
||||
<th>@procedure.Id</th>
|
||||
<td>@procedure.Name</td>
|
||||
<td>@procedure.Description</td>
|
||||
<td>
|
||||
<p><button type="button" class="btn btn-primary" onclick="location.href='@Url.Action("UpdateProcedure", "/Procedure", new { id = procedure.Id })'">Изменить</button></p>
|
||||
</td>
|
||||
|
@ -37,9 +37,9 @@
|
||||
@foreach (var recipe in Model)
|
||||
{
|
||||
<tr>
|
||||
<td>@Html.DisplayFor(modelItem => recipe.Id)</td>
|
||||
<td>@Html.DisplayFor(modelItem => recipe.IssueDate)</td>
|
||||
<td>@Html.DisplayFor(modelItem => recipe.DoctorFullName)</td>
|
||||
<th>@recipe.Id</th>
|
||||
<td>@recipe.IssueDate.ToShortDateString()</td>
|
||||
<td>@recipe.DoctorFullName</td>
|
||||
<td>
|
||||
<p><button type="button" class="btn btn-primary" onclick="location.href='@Url.Action("UpdateRecipe", "/Recipe", new { id = recipe.Id })'">Изменить</button></p>
|
||||
</td>
|
||||
|
15
Hospital/HospitalWebApp/nlog.config
Normal file
15
Hospital/HospitalWebApp/nlog.config
Normal file
@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<configuration>
|
||||
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
autoReload="true" internalLogLevel="Info">
|
||||
|
||||
<targets>
|
||||
<target xsi:type="File" name="tofile" fileName="D:\ULSTU\Семестр 4\РПП Coursework\Hospital\Logs/log-${shortdate}.log" />
|
||||
</targets>
|
||||
|
||||
<rules>
|
||||
<logger name="*" minLevel="Debug" writeTo="tofile" />
|
||||
</rules>
|
||||
</nlog>
|
||||
</configuration>
|
Loading…
Reference in New Issue
Block a user