diff --git a/VetClinic/VetClinicAdminApi/APIAdmin.cs b/VetClinic/VetClinicAdminApp/APIAdmin.cs similarity index 100% rename from VetClinic/VetClinicAdminApi/APIAdmin.cs rename to VetClinic/VetClinicAdminApp/APIAdmin.cs diff --git a/VetClinic/VetClinicAdminApi/Controllers/HomeController.cs b/VetClinic/VetClinicAdminApp/Controllers/HomeController.cs similarity index 100% rename from VetClinic/VetClinicAdminApi/Controllers/HomeController.cs rename to VetClinic/VetClinicAdminApp/Controllers/HomeController.cs diff --git a/VetClinic/VetClinicAdminApi/Models/ErrorViewModel.cs b/VetClinic/VetClinicAdminApp/Models/ErrorViewModel.cs similarity index 100% rename from VetClinic/VetClinicAdminApi/Models/ErrorViewModel.cs rename to VetClinic/VetClinicAdminApp/Models/ErrorViewModel.cs diff --git a/VetClinic/VetClinicAdminApi/Program.cs b/VetClinic/VetClinicAdminApp/Program.cs similarity index 100% rename from VetClinic/VetClinicAdminApi/Program.cs rename to VetClinic/VetClinicAdminApp/Program.cs diff --git a/VetClinic/VetClinicAdminApi/Properties/launchSettings.json b/VetClinic/VetClinicAdminApp/Properties/launchSettings.json similarity index 100% rename from VetClinic/VetClinicAdminApi/Properties/launchSettings.json rename to VetClinic/VetClinicAdminApp/Properties/launchSettings.json diff --git a/VetClinic/VetClinicAdminApi/VetClinicAdminApp.csproj b/VetClinic/VetClinicAdminApp/VetClinicAdminApp.csproj similarity index 100% rename from VetClinic/VetClinicAdminApi/VetClinicAdminApp.csproj rename to VetClinic/VetClinicAdminApp/VetClinicAdminApp.csproj diff --git a/VetClinic/VetClinicAdminApi/Views/Home/Create.cshtml b/VetClinic/VetClinicAdminApp/Views/Home/Create.cshtml similarity index 100% rename from VetClinic/VetClinicAdminApi/Views/Home/Create.cshtml rename to VetClinic/VetClinicAdminApp/Views/Home/Create.cshtml diff --git a/VetClinic/VetClinicAdminApi/Views/Home/CreateAnimal.cshtml b/VetClinic/VetClinicAdminApp/Views/Home/CreateAnimal.cshtml similarity index 100% rename from VetClinic/VetClinicAdminApi/Views/Home/CreateAnimal.cshtml rename to VetClinic/VetClinicAdminApp/Views/Home/CreateAnimal.cshtml diff --git a/VetClinic/VetClinicAdminApi/Views/Home/CreateVaccination.cshtml b/VetClinic/VetClinicAdminApp/Views/Home/CreateVaccination.cshtml similarity index 100% rename from VetClinic/VetClinicAdminApi/Views/Home/CreateVaccination.cshtml rename to VetClinic/VetClinicAdminApp/Views/Home/CreateVaccination.cshtml diff --git a/VetClinic/VetClinicAdminApi/Views/Home/Delete.cshtml b/VetClinic/VetClinicAdminApp/Views/Home/Delete.cshtml similarity index 100% rename from VetClinic/VetClinicAdminApi/Views/Home/Delete.cshtml rename to VetClinic/VetClinicAdminApp/Views/Home/Delete.cshtml diff --git a/VetClinic/VetClinicAdminApi/Views/Home/DeleteAnimal.cshtml b/VetClinic/VetClinicAdminApp/Views/Home/DeleteAnimal.cshtml similarity index 100% rename from VetClinic/VetClinicAdminApi/Views/Home/DeleteAnimal.cshtml rename to VetClinic/VetClinicAdminApp/Views/Home/DeleteAnimal.cshtml diff --git a/VetClinic/VetClinicAdminApi/Views/Home/DeleteVaccination.cshtml b/VetClinic/VetClinicAdminApp/Views/Home/DeleteVaccination.cshtml similarity index 100% rename from VetClinic/VetClinicAdminApi/Views/Home/DeleteVaccination.cshtml rename to VetClinic/VetClinicAdminApp/Views/Home/DeleteVaccination.cshtml diff --git a/VetClinic/VetClinicAdminApi/Views/Home/Enter.cshtml b/VetClinic/VetClinicAdminApp/Views/Home/Enter.cshtml similarity index 100% rename from VetClinic/VetClinicAdminApi/Views/Home/Enter.cshtml rename to VetClinic/VetClinicAdminApp/Views/Home/Enter.cshtml diff --git a/VetClinic/VetClinicAdminApi/Views/Home/Index.cshtml b/VetClinic/VetClinicAdminApp/Views/Home/Index.cshtml similarity index 100% rename from VetClinic/VetClinicAdminApi/Views/Home/Index.cshtml rename to VetClinic/VetClinicAdminApp/Views/Home/Index.cshtml diff --git a/VetClinic/VetClinicAdminApi/Views/Home/IndexAnimals.cshtml b/VetClinic/VetClinicAdminApp/Views/Home/IndexAnimals.cshtml similarity index 100% rename from VetClinic/VetClinicAdminApi/Views/Home/IndexAnimals.cshtml rename to VetClinic/VetClinicAdminApp/Views/Home/IndexAnimals.cshtml diff --git a/VetClinic/VetClinicAdminApi/Views/Home/IndexVaccinations.cshtml b/VetClinic/VetClinicAdminApp/Views/Home/IndexVaccinations.cshtml similarity index 100% rename from VetClinic/VetClinicAdminApi/Views/Home/IndexVaccinations.cshtml rename to VetClinic/VetClinicAdminApp/Views/Home/IndexVaccinations.cshtml diff --git a/VetClinic/VetClinicAdminApi/Views/Home/Privacy.cshtml b/VetClinic/VetClinicAdminApp/Views/Home/Privacy.cshtml similarity index 100% rename from VetClinic/VetClinicAdminApi/Views/Home/Privacy.cshtml rename to VetClinic/VetClinicAdminApp/Views/Home/Privacy.cshtml diff --git a/VetClinic/VetClinicAdminApi/Views/Home/Register.cshtml b/VetClinic/VetClinicAdminApp/Views/Home/Register.cshtml similarity index 100% rename from VetClinic/VetClinicAdminApi/Views/Home/Register.cshtml rename to VetClinic/VetClinicAdminApp/Views/Home/Register.cshtml diff --git a/VetClinic/VetClinicAdminApi/Views/Home/Report.cshtml b/VetClinic/VetClinicAdminApp/Views/Home/Report.cshtml similarity index 100% rename from VetClinic/VetClinicAdminApi/Views/Home/Report.cshtml rename to VetClinic/VetClinicAdminApp/Views/Home/Report.cshtml diff --git a/VetClinic/VetClinicAdminApi/Views/Home/ServiceListReport.cshtml b/VetClinic/VetClinicAdminApp/Views/Home/ServiceListReport.cshtml similarity index 100% rename from VetClinic/VetClinicAdminApi/Views/Home/ServiceListReport.cshtml rename to VetClinic/VetClinicAdminApp/Views/Home/ServiceListReport.cshtml diff --git a/VetClinic/VetClinicAdminApi/Views/Home/Update.cshtml b/VetClinic/VetClinicAdminApp/Views/Home/Update.cshtml similarity index 100% rename from VetClinic/VetClinicAdminApi/Views/Home/Update.cshtml rename to VetClinic/VetClinicAdminApp/Views/Home/Update.cshtml diff --git a/VetClinic/VetClinicAdminApi/Views/Home/UpdateAnimal.cshtml b/VetClinic/VetClinicAdminApp/Views/Home/UpdateAnimal.cshtml similarity index 100% rename from VetClinic/VetClinicAdminApi/Views/Home/UpdateAnimal.cshtml rename to VetClinic/VetClinicAdminApp/Views/Home/UpdateAnimal.cshtml diff --git a/VetClinic/VetClinicAdminApi/Views/Home/UpdateVaccination.cshtml b/VetClinic/VetClinicAdminApp/Views/Home/UpdateVaccination.cshtml similarity index 100% rename from VetClinic/VetClinicAdminApi/Views/Home/UpdateVaccination.cshtml rename to VetClinic/VetClinicAdminApp/Views/Home/UpdateVaccination.cshtml diff --git a/VetClinic/VetClinicAdminApi/Views/Home/VisitAnimals.cshtml b/VetClinic/VetClinicAdminApp/Views/Home/VisitAnimals.cshtml similarity index 100% rename from VetClinic/VetClinicAdminApi/Views/Home/VisitAnimals.cshtml rename to VetClinic/VetClinicAdminApp/Views/Home/VisitAnimals.cshtml diff --git a/VetClinic/VetClinicAdminApi/Views/Shared/Error.cshtml b/VetClinic/VetClinicAdminApp/Views/Shared/Error.cshtml similarity index 100% rename from VetClinic/VetClinicAdminApi/Views/Shared/Error.cshtml rename to VetClinic/VetClinicAdminApp/Views/Shared/Error.cshtml diff --git a/VetClinic/VetClinicAdminApi/Views/Shared/_Layout.cshtml b/VetClinic/VetClinicAdminApp/Views/Shared/_Layout.cshtml similarity index 100% rename from VetClinic/VetClinicAdminApi/Views/Shared/_Layout.cshtml rename to VetClinic/VetClinicAdminApp/Views/Shared/_Layout.cshtml diff --git a/VetClinic/VetClinicAdminApi/Views/Shared/_Layout.cshtml.css b/VetClinic/VetClinicAdminApp/Views/Shared/_Layout.cshtml.css similarity index 100% rename from VetClinic/VetClinicAdminApi/Views/Shared/_Layout.cshtml.css rename to VetClinic/VetClinicAdminApp/Views/Shared/_Layout.cshtml.css diff --git a/VetClinic/VetClinicAdminApi/Views/Shared/_ValidationScriptsPartial.cshtml b/VetClinic/VetClinicAdminApp/Views/Shared/_ValidationScriptsPartial.cshtml similarity index 100% rename from VetClinic/VetClinicAdminApi/Views/Shared/_ValidationScriptsPartial.cshtml rename to VetClinic/VetClinicAdminApp/Views/Shared/_ValidationScriptsPartial.cshtml diff --git a/VetClinic/VetClinicAdminApi/Views/_ViewImports.cshtml b/VetClinic/VetClinicAdminApp/Views/_ViewImports.cshtml similarity index 100% rename from VetClinic/VetClinicAdminApi/Views/_ViewImports.cshtml rename to VetClinic/VetClinicAdminApp/Views/_ViewImports.cshtml diff --git a/VetClinic/VetClinicAdminApi/Views/_ViewStart.cshtml b/VetClinic/VetClinicAdminApp/Views/_ViewStart.cshtml similarity index 100% rename from VetClinic/VetClinicAdminApi/Views/_ViewStart.cshtml rename to VetClinic/VetClinicAdminApp/Views/_ViewStart.cshtml diff --git a/VetClinic/VetClinicAdminApi/appsettings.Development.json b/VetClinic/VetClinicAdminApp/appsettings.Development.json similarity index 100% rename from VetClinic/VetClinicAdminApi/appsettings.Development.json rename to VetClinic/VetClinicAdminApp/appsettings.Development.json diff --git a/VetClinic/VetClinicAdminApi/appsettings.json b/VetClinic/VetClinicAdminApp/appsettings.json similarity index 100% rename from VetClinic/VetClinicAdminApi/appsettings.json rename to VetClinic/VetClinicAdminApp/appsettings.json diff --git a/VetClinic/VetClinicAdminApi/wwwroot/css/site.css b/VetClinic/VetClinicAdminApp/wwwroot/css/site.css similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/css/site.css rename to VetClinic/VetClinicAdminApp/wwwroot/css/site.css diff --git a/VetClinic/VetClinicAdminApi/wwwroot/favicon.ico b/VetClinic/VetClinicAdminApp/wwwroot/favicon.ico similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/favicon.ico rename to VetClinic/VetClinicAdminApp/wwwroot/favicon.ico diff --git a/VetClinic/VetClinicAdminApi/wwwroot/js/site.js b/VetClinic/VetClinicAdminApp/wwwroot/js/site.js similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/js/site.js rename to VetClinic/VetClinicAdminApp/wwwroot/js/site.js diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/LICENSE b/VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/LICENSE similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/LICENSE rename to VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/LICENSE diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css b/VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css rename to VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css.map b/VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css.map similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css.map rename to VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css.map diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css b/VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css rename to VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css.map b/VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css.map similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css.map rename to VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css.map diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css b/VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css rename to VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css.map b/VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css.map similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css.map rename to VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css.map diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css b/VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css rename to VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css.map b/VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css.map similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css.map rename to VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css.map diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css b/VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css rename to VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css.map b/VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css.map similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css.map rename to VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css.map diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css b/VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css rename to VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css.map b/VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css.map similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css.map rename to VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css.map diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css b/VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css rename to VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css.map b/VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css.map similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css.map rename to VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css.map diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css b/VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css rename to VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css.map b/VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css.map similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css.map rename to VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css.map diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css b/VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css rename to VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css.map b/VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css.map similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css.map rename to VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css.map diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css b/VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css rename to VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css.map b/VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css.map similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css.map rename to VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css.map diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css b/VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css rename to VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css.map b/VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css.map similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css.map rename to VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css.map diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css b/VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css rename to VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css.map b/VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css.map similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css.map rename to VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css.map diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap.css b/VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap.css similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap.css rename to VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap.css diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map b/VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map rename to VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css b/VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css rename to VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map b/VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map rename to VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css b/VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css rename to VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css.map b/VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css.map similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css.map rename to VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css.map diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css b/VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css rename to VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css.map b/VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css.map similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css.map rename to VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css.map diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js b/VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js rename to VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map b/VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map rename to VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js b/VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js rename to VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map b/VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map rename to VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js b/VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js rename to VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js.map b/VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js.map similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js.map rename to VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js.map diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js b/VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js rename to VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js.map b/VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js.map similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js.map rename to VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js.map diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/js/bootstrap.js b/VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/js/bootstrap.js similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/js/bootstrap.js rename to VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/js/bootstrap.js diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/js/bootstrap.js.map b/VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/js/bootstrap.js.map similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/js/bootstrap.js.map rename to VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/js/bootstrap.js.map diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js b/VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js rename to VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js.map b/VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js.map similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js.map rename to VetClinic/VetClinicAdminApp/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js.map diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/jquery-validation-unobtrusive/LICENSE.txt b/VetClinic/VetClinicAdminApp/wwwroot/lib/jquery-validation-unobtrusive/LICENSE.txt similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/jquery-validation-unobtrusive/LICENSE.txt rename to VetClinic/VetClinicAdminApp/wwwroot/lib/jquery-validation-unobtrusive/LICENSE.txt diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js b/VetClinic/VetClinicAdminApp/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js rename to VetClinic/VetClinicAdminApp/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js b/VetClinic/VetClinicAdminApp/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js rename to VetClinic/VetClinicAdminApp/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/jquery-validation/LICENSE.md b/VetClinic/VetClinicAdminApp/wwwroot/lib/jquery-validation/LICENSE.md similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/jquery-validation/LICENSE.md rename to VetClinic/VetClinicAdminApp/wwwroot/lib/jquery-validation/LICENSE.md diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/jquery-validation/dist/additional-methods.js b/VetClinic/VetClinicAdminApp/wwwroot/lib/jquery-validation/dist/additional-methods.js similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/jquery-validation/dist/additional-methods.js rename to VetClinic/VetClinicAdminApp/wwwroot/lib/jquery-validation/dist/additional-methods.js diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/jquery-validation/dist/additional-methods.min.js b/VetClinic/VetClinicAdminApp/wwwroot/lib/jquery-validation/dist/additional-methods.min.js similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/jquery-validation/dist/additional-methods.min.js rename to VetClinic/VetClinicAdminApp/wwwroot/lib/jquery-validation/dist/additional-methods.min.js diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/jquery-validation/dist/jquery.validate.js b/VetClinic/VetClinicAdminApp/wwwroot/lib/jquery-validation/dist/jquery.validate.js similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/jquery-validation/dist/jquery.validate.js rename to VetClinic/VetClinicAdminApp/wwwroot/lib/jquery-validation/dist/jquery.validate.js diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/jquery-validation/dist/jquery.validate.min.js b/VetClinic/VetClinicAdminApp/wwwroot/lib/jquery-validation/dist/jquery.validate.min.js similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/jquery-validation/dist/jquery.validate.min.js rename to VetClinic/VetClinicAdminApp/wwwroot/lib/jquery-validation/dist/jquery.validate.min.js diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/jquery/LICENSE.txt b/VetClinic/VetClinicAdminApp/wwwroot/lib/jquery/LICENSE.txt similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/jquery/LICENSE.txt rename to VetClinic/VetClinicAdminApp/wwwroot/lib/jquery/LICENSE.txt diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/jquery/dist/jquery.js b/VetClinic/VetClinicAdminApp/wwwroot/lib/jquery/dist/jquery.js similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/jquery/dist/jquery.js rename to VetClinic/VetClinicAdminApp/wwwroot/lib/jquery/dist/jquery.js diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/jquery/dist/jquery.min.js b/VetClinic/VetClinicAdminApp/wwwroot/lib/jquery/dist/jquery.min.js similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/jquery/dist/jquery.min.js rename to VetClinic/VetClinicAdminApp/wwwroot/lib/jquery/dist/jquery.min.js diff --git a/VetClinic/VetClinicAdminApi/wwwroot/lib/jquery/dist/jquery.min.map b/VetClinic/VetClinicAdminApp/wwwroot/lib/jquery/dist/jquery.min.map similarity index 100% rename from VetClinic/VetClinicAdminApi/wwwroot/lib/jquery/dist/jquery.min.map rename to VetClinic/VetClinicAdminApp/wwwroot/lib/jquery/dist/jquery.min.map diff --git a/VetClinic/VetClinicContracts/BindingModels/ListServicesBindingModel.cs b/VetClinic/VetClinicContracts/BindingModels/ListServicesBindingModel.cs new file mode 100644 index 0000000..46b39b2 --- /dev/null +++ b/VetClinic/VetClinicContracts/BindingModels/ListServicesBindingModel.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace VetClinicContracts.BindingModels +{ + public class ListServicesBindingModel + { + public string FileName { get; set; } = string.Empty; + public List Animals { get; set; } = new(); + } +} diff --git a/VetClinic/VetClinicContracts/BindingModels/MedicineVaccinationsBindingModel.cs b/VetClinic/VetClinicContracts/BindingModels/MedicineVaccinationsBindingModel.cs new file mode 100644 index 0000000..75e5cdd --- /dev/null +++ b/VetClinic/VetClinicContracts/BindingModels/MedicineVaccinationsBindingModel.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace VetClinicContracts.BindingModels +{ + public class MedicineVaccinationsBindingModel + { + public string FileName { get; set; } = string.Empty; + public List Visits { get; set; } = new(); + DateTime DateFrom { get; set; } = DateTime.Now; + DateTime DateTo { get; set; } = DateTime.Now; + } +} diff --git a/VetClinic/VetClinicContracts/BusinessLogicsContracts/IReportLogicAdmin.cs b/VetClinic/VetClinicContracts/BusinessLogicsContracts/IReportLogicAdmin.cs new file mode 100644 index 0000000..ee75480 --- /dev/null +++ b/VetClinic/VetClinicContracts/BusinessLogicsContracts/IReportLogicAdmin.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using VetClinicContracts.BindingModels; +using VetClinicContracts.ViewModels; + +namespace VetClinicContracts.BusinessLogicsContracts +{ + public interface IReportLogicAdmin //Будет дорабатываться + { + List GetServiceAnimals(List animals); + void SaveServicesToWordFile(ListServicesBindingModel model); + void SaveServicesToExcelFile(ListServicesBindingModel model); + } +} diff --git a/VetClinic/VetClinicContracts/SearchModels/AnimalSearchModel.cs b/VetClinic/VetClinicContracts/SearchModels/AnimalSearchModel.cs index 974212c..10aeeae 100644 --- a/VetClinic/VetClinicContracts/SearchModels/AnimalSearchModel.cs +++ b/VetClinic/VetClinicContracts/SearchModels/AnimalSearchModel.cs @@ -13,6 +13,5 @@ namespace VetClinicContracts.SearchModels public int? AdminId { get; set; } public string? AnimalName { get; set; } public string? Family { get; set; } - public int? MedicineId { get; set; } } } diff --git a/VetClinic/VetClinicContracts/SearchModels/ListServicesSearchModel.cs b/VetClinic/VetClinicContracts/SearchModels/ListServicesSearchModel.cs new file mode 100644 index 0000000..116911d --- /dev/null +++ b/VetClinic/VetClinicContracts/SearchModels/ListServicesSearchModel.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace VetClinicContracts.SearchModels +{ + public class ListServicesSearchModel + { + public List? animalsIds { get; set; } + } +} diff --git a/VetClinic/VetClinicContracts/SearchModels/MedicineVaccinationsSearchModel.cs b/VetClinic/VetClinicContracts/SearchModels/MedicineVaccinationsSearchModel.cs new file mode 100644 index 0000000..7167b63 --- /dev/null +++ b/VetClinic/VetClinicContracts/SearchModels/MedicineVaccinationsSearchModel.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace VetClinicContracts.SearchModels +{ + public class MedicineVaccinationsSearchModel + { + public List? visitsIds { get; set; } + public DateTime? DateFrom { get; set; } + public DateTime? DateTo { get; set; } + } +} diff --git a/VetClinic/VetClinicContracts/SearchModels/VisitSearchModel.cs b/VetClinic/VetClinicContracts/SearchModels/VisitSearchModel.cs index cf9c3e9..483f842 100644 --- a/VetClinic/VetClinicContracts/SearchModels/VisitSearchModel.cs +++ b/VetClinic/VetClinicContracts/SearchModels/VisitSearchModel.cs @@ -16,6 +16,5 @@ namespace VetClinicContracts.SearchModels public string? DateVisit { get; set; } public DateTime? DateFrom { get; set; } public DateTime? DateTo { get; set; } - public int? ServiceId { get; set; } } } diff --git a/VetClinic/VetClinicContracts/StoragesContracts/IAnimalStorage.cs b/VetClinic/VetClinicContracts/StoragesContracts/IAnimalStorage.cs index 189aed7..fb027e7 100644 --- a/VetClinic/VetClinicContracts/StoragesContracts/IAnimalStorage.cs +++ b/VetClinic/VetClinicContracts/StoragesContracts/IAnimalStorage.cs @@ -13,6 +13,7 @@ namespace VetClinicContracts.StoragesContracts { List GetFullList(); List GetFilteredList(AnimalSearchModel model); + List>>>> GetReportInfo(ListServicesSearchModel model); AnimalViewModel? GetElement(AnimalSearchModel model); AnimalViewModel? Insert(AnimalBindingModel model); AnimalViewModel? Update(AnimalBindingModel model); diff --git a/VetClinic/VetClinicContracts/StoragesContracts/IVisitStorage.cs b/VetClinic/VetClinicContracts/StoragesContracts/IVisitStorage.cs index 1cb302a..011eb5a 100644 --- a/VetClinic/VetClinicContracts/StoragesContracts/IVisitStorage.cs +++ b/VetClinic/VetClinicContracts/StoragesContracts/IVisitStorage.cs @@ -13,6 +13,10 @@ namespace VetClinicContracts.StoragesContracts { List GetFullList(); List GetFilteredList(VisitSearchModel model); + + public List>>>> GetVaccinationsInfo(MedicineVaccinationsSearchModel model); + public List>>>> GetMedicinesInfo(MedicineVaccinationsSearchModel model); + VisitViewModel? GetElement(VisitSearchModel model); VisitViewModel? Insert(VisitBindingModel model); VisitViewModel? Update(VisitBindingModel model); diff --git a/VetClinic/VetClinicContracts/ViewModels/ListServicesViewModel.cs b/VetClinic/VetClinicContracts/ViewModels/ListServicesViewModel.cs new file mode 100644 index 0000000..9232ccd --- /dev/null +++ b/VetClinic/VetClinicContracts/ViewModels/ListServicesViewModel.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace VetClinicContracts.ViewModels +{ + public class ListServicesViewModel + { + public string ServiceName { get; set; } = string.Empty; + public List Services { get; set; } = new(); + } +} diff --git a/VetClinic/VetClinicContracts/ViewModels/MedicineVaccinationViewModel.cs b/VetClinic/VetClinicContracts/ViewModels/MedicineVaccinationViewModel.cs new file mode 100644 index 0000000..24d7749 --- /dev/null +++ b/VetClinic/VetClinicContracts/ViewModels/MedicineVaccinationViewModel.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using VetClinicContracts.ViewModels; + +namespace VetClinicDataBaseImplement.Implements +{ + public class MedicineVaccinationViewModel + { + public string VisitName { get; set; } = string.Empty; + public List Medicines { get; set; } = new(); + public List Vaccinations { get; set; } = new(); + public DateTime DateFrom { get; set; } = DateTime.Now; + public DateTime DateTo { get; set; } = DateTime.Now; + } +} \ No newline at end of file diff --git a/VetClinic/VetClinicDataBaseImplement/Implements/AnimalStorage.cs b/VetClinic/VetClinicDataBaseImplement/Implements/AnimalStorage.cs index 0243a9d..ce929b8 100644 --- a/VetClinic/VetClinicDataBaseImplement/Implements/AnimalStorage.cs +++ b/VetClinic/VetClinicDataBaseImplement/Implements/AnimalStorage.cs @@ -5,6 +5,7 @@ using VetClinicContracts.ViewModels; using VetClinicDataBaseImplement.Models; using Microsoft.EntityFrameworkCore; using VetClinicDataBaseImplement; +using System.Linq; namespace VetClinicBaseImplement.Implements { @@ -28,11 +29,28 @@ namespace VetClinicBaseImplement.Implements return context.Animals.Include(x => x.Admin).Include(x => x.Visits) .ThenInclude(x => x.Visit).Include(x => x.Medicines).ThenInclude(x => x.Medicine) .Where(x => (string.IsNullOrEmpty(model.AnimalName) || x.AnimalName.Contains(model.AnimalName)) - && (!model.AdminId.HasValue || x.AdminId == model.AdminId) - && (!model.MedicineId.HasValue || x.Medicines.Select(x => x.MedicineId).ToList().Contains(model.MedicineId.Value))) + && (!model.AdminId.HasValue || x.AdminId == model.AdminId)) .Select(x => x.GetViewModel) .ToList(); } + + public List>>>> GetReportInfo(ListServicesSearchModel model) + { + if (model.animalsIds == null) + { + return new(); + } + using var context = new VetClinicDatabase(); + return context.Animals + .Where(animal => model.animalsIds.Contains(animal.Id)) + .Select(animal => new Tuple>>>(animal.GetViewModel, + context.MedicineAnimals.Include(medicine => medicine.Medicine) + .Include(medicine => medicine.Animal).Where(medicine => animal.Id == medicine.AnimalId). + Select(medicine => new Tuple>(medicine.Medicine.GetViewModel, + context.ServiceMedicines.Include(x => x.Service).Where(x => x.MedicineId == medicine.Medicine.Id). + Select(x => x.Service.GetViewModel).ToList())).ToList())).ToList(); + + } public AnimalViewModel? GetElement(AnimalSearchModel model) { if (!model.Id.HasValue) diff --git a/VetClinic/VetClinicDataBaseImplement/Implements/VisitStorage.cs b/VetClinic/VetClinicDataBaseImplement/Implements/VisitStorage.cs index 9efe5f6..699045f 100644 --- a/VetClinic/VetClinicDataBaseImplement/Implements/VisitStorage.cs +++ b/VetClinic/VetClinicDataBaseImplement/Implements/VisitStorage.cs @@ -31,13 +31,49 @@ namespace VetClinicDataBaseImplement.Implements { using var context = new VetClinicDatabase(); return context.Visits.Include(x => x.Admin).Include(x => x.Services) - .ThenInclude(x => x.Service) + .ThenInclude(x => x.Service).Include(x => x.Animals).ThenInclude(x => x.Animal) .Where(x => (string.IsNullOrEmpty(model.NameVisit) || x.NameVisit.Contains(model.NameVisit)) - && (!model.AdminId.HasValue || x.AdminId == model.AdminId) - && (!model.ServiceId.HasValue || x.Services.Select(x => x.ServiceId).ToList().Contains(model.ServiceId.Value))) + && (!model.AdminId.HasValue || x.AdminId == model.AdminId)) .Select(x => x.GetViewModel) .ToList(); } + + public List>>>> GetVaccinationsInfo(MedicineVaccinationsSearchModel model) + { + if (model.visitsIds == null) + { + return new(); + } + using var context = new VetClinicDatabase(); + return context.Visits + .Where(visit => model.visitsIds.Contains(visit.Id)) + .Select(visit => new Tuple>>>(visit.GetViewModel, + context.VisitAnimals.Include(animal => animal.Animal) + .Include(animal => animal.Visit).Where(animal => visit.Id == animal.VisitId). + Select(animal => new Tuple>(animal.Animal.GetViewModel, + context.Vaccinations.Include(x => x.Animal).Where(x => x.AnimalId == animal.AnimalId && x.DateStamp >= model.DateFrom && x.DateStamp <= model.DateTo). + Select(x => x.GetViewModel).ToList())).ToList())).ToList(); + + } + public List>>>> GetMedicinesInfo(MedicineVaccinationsSearchModel model) + { + if (model.visitsIds == null) + { + return new(); + } + using var context = new VetClinicDatabase(); + return context.Visits + .Where(visit => model.visitsIds.Contains(visit.Id)) + .Select(visit => new Tuple>>>(visit.GetViewModel, + context.VisitAnimals.Include(animal => animal.Animal) + .Include(animal => animal.Visit).Where(animal => visit.Id == animal.VisitId). + Select(animal => new Tuple>(animal.Animal.GetViewModel, + context.MedicineAnimals.Include(x => x.Medicine).Where(x => x.AnimalId == animal.AnimalId). + Select(x => x.Medicine.GetViewModel).ToList())).ToList())).ToList(); + + } + + public VisitViewModel? GetElement(VisitSearchModel model) { if (!model.Id.HasValue)