Добавил выбор животных
This commit is contained in:
parent
b6f19b7c54
commit
8b529366f0
@ -10,6 +10,7 @@ using VeterinaryClinicContracts.BusinessLogicsContracts;
|
||||
using VeterinaryClinicContracts.SearchModels;
|
||||
using VeterinaryClinicContracts.StoragesContracts;
|
||||
using VeterinaryClinicContracts.ViewModels;
|
||||
using VeterinaryClinicDataModels.Models;
|
||||
|
||||
namespace VeterinaryClinicBusinessLogics.BusinessLogics
|
||||
{
|
||||
@ -73,35 +74,38 @@ namespace VeterinaryClinicBusinessLogics.BusinessLogics
|
||||
// Проходим по списку полученных животных
|
||||
foreach (var animal in animals)
|
||||
{
|
||||
// Создаём запись
|
||||
var record = new ReportAnimalServicesViewModel
|
||||
if (model.VisitAnimals.ContainsKey(animal.Id))
|
||||
{
|
||||
Animal = animal,
|
||||
// HashSet используется для того, чтобы не повторялись процедуры
|
||||
Services = new HashSet<ServiceViewModel>()
|
||||
};
|
||||
|
||||
// Проходим по списку всех визитов
|
||||
foreach (var visit in visits)
|
||||
{
|
||||
// Проверяем есть ли у визита текущее животное
|
||||
if (visit.VisitAnimals.ContainsKey(animal.Id))
|
||||
// Создаём запись
|
||||
var record = new ReportAnimalServicesViewModel
|
||||
{
|
||||
// Если есть, то проходим по списку всех услуг визита
|
||||
foreach (var serviceId in visit.VisitServices.Keys)
|
||||
Animal = animal,
|
||||
// HashSet используется для того, чтобы не повторялись процедуры
|
||||
Services = new HashSet<ServiceViewModel>()
|
||||
};
|
||||
|
||||
// Проходим по списку всех визитов
|
||||
foreach (var visit in visits)
|
||||
{
|
||||
// Проверяем есть ли у визита текущее животное
|
||||
if (visit.VisitAnimals.ContainsKey(animal.Id))
|
||||
{
|
||||
// Находим услугу и добавляем в список услуг
|
||||
var service = _serviceStorage.GetElement(new ServiceSearchModel
|
||||
// Если есть, то проходим по списку всех услуг визита
|
||||
foreach (var serviceId in visit.VisitServices.Keys)
|
||||
{
|
||||
Id = serviceId
|
||||
});
|
||||
record.Services.Add(service!);
|
||||
// Находим услугу и добавляем в список услуг
|
||||
var service = _serviceStorage.GetElement(new ServiceSearchModel
|
||||
{
|
||||
Id = serviceId
|
||||
});
|
||||
record.Services.Add(service!);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Добавляем запись
|
||||
result.Add(record);
|
||||
// Добавляем запись
|
||||
result.Add(record);
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
|
@ -3,6 +3,7 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using VeterinaryClinicDataModels.Models;
|
||||
|
||||
namespace VeterinaryClinicContracts.BindingModels
|
||||
{
|
||||
@ -30,5 +31,7 @@ namespace VeterinaryClinicContracts.BindingModels
|
||||
/// Идентификатор пользователя
|
||||
/// </summary>
|
||||
public int UserId { get; set; }
|
||||
|
||||
public Dictionary<int, IAnimalModel> VisitAnimals { get; set; } = new();
|
||||
}
|
||||
}
|
||||
|
@ -5,6 +5,7 @@ using VeterinaryClinicContracts.BindingModels;
|
||||
using VeterinaryClinicContracts.BusinessLogicsContracts;
|
||||
using VeterinaryClinicContracts.SearchModels;
|
||||
using VeterinaryClinicDataModels.Enums;
|
||||
using VeterinaryClinicDataModels.Models;
|
||||
using VeterinaryClinicWebApp.Models;
|
||||
using static System.Runtime.InteropServices.JavaScript.JSType;
|
||||
|
||||
@ -189,6 +190,11 @@ public class HomeController : Controller
|
||||
return Redirect("~/Home/Enter");
|
||||
}
|
||||
|
||||
ViewBag.Animals = _animalLogic.ReadList(new AnimalSearchModel
|
||||
{
|
||||
UserId = APIClient.User.Id
|
||||
});
|
||||
|
||||
return View();
|
||||
}
|
||||
|
||||
@ -222,17 +228,24 @@ public class HomeController : Controller
|
||||
/// Ñîçäàòü îò÷¸ò â ôîðìàòå Word
|
||||
/// </summary>
|
||||
[HttpPost]
|
||||
public void CreateReportWord()
|
||||
public void CreateReportWord(List<int> animals)
|
||||
{
|
||||
if (APIClient.User == null)
|
||||
{
|
||||
throw new Exception("Íåîáõîäèìî àâòîðèçîâàòüñÿ!");
|
||||
}
|
||||
|
||||
Dictionary<int, IAnimalModel> visitAnimals = new Dictionary<int, IAnimalModel>();
|
||||
foreach (var animalId in animals)
|
||||
{
|
||||
visitAnimals.Add(animalId, _animalLogic.ReadElement(new AnimalSearchModel { Id = animalId })!);
|
||||
}
|
||||
|
||||
_reportLogic.SaveAnimalServicesToWordFile(new ReportBindingModel
|
||||
{
|
||||
FileName = $@"D:\ {DateTime.Now.ToString("dd-MM-yyyy HH-mm-ss")}.docx",
|
||||
UserId = APIClient.User.Id
|
||||
UserId = APIClient.User.Id,
|
||||
VisitAnimals = visitAnimals
|
||||
});
|
||||
|
||||
Response.Redirect("/Home/Reports");
|
||||
@ -242,17 +255,24 @@ public class HomeController : Controller
|
||||
/// Ñîçäàòü îò÷¸ò â ôîðìàòå Excel
|
||||
/// </summary>
|
||||
[HttpPost]
|
||||
public void CreateReportExcel()
|
||||
public void CreateReportExcel(List<int> animals)
|
||||
{
|
||||
if (APIClient.User == null)
|
||||
{
|
||||
throw new Exception("Íåîáõîäèìî àâòîðèçîâàòüñÿ!");
|
||||
}
|
||||
|
||||
Dictionary<int, IAnimalModel> visitAnimals = new Dictionary<int, IAnimalModel>();
|
||||
foreach (var animalId in animals)
|
||||
{
|
||||
visitAnimals.Add(animalId, _animalLogic.ReadElement(new AnimalSearchModel { Id = animalId })!);
|
||||
}
|
||||
|
||||
_reportLogic.SaveAnimalServicesToExcelFile(new ReportBindingModel
|
||||
{
|
||||
FileName = $@"D:\ {DateTime.Now.ToString("dd-MM-yyyy HH-mm-ss")}.xlsx",
|
||||
UserId = APIClient.User.Id
|
||||
UserId = APIClient.User.Id,
|
||||
VisitAnimals = visitAnimals
|
||||
});
|
||||
|
||||
Response.Redirect("/Home/Reports");
|
||||
|
@ -13,6 +13,18 @@
|
||||
<form method="post" enctype="multipart/form-data" style="margin-top: 50px">
|
||||
<!-- Сохранить отчеты в формате Word и Excel -->
|
||||
<div class="d-flex justify-content-center" style="gap: 30px">
|
||||
<!-- Животные -->
|
||||
<div class="row">
|
||||
<div class="col-4">Животные:</div>
|
||||
<div class="col-8">
|
||||
<select name="animals" id="animals" class="form-control" size="4" multiple>
|
||||
@foreach (var animal in ViewBag.Animals)
|
||||
{
|
||||
<option value="@animal.Id">@animal.Breed - @animal.Age</option>
|
||||
}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-center">
|
||||
<button type="submit" class="btn btn-primary" formaction="@Url.Action("CreateReportWord", "Home")">Список услуг Word</button>
|
||||
</div>
|
||||
|
Loading…
Reference in New Issue
Block a user