diff --git a/VetClinic/VetClinicContracts/SearchModels/ServiceSearchModel.cs b/VetClinic/VetClinicContracts/SearchModels/ServiceSearchModel.cs index edf5d11..8e00f3a 100644 --- a/VetClinic/VetClinicContracts/SearchModels/ServiceSearchModel.cs +++ b/VetClinic/VetClinicContracts/SearchModels/ServiceSearchModel.cs @@ -11,5 +11,6 @@ namespace VetClinicContracts.SearchModels public int? Id { get; set; } public string? ServiceName { get; set; } = string.Empty; public int? PharmacistId { get; set; } + public int? MedicineId { get; set; } } } diff --git a/VetClinic/VetClinicContracts/SearchModels/VisitSearchModel.cs b/VetClinic/VetClinicContracts/SearchModels/VisitSearchModel.cs index 483f842..cf9c3e9 100644 --- a/VetClinic/VetClinicContracts/SearchModels/VisitSearchModel.cs +++ b/VetClinic/VetClinicContracts/SearchModels/VisitSearchModel.cs @@ -16,5 +16,6 @@ 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/VetClinicDataBaseImplement/Implements/ServiceStorage.cs b/VetClinic/VetClinicDataBaseImplement/Implements/ServiceStorage.cs index 64cd951..39961dc 100644 --- a/VetClinic/VetClinicDataBaseImplement/Implements/ServiceStorage.cs +++ b/VetClinic/VetClinicDataBaseImplement/Implements/ServiceStorage.cs @@ -32,7 +32,8 @@ namespace VetClinicDataBaseImplement.Implements .Include(x => x.Medicines) .ThenInclude(x => x.Medicine) .Where(x => (string.IsNullOrEmpty(model.ServiceName) || x.ServiceName.Contains(model.ServiceName)) - && (!model.PharmacistId.HasValue || x.PharmacistId == model.PharmacistId)) + && (!model.PharmacistId.HasValue || x.PharmacistId == model.PharmacistId) + && (!model.MedicineId.HasValue || x.Medicines.Select(x => x.MedicineId).ToList().Contains(model.MedicineId.Value))) .ToList() .Select(x => x.GetViewModel) .ToList(); diff --git a/VetClinic/VetClinicDataBaseImplement/Implements/VisitStorage.cs b/VetClinic/VetClinicDataBaseImplement/Implements/VisitStorage.cs index ef54e2f..9efe5f6 100644 --- a/VetClinic/VetClinicDataBaseImplement/Implements/VisitStorage.cs +++ b/VetClinic/VetClinicDataBaseImplement/Implements/VisitStorage.cs @@ -33,7 +33,8 @@ namespace VetClinicDataBaseImplement.Implements return context.Visits.Include(x => x.Admin).Include(x => x.Services) .ThenInclude(x => x.Service) .Where(x => (string.IsNullOrEmpty(model.NameVisit) || x.NameVisit.Contains(model.NameVisit)) - && (!model.AdminId.HasValue || x.AdminId == model.AdminId)) + && (!model.AdminId.HasValue || x.AdminId == model.AdminId) + && (!model.ServiceId.HasValue || x.Services.Select(x => x.ServiceId).ToList().Contains(model.ServiceId.Value))) .Select(x => x.GetViewModel) .ToList(); }