Browse Source

Commit Department module, Doctor module and Appointment module

Appointment_Module
team.net 4 days ago
parent
commit
2fefbe934c
47 changed files with 15102 additions and 4 deletions
  1. +55
    -0
      angular/package-lock.json
  2. +4
    -0
      angular/package.json
  3. +1
    -1
      angular/src/app/appointment/appointment-calendar/appointment-calendar.component.html
  4. +8
    -0
      angular/src/app/appointment/appointment-calendar/appointment-calendar.component.scss
  5. +17
    -0
      angular/src/app/appointment/appointment-calendar/appointment-calendar.component.ts
  6. +7
    -2
      angular/src/app/appointment/appointment-calendar/appointment-calendar.module.ts
  7. +17
    -0
      angular/src/app/proxy/README.md
  8. +20
    -0
      angular/src/app/proxy/appointments/appointment.service.ts
  9. +1
    -0
      angular/src/app/proxy/appointments/index.ts
  10. +29
    -0
      angular/src/app/proxy/departments/department.service.ts
  11. +1
    -0
      angular/src/app/proxy/departments/index.ts
  12. +20
    -0
      angular/src/app/proxy/doctors/doctor.service.ts
  13. +1
    -0
      angular/src/app/proxy/doctors/index.ts
  14. +1
    -0
      angular/src/app/proxy/dtos/index.ts
  15. +32
    -0
      angular/src/app/proxy/dtos/models.ts
  16. +9
    -0
      angular/src/app/proxy/enums/gender-enum.enum.ts
  17. +1
    -0
      angular/src/app/proxy/enums/index.ts
  18. +9719
    -0
      angular/src/app/proxy/generate-proxy.json
  19. +7
    -0
      angular/src/app/proxy/index.ts
  20. +1
    -0
      angular/src/app/proxy/volo/abp/domain/entities/auditing/index.ts
  21. +17
    -0
      angular/src/app/proxy/volo/abp/domain/entities/auditing/models.ts
  22. +3
    -0
      angular/src/app/proxy/volo/abp/domain/entities/index.ts
  23. +3
    -0
      angular/src/app/proxy/volo/abp/domain/entities/models.ts
  24. +2
    -0
      angular/src/app/proxy/volo/abp/domain/index.ts
  25. +2
    -0
      angular/src/app/proxy/volo/abp/index.ts
  26. +2
    -0
      angular/src/app/proxy/volo/index.ts
  27. +28
    -0
      aspnet-core/src/HospitalManagementSystem.Application/Appointments/AppointmentAppService.cs
  28. +14
    -0
      aspnet-core/src/HospitalManagementSystem.Application/Appointments/IAppointmentAppService.cs
  29. +31
    -0
      aspnet-core/src/HospitalManagementSystem.Application/Departments/DepartmentAppService.cs
  30. +16
    -0
      aspnet-core/src/HospitalManagementSystem.Application/Departments/IDepartmentAppService.cs
  31. +31
    -0
      aspnet-core/src/HospitalManagementSystem.Application/Doctors/DoctorAppService.cs
  32. +12
    -0
      aspnet-core/src/HospitalManagementSystem.Application/Doctors/IDoctorAppService.cs
  33. +17
    -0
      aspnet-core/src/HospitalManagementSystem.Application/Dtos/CreateDepartmentDto.cs
  34. +24
    -0
      aspnet-core/src/HospitalManagementSystem.Application/Dtos/CreateDoctorDto.cs
  35. +15
    -0
      aspnet-core/src/HospitalManagementSystem.Application/Dtos/DepartmentDto.cs
  36. +24
    -0
      aspnet-core/src/HospitalManagementSystem.Application/Dtos/DoctorDto.cs
  37. +5
    -0
      aspnet-core/src/HospitalManagementSystem.Application/HospitalManagementSystemApplicationAutoMapperProfile.cs
  38. +15
    -0
      aspnet-core/src/HospitalManagementSystem.Domain.Shared/Enums/GenderEnum.cs
  39. +26
    -0
      aspnet-core/src/HospitalManagementSystem.Domain/Appointments/Appointment.cs
  40. +30
    -0
      aspnet-core/src/HospitalManagementSystem.Domain/Departments/Department.cs
  41. +49
    -0
      aspnet-core/src/HospitalManagementSystem.Domain/Doctors/Doctor.cs
  42. +8
    -1
      aspnet-core/src/HospitalManagementSystem.EntityFrameworkCore/EntityFrameworkCore/HospitalManagementSystemDbContext.cs
  43. +2188
    -0
      aspnet-core/src/HospitalManagementSystem.EntityFrameworkCore/Migrations/20250115133021_addedDepartment_Doctor_Appointment_Table.Designer.cs
  44. +131
    -0
      aspnet-core/src/HospitalManagementSystem.EntityFrameworkCore/Migrations/20250115133021_addedDepartment_Doctor_Appointment_Table.cs
  45. +2188
    -0
      aspnet-core/src/HospitalManagementSystem.EntityFrameworkCore/Migrations/20250130095134_changeGenderEnumToString.Designer.cs
  46. +36
    -0
      aspnet-core/src/HospitalManagementSystem.EntityFrameworkCore/Migrations/20250130095134_changeGenderEnumToString.cs
  47. +234
    -0
      aspnet-core/src/HospitalManagementSystem.EntityFrameworkCore/Migrations/HospitalManagementSystemDbContextModelSnapshot.cs

+ 55
- 0
angular/package-lock.json View File

@ -26,6 +26,10 @@
"@angular/platform-browser": "~18.1.0", "@angular/platform-browser": "~18.1.0",
"@angular/platform-browser-dynamic": "~18.1.0", "@angular/platform-browser-dynamic": "~18.1.0",
"@angular/router": "~18.1.0", "@angular/router": "~18.1.0",
"@fullcalendar/angular": "^6.1.16",
"@fullcalendar/core": "^6.1.15",
"@fullcalendar/daygrid": "^6.1.15",
"@fullcalendar/interaction": "^6.1.15",
"bootstrap-icons": "~1.8.0", "bootstrap-icons": "~1.8.0",
"rxjs": "~7.8.0", "rxjs": "~7.8.0",
"tslib": "^2.0.0", "tslib": "^2.0.0",
@ -3500,6 +3504,47 @@
"node": ">=6" "node": ">=6"
} }
}, },
"node_modules/@fullcalendar/angular": {
"version": "6.1.16",
"resolved": "https://registry.npmjs.org/@fullcalendar/angular/-/angular-6.1.16.tgz",
"integrity": "sha512-Qqs0MZPlIDretmWgtOr0H+uiLO6DKeqxqH1Y2oeWufwEbQTaAxhH7mivdTmxL596JkiuJ/1dhCm+v4tVbFb40w==",
"license": "MIT",
"dependencies": {
"tslib": "^2.3.0"
},
"peerDependencies": {
"@angular/common": "12 - 19",
"@angular/core": "12 - 19",
"@fullcalendar/core": "~6.1.15"
}
},
"node_modules/@fullcalendar/core": {
"version": "6.1.15",
"resolved": "https://registry.npmjs.org/@fullcalendar/core/-/core-6.1.15.tgz",
"integrity": "sha512-BuX7o6ALpLb84cMw1FCB9/cSgF4JbVO894cjJZ6kP74jzbUZNjtwffwRdA+Id8rrLjT30d/7TrkW90k4zbXB5Q==",
"license": "MIT",
"dependencies": {
"preact": "~10.12.1"
}
},
"node_modules/@fullcalendar/daygrid": {
"version": "6.1.15",
"resolved": "https://registry.npmjs.org/@fullcalendar/daygrid/-/daygrid-6.1.15.tgz",
"integrity": "sha512-j8tL0HhfiVsdtOCLfzK2J0RtSkiad3BYYemwQKq512cx6btz6ZZ2RNc/hVnIxluuWFyvx5sXZwoeTJsFSFTEFA==",
"license": "MIT",
"peerDependencies": {
"@fullcalendar/core": "~6.1.15"
}
},
"node_modules/@fullcalendar/interaction": {
"version": "6.1.15",
"resolved": "https://registry.npmjs.org/@fullcalendar/interaction/-/interaction-6.1.15.tgz",
"integrity": "sha512-DOTSkofizM7QItjgu7W68TvKKvN9PSEEvDJceyMbQDvlXHa7pm/WAVtAc6xSDZ9xmB1QramYoWGLHkCYbTW1rQ==",
"license": "MIT",
"peerDependencies": {
"@fullcalendar/core": "~6.1.15"
}
},
"node_modules/@humanwhocodes/config-array": { "node_modules/@humanwhocodes/config-array": {
"version": "0.13.0", "version": "0.13.0",
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz",
@ -12977,6 +13022,16 @@
"dev": true, "dev": true,
"license": "MIT" "license": "MIT"
}, },
"node_modules/preact": {
"version": "10.12.1",
"resolved": "https://registry.npmjs.org/preact/-/preact-10.12.1.tgz",
"integrity": "sha512-l8386ixSsBdbreOAkqtrwqHwdvR35ID8c3rKPa8lCWuO86dBi32QWHV4vfsZK1utLLFMvw+Z5Ad4XLkZzchscg==",
"license": "MIT",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/preact"
}
},
"node_modules/prelude-ls": { "node_modules/prelude-ls": {
"version": "1.2.1", "version": "1.2.1",
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",


+ 4
- 0
angular/package.json View File

@ -30,6 +30,10 @@
"@angular/platform-browser": "~18.1.0", "@angular/platform-browser": "~18.1.0",
"@angular/platform-browser-dynamic": "~18.1.0", "@angular/platform-browser-dynamic": "~18.1.0",
"@angular/router": "~18.1.0", "@angular/router": "~18.1.0",
"@fullcalendar/angular": "^6.1.16",
"@fullcalendar/core": "^6.1.15",
"@fullcalendar/daygrid": "^6.1.15",
"@fullcalendar/interaction": "^6.1.15",
"bootstrap-icons": "~1.8.0", "bootstrap-icons": "~1.8.0",
"rxjs": "~7.8.0", "rxjs": "~7.8.0",
"tslib": "^2.0.0", "tslib": "^2.0.0",


+ 1
- 1
angular/src/app/appointment/appointment-calendar/appointment-calendar.component.html View File

@ -1 +1 @@
<p>appointment-calendar works!</p>
<full-calendar [options]="calendarOptions"></full-calendar>

+ 8
- 0
angular/src/app/appointment/appointment-calendar/appointment-calendar.component.scss View File

@ -0,0 +1,8 @@
.fc.fc-theme-standard .fc-view-harness .fc-event.fc-daygrid-block-event {
color: #ffffff;
background: #2563eb;
border-color: #2563eb;
}
.fc-daygrid-day-number {
text-decoration: none !important;
}

+ 17
- 0
angular/src/app/appointment/appointment-calendar/appointment-calendar.component.ts View File

@ -1,4 +1,9 @@
import { Component } from '@angular/core'; import { Component } from '@angular/core';
import { RouterOutlet } from '@angular/router';
import { FullCalendarModule } from '@fullcalendar/angular';
import { CalendarOptions } from '@fullcalendar/core'; // useful for typechecking
import dayGridPlugin from '@fullcalendar/daygrid';
import interactionPlugin from '@fullcalendar/interaction';
@Component({ @Component({
selector: 'app-appointment-calendar', selector: 'app-appointment-calendar',
@ -6,5 +11,17 @@ import { Component } from '@angular/core';
styleUrl: './appointment-calendar.component.scss' styleUrl: './appointment-calendar.component.scss'
}) })
export class AppointmentCalendarComponent { export class AppointmentCalendarComponent {
calendarOptions: CalendarOptions = {
initialView: 'dayGridMonth',
plugins: [dayGridPlugin, interactionPlugin],
dateClick: (arg) => this.handleDateClick(arg),
events: [
{ title: 'event 1', date: '2025-01-01' },
{ title: 'event 2', date: '2025-01-02' }
]
};
handleDateClick(arg) {
alert('date click! ' + arg.dateStr)
}
} }

+ 7
- 2
angular/src/app/appointment/appointment-calendar/appointment-calendar.module.ts View File

@ -1,6 +1,9 @@
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
import { RouterOutlet } from '@angular/router';
import { FullCalendarModule } from '@fullcalendar/angular';
import { CalendarOptions } from '@fullcalendar/core'; // useful for typechecking
import dayGridPlugin from '@fullcalendar/daygrid';
import { AppointmentCalendarRoutingModule } from './appointment-calendar-routing.module'; import { AppointmentCalendarRoutingModule } from './appointment-calendar-routing.module';
import { AppointmentCalendarComponent } from './appointment-calendar.component'; import { AppointmentCalendarComponent } from './appointment-calendar.component';
@ -11,7 +14,9 @@ import { AppointmentCalendarComponent } from './appointment-calendar.component';
], ],
imports: [ imports: [
CommonModule, CommonModule,
AppointmentCalendarRoutingModule
AppointmentCalendarRoutingModule,
RouterOutlet,
FullCalendarModule
] ]
}) })
export class AppointmentCalendarModule { } export class AppointmentCalendarModule { }

+ 17
- 0
angular/src/app/proxy/README.md View File

@ -0,0 +1,17 @@
# Proxy Generation Output
This directory includes the output of the latest proxy generation.
The files and folders in it will be overwritten when proxy generation is run again.
Therefore, please do not place your own content in this folder.
In addition, `generate-proxy.json` works like a lock file.
It includes information used by the proxy generator, so please do not delete or modify it.
Finally, the name of the files and folders should not be changed for two reasons:
- Proxy generator will keep creating them at those paths and you will have multiple copies of the same content.
- ABP Suite generates files which include imports from this folder.
> **Important Notice:** If you are building a module and are planning to publish to npm,
> some of the generated proxies are likely to be exported from public-api.ts file. In such a case,
> please make sure you export files directly and not from barrel exports. In other words,
> do not include index.ts exports in your public-api.ts exports.

+ 20
- 0
angular/src/app/proxy/appointments/appointment.service.ts View File

@ -0,0 +1,20 @@
import { RestService, Rest } from '@abp/ng.core';
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root',
})
export class AppointmentService {
apiName = 'Default';
get = (config?: Partial<Rest.Config>) =>
this.restService.request<any, string>({
method: 'GET',
responseType: 'text',
url: '/api/app/appointment',
},
{ apiName: this.apiName,...config });
constructor(private restService: RestService) {}
}

+ 1
- 0
angular/src/app/proxy/appointments/index.ts View File

@ -0,0 +1 @@
export * from './appointment.service';

+ 29
- 0
angular/src/app/proxy/departments/department.service.ts View File

@ -0,0 +1,29 @@
import { RestService, Rest } from '@abp/ng.core';
import { Injectable } from '@angular/core';
import type { CreateDepartmentDto, DepartmentDto } from '../dtos/models';
@Injectable({
providedIn: 'root',
})
export class DepartmentService {
apiName = 'Default';
create = (input: CreateDepartmentDto, config?: Partial<Rest.Config>) =>
this.restService.request<any, DepartmentDto>({
method: 'POST',
url: '/api/app/department',
body: input,
},
{ apiName: this.apiName,...config });
get = (config?: Partial<Rest.Config>) =>
this.restService.request<any, DepartmentDto[]>({
method: 'GET',
url: '/api/app/department',
},
{ apiName: this.apiName,...config });
constructor(private restService: RestService) {}
}

+ 1
- 0
angular/src/app/proxy/departments/index.ts View File

@ -0,0 +1 @@
export * from './department.service';

+ 20
- 0
angular/src/app/proxy/doctors/doctor.service.ts View File

@ -0,0 +1,20 @@
import { RestService, Rest } from '@abp/ng.core';
import { Injectable } from '@angular/core';
import type { DoctorDto } from '../dtos/models';
@Injectable({
providedIn: 'root',
})
export class DoctorService {
apiName = 'Default';
get = (config?: Partial<Rest.Config>) =>
this.restService.request<any, DoctorDto[]>({
method: 'GET',
url: '/api/app/doctor',
},
{ apiName: this.apiName,...config });
constructor(private restService: RestService) {}
}

+ 1
- 0
angular/src/app/proxy/doctors/index.ts View File

@ -0,0 +1 @@
export * from './doctor.service';

+ 1
- 0
angular/src/app/proxy/dtos/index.ts View File

@ -0,0 +1 @@
export * from './models';

+ 32
- 0
angular/src/app/proxy/dtos/models.ts View File

@ -0,0 +1,32 @@
import type { FullAuditedEntity } from '../volo/abp/domain/entities/auditing/models';
import type { GenderEnum } from '../enums/gender-enum.enum';
export interface CreateDepartmentDto {
departmentNo?: string;
departmentName?: string;
departmentDate?: string;
departmentHead?: string;
description?: string;
}
export interface DepartmentDto extends FullAuditedEntity<string> {
departmentNo?: string;
departmentName?: string;
departmentDate?: string;
departmentHead?: string;
status?: string;
description?: string;
}
export interface DoctorDto extends FullAuditedEntity<string> {
firstName?: string;
lastName?: string;
gender?: GenderEnum;
mobile?: string;
designation?: string;
departmentId?: string;
address?: string;
email?: string;
dob?: string;
education?: string;
}

+ 9
- 0
angular/src/app/proxy/enums/gender-enum.enum.ts View File

@ -0,0 +1,9 @@
import { mapEnumToOptions } from '@abp/ng.core';
export enum GenderEnum {
Male = 0,
Female = 1,
Others = 2,
}
export const genderEnumOptions = mapEnumToOptions(GenderEnum);

+ 1
- 0
angular/src/app/proxy/enums/index.ts View File

@ -0,0 +1 @@
export * from './gender-enum.enum';

+ 9719
- 0
angular/src/app/proxy/generate-proxy.json
File diff suppressed because it is too large
View File


+ 7
- 0
angular/src/app/proxy/index.ts View File

@ -0,0 +1,7 @@
import * as Appointments from './appointments';
import * as Departments from './departments';
import * as Doctors from './doctors';
import * as Dtos from './dtos';
import * as Enums from './enums';
import * as Volo from './volo';
export { Appointments, Departments, Doctors, Dtos, Enums, Volo };

+ 1
- 0
angular/src/app/proxy/volo/abp/domain/entities/auditing/index.ts View File

@ -0,0 +1 @@
export * from './models';

+ 17
- 0
angular/src/app/proxy/volo/abp/domain/entities/auditing/models.ts View File

@ -0,0 +1,17 @@
import type { Entity } from '../models';
export interface AuditedEntity<TKey> extends CreationAuditedEntity<TKey> {
lastModificationTime?: string;
lastModifierId?: string;
}
export interface CreationAuditedEntity<TKey> extends Entity<TKey> {
creationTime?: string;
creatorId?: string;
}
export interface FullAuditedEntity<TKey> extends AuditedEntity<TKey> {
isDeleted: boolean;
deleterId?: string;
deletionTime?: string;
}

+ 3
- 0
angular/src/app/proxy/volo/abp/domain/entities/index.ts View File

@ -0,0 +1,3 @@
import * as Auditing from './auditing';
export * from './models';
export { Auditing };

+ 3
- 0
angular/src/app/proxy/volo/abp/domain/entities/models.ts View File

@ -0,0 +1,3 @@
export interface Entity {
}

+ 2
- 0
angular/src/app/proxy/volo/abp/domain/index.ts View File

@ -0,0 +1,2 @@
import * as Entities from './entities';
export { Entities };

+ 2
- 0
angular/src/app/proxy/volo/abp/index.ts View File

@ -0,0 +1,2 @@
import * as Domain from './domain';
export { Domain };

+ 2
- 0
angular/src/app/proxy/volo/index.ts View File

@ -0,0 +1,2 @@
import * as Abp from './abp';
export { Abp };

+ 28
- 0
aspnet-core/src/HospitalManagementSystem.Application/Appointments/AppointmentAppService.cs View File

@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.DependencyInjection;
using Volo.Abp.MultiTenancy;
using Volo.Abp.Users;
namespace HospitalManagementSystem.Appointments
{
public class AppointmentAppService : HospitalManagementSystemAppService, IAppointmentAppService, ITransientDependency
{
private readonly ICurrentUser _currentUser;
private readonly ICurrentTenant _currentTenant;
public AppointmentAppService(ICurrentUser currentUser, ICurrentTenant currentTenant)
{
_currentUser = currentUser;
_currentTenant = currentTenant;
}
public async Task<string> GetAsync()
{
var x = _currentUser.Id;
var y = _currentTenant.Id;
return _currentUser.Name + " checking done.";
}
}
}

+ 14
- 0
aspnet-core/src/HospitalManagementSystem.Application/Appointments/IAppointmentAppService.cs View File

@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Application.Services;
namespace HospitalManagementSystem.Appointments
{
public interface IAppointmentAppService : IApplicationService
{
Task<string> GetAsync();
}
}

+ 31
- 0
aspnet-core/src/HospitalManagementSystem.Application/Departments/DepartmentAppService.cs View File

@ -0,0 +1,31 @@
using HospitalManagementSystem.Dtos;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Volo.Abp.Domain.Repositories;
namespace HospitalManagementSystem.Departments
{
public class DepartmentAppService : HospitalManagementSystemAppService, IDepartmentAppService
{
private readonly IRepository<Department, Guid> _departmentRepository;
public DepartmentAppService(IRepository<Department, Guid> departmentRepository)
{
_departmentRepository = departmentRepository;
}
public async Task<List<DepartmentDto>> GetAsync()
{
var departmentDtos = new List<DepartmentDto>();
var data = await _departmentRepository.GetListAsync();
departmentDtos = ObjectMapper.Map<List<Department>, List<DepartmentDto>>(data);
return departmentDtos;
}
public async Task<DepartmentDto> CreateAsync(CreateDepartmentDto input)
{
var department = new Department(Guid.NewGuid(), input.DepartmentNo, input.DepartmentName, input.DepartmentDate, input.DepartmentHead, "Active", input.Description);
await _departmentRepository.InsertAsync(department);
return ObjectMapper.Map<Department, DepartmentDto>(department);
}
}
}

+ 16
- 0
aspnet-core/src/HospitalManagementSystem.Application/Departments/IDepartmentAppService.cs View File

@ -0,0 +1,16 @@
using HospitalManagementSystem.Dtos;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Application.Services;
namespace HospitalManagementSystem.Departments
{
public interface IDepartmentAppService : IApplicationService
{
Task<List<DepartmentDto>> GetAsync();
Task<DepartmentDto> CreateAsync(CreateDepartmentDto input);
}
}

+ 31
- 0
aspnet-core/src/HospitalManagementSystem.Application/Doctors/DoctorAppService.cs View File

@ -0,0 +1,31 @@
using HospitalManagementSystem.Departments;
using HospitalManagementSystem.Dtos;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Volo.Abp.Domain.Repositories;
namespace HospitalManagementSystem.Doctors
{
public class DoctorAppService : HospitalManagementSystemAppService, IDoctorAppService
{
private readonly IRepository<Doctor, Guid> _doctorRepository;
public DoctorAppService(IRepository<Doctor, Guid> doctorRepository)
{
_doctorRepository = doctorRepository;
}
public async Task<List<DoctorDto>> GetAsync()
{
var doctorDtos = new List<DoctorDto>();
var data = await _doctorRepository.GetListAsync();
doctorDtos = ObjectMapper.Map<List<Doctor>, List<DoctorDto>>(data);
return doctorDtos;
}
public async Task<DoctorDto> CreateAsync(CreateDoctorDto input)
{
var doctor = new Doctor(Guid.NewGuid(), input.FirstName, input.LastName, input.Gender, input.Mobile, input.Password, input.Designation, input.DepartmentId, input.Address, input.Email, input.DOB, input.Education);
await _doctorRepository.InsertAsync(doctor);
return ObjectMapper.Map<Doctor, DoctorDto>(doctor);
}
}
}

+ 12
- 0
aspnet-core/src/HospitalManagementSystem.Application/Doctors/IDoctorAppService.cs View File

@ -0,0 +1,12 @@
using HospitalManagementSystem.Dtos;
using System.Collections.Generic;
using System.Threading.Tasks;
using Volo.Abp.Application.Services;
namespace HospitalManagementSystem.Doctors
{
public interface IDoctorAppService : IApplicationService
{
Task<List<DoctorDto>> GetAsync();
}
}

+ 17
- 0
aspnet-core/src/HospitalManagementSystem.Application/Dtos/CreateDepartmentDto.cs View File

@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HospitalManagementSystem.Dtos
{
public class CreateDepartmentDto
{
public string? DepartmentNo { get; set; }
public string? DepartmentName { get; set; }
public DateTime? DepartmentDate { get; set; }
public string? DepartmentHead { get; set; }
public string? Description { get; set; }
}
}

+ 24
- 0
aspnet-core/src/HospitalManagementSystem.Application/Dtos/CreateDoctorDto.cs View File

@ -0,0 +1,24 @@
using HospitalManagementSystem.Enums;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HospitalManagementSystem.Dtos
{
public class CreateDoctorDto
{
public string? FirstName { get; set; }
public string? LastName { get; set; }
public string? Gender { get; set; }
public string? Mobile { get; set; }
public string? Password { get; set; }
public string? Designation { get; set; }
public Guid? DepartmentId { get; set; }
public string? Address { get; set; }
public string? Email { get; set; }
public string? DOB { get; set; }
public string? Education { get; set; }
}
}

+ 15
- 0
aspnet-core/src/HospitalManagementSystem.Application/Dtos/DepartmentDto.cs View File

@ -0,0 +1,15 @@
using System;
using Volo.Abp.Domain.Entities.Auditing;
namespace HospitalManagementSystem.Dtos
{
public class DepartmentDto : FullAuditedEntity<Guid>
{
public string? DepartmentNo { get; set; }
public string? DepartmentName { get; set; }
public DateTime? DepartmentDate { get; set; }
public string? DepartmentHead { get; set; }
public string? Status { get; set; }
public string? Description { get; set; }
}
}

+ 24
- 0
aspnet-core/src/HospitalManagementSystem.Application/Dtos/DoctorDto.cs View File

@ -0,0 +1,24 @@
using HospitalManagementSystem.Enums;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Domain.Entities.Auditing;
namespace HospitalManagementSystem.Dtos
{
public class DoctorDto : FullAuditedEntity<Guid>
{
public string? FirstName { get; set; }
public string? LastName { get; set; }
public string? Gender { get; set; }
public string? Mobile { get; set; }
public string? Designation { get; set; }
public Guid? DepartmentId { get; set; }
public string? Address { get; set; }
public string? Email { get; set; }
public string? DOB { get; set; }
public string? Education { get; set; }
}
}

+ 5
- 0
aspnet-core/src/HospitalManagementSystem.Application/HospitalManagementSystemApplicationAutoMapperProfile.cs View File

@ -1,4 +1,7 @@
using AutoMapper; using AutoMapper;
using HospitalManagementSystem.Departments;
using HospitalManagementSystem.Doctors;
using HospitalManagementSystem.Dtos;
namespace HospitalManagementSystem; namespace HospitalManagementSystem;
@ -9,5 +12,7 @@ public class HospitalManagementSystemApplicationAutoMapperProfile : Profile
/* You can configure your AutoMapper mapping configuration here. /* You can configure your AutoMapper mapping configuration here.
* Alternatively, you can split your mapping configurations * Alternatively, you can split your mapping configurations
* into multiple profile classes for a better organization. */ * into multiple profile classes for a better organization. */
CreateMap<Department, DepartmentDto>();
CreateMap<Doctor, DoctorDto>();
} }
} }

+ 15
- 0
aspnet-core/src/HospitalManagementSystem.Domain.Shared/Enums/GenderEnum.cs View File

@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HospitalManagementSystem.Enums
{
public enum GenderEnum
{
Male = 0,
Female = 1,
Others = 2
}
}

+ 26
- 0
aspnet-core/src/HospitalManagementSystem.Domain/Appointments/Appointment.cs View File

@ -0,0 +1,26 @@
using HospitalManagementSystem.Doctors;
using HospitalManagementSystem.Enums;
using System;
using System.ComponentModel.DataAnnotations.Schema;
using Volo.Abp.Domain.Entities.Auditing;
namespace HospitalManagementSystem.Appointments
{
public class Appointment : FullAuditedEntity<Guid>
{
public string? FirstName { get; set; }
public string? LastName { get; set; }
public GenderEnum? Gender { get; set; }
public string? Mobile { get; set; }
public string? Address { get; set; }
public string? Email { get; set; }
public string? DOB { get; set; }
public Guid? DoctorId { get; set; }
[ForeignKey("DoctorId")]
public virtual Doctor? Doctor { get; set; }
public DateTime? DateOfAppointment { get; set; }
public string? TimeOfAppointment { get; set; }
public string? InjuryORContion { get; set; }
public string? Note { get; set; }
}
}

+ 30
- 0
aspnet-core/src/HospitalManagementSystem.Domain/Departments/Department.cs View File

@ -0,0 +1,30 @@
using System;
using Volo.Abp.Domain.Entities.Auditing;
namespace HospitalManagementSystem.Departments
{
public class Department : FullAuditedEntity<Guid>
{
public string? DepartmentNo { get; set; }
public string? DepartmentName { get; set; }
public DateTime? DepartmentDate { get; set; }
public string? DepartmentHead { get; set; }
public string? Status { get; set; }
public string? Description { get; set; }
public Department()
{
}
public Department(Guid id, string? departmentNo, string? departmentName, DateTime? departmentDate, string? departmentHead, string? status, string? description) : base(id)
{
DepartmentNo = departmentNo;
DepartmentName = departmentName;
DepartmentDate = departmentDate;
DepartmentHead = departmentHead;
Status = status;
Description = description;
}
}
}

+ 49
- 0
aspnet-core/src/HospitalManagementSystem.Domain/Doctors/Doctor.cs View File

@ -0,0 +1,49 @@
using HospitalManagementSystem.Appointments;
using HospitalManagementSystem.Departments;
using HospitalManagementSystem.Enums;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using Volo.Abp.Domain.Entities.Auditing;
namespace HospitalManagementSystem.Doctors
{
public class Doctor : FullAuditedEntity<Guid>
{
public string? FirstName { get; set; }
public string? LastName { get; set; }
public string? Gender { get; set; }
public string? Mobile { get; set; }
public string? Password { get; set; }
public string? Designation { get; set; }
public Guid? DepartmentId { get; set; }
[ForeignKey("DepartmentId")]
public virtual Department? Department { get; set; }
public string? Address { get; set; }
public string? Email { get; set; }
public string? DOB { get; set; }
public string? Education { get; set; }
public virtual ICollection<Appointment> Appointments { get; set; } = new List<Appointment>();
public Doctor()
{
//Appointments = new List<Appointment>();
}
public Doctor(Guid id, string? firstName, string? lastName,
string? gender, string? mobile, string? password,
string? designation, Guid? departmentId, string? address,
string? email, string? dOB, string? education) : base(id)
{
FirstName = firstName;
LastName = lastName;
Gender = gender;
Mobile = mobile;
Password = password;
Designation = designation;
DepartmentId = departmentId;
Address = address;
Email = email;
DOB = dOB;
Education = education;
}
}
}

+ 8
- 1
aspnet-core/src/HospitalManagementSystem.EntityFrameworkCore/EntityFrameworkCore/HospitalManagementSystemDbContext.cs View File

@ -1,4 +1,7 @@
using Microsoft.EntityFrameworkCore;
using HospitalManagementSystem.Appointments;
using HospitalManagementSystem.Departments;
using HospitalManagementSystem.Doctors;
using Microsoft.EntityFrameworkCore;
using Volo.Abp.AuditLogging.EntityFrameworkCore; using Volo.Abp.AuditLogging.EntityFrameworkCore;
using Volo.Abp.BackgroundJobs.EntityFrameworkCore; using Volo.Abp.BackgroundJobs.EntityFrameworkCore;
using Volo.Abp.Data; using Volo.Abp.Data;
@ -50,6 +53,10 @@ public class HospitalManagementSystemDbContext :
// Tenant Management // Tenant Management
public DbSet<Tenant> Tenants { get; set; } public DbSet<Tenant> Tenants { get; set; }
public DbSet<TenantConnectionString> TenantConnectionStrings { get; set; } public DbSet<TenantConnectionString> TenantConnectionStrings { get; set; }
//Custom entity
public DbSet<Department> Departments { get; set; }
public DbSet<Doctor> Doctors { get; set; }
public DbSet<Appointment> Appointments { get; set; }
#endregion #endregion


+ 2188
- 0
aspnet-core/src/HospitalManagementSystem.EntityFrameworkCore/Migrations/20250115133021_addedDepartment_Doctor_Appointment_Table.Designer.cs
File diff suppressed because it is too large
View File


+ 131
- 0
aspnet-core/src/HospitalManagementSystem.EntityFrameworkCore/Migrations/20250115133021_addedDepartment_Doctor_Appointment_Table.cs View File

@ -0,0 +1,131 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace HospitalManagementSystem.Migrations
{
/// <inheritdoc />
public partial class addedDepartment_Doctor_Appointment_Table : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "Departments",
columns: table => new
{
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
DepartmentNo = table.Column<string>(type: "nvarchar(max)", nullable: true),
DepartmentName = table.Column<string>(type: "nvarchar(max)", nullable: true),
DepartmentDate = table.Column<DateTime>(type: "datetime2", nullable: true),
DepartmentHead = table.Column<string>(type: "nvarchar(max)", nullable: true),
Status = table.Column<string>(type: "nvarchar(max)", nullable: true),
Description = table.Column<string>(type: "nvarchar(max)", nullable: true),
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true),
LastModifierId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
IsDeleted = table.Column<bool>(type: "bit", nullable: false, defaultValue: false),
DeleterId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
DeletionTime = table.Column<DateTime>(type: "datetime2", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_Departments", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Doctors",
columns: table => new
{
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
FirstName = table.Column<string>(type: "nvarchar(max)", nullable: true),
LastName = table.Column<string>(type: "nvarchar(max)", nullable: true),
Gender = table.Column<string>(type: "nvarchar(max)", nullable: true),
Mobile = table.Column<string>(type: "nvarchar(max)", nullable: true),
Password = table.Column<string>(type: "nvarchar(max)", nullable: true),
Designation = table.Column<string>(type: "nvarchar(max)", nullable: true),
DepartmentId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
Address = table.Column<string>(type: "nvarchar(max)", nullable: true),
Email = table.Column<string>(type: "nvarchar(max)", nullable: true),
DOB = table.Column<string>(type: "nvarchar(max)", nullable: true),
Education = table.Column<string>(type: "nvarchar(max)", nullable: true),
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true),
LastModifierId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
IsDeleted = table.Column<bool>(type: "bit", nullable: false, defaultValue: false),
DeleterId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
DeletionTime = table.Column<DateTime>(type: "datetime2", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_Doctors", x => x.Id);
table.ForeignKey(
name: "FK_Doctors_Departments_DepartmentId",
column: x => x.DepartmentId,
principalTable: "Departments",
principalColumn: "Id");
});
migrationBuilder.CreateTable(
name: "Appointments",
columns: table => new
{
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
FirstName = table.Column<string>(type: "nvarchar(max)", nullable: true),
LastName = table.Column<string>(type: "nvarchar(max)", nullable: true),
Gender = table.Column<string>(type: "nvarchar(max)", nullable: true),
Mobile = table.Column<string>(type: "nvarchar(max)", nullable: true),
Address = table.Column<string>(type: "nvarchar(max)", nullable: true),
Email = table.Column<string>(type: "nvarchar(max)", nullable: true),
DOB = table.Column<string>(type: "nvarchar(max)", nullable: true),
DoctorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
DateOfAppointment = table.Column<DateTime>(type: "datetime2", nullable: true),
TimeOfAppointment = table.Column<string>(type: "nvarchar(max)", nullable: true),
InjuryORContion = table.Column<string>(type: "nvarchar(max)", nullable: true),
Note = table.Column<string>(type: "nvarchar(max)", nullable: true),
CreationTime = table.Column<DateTime>(type: "datetime2", nullable: false),
CreatorId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
LastModificationTime = table.Column<DateTime>(type: "datetime2", nullable: true),
LastModifierId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
IsDeleted = table.Column<bool>(type: "bit", nullable: false, defaultValue: false),
DeleterId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
DeletionTime = table.Column<DateTime>(type: "datetime2", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_Appointments", x => x.Id);
table.ForeignKey(
name: "FK_Appointments_Doctors_DoctorId",
column: x => x.DoctorId,
principalTable: "Doctors",
principalColumn: "Id");
});
migrationBuilder.CreateIndex(
name: "IX_Appointments_DoctorId",
table: "Appointments",
column: "DoctorId");
migrationBuilder.CreateIndex(
name: "IX_Doctors_DepartmentId",
table: "Doctors",
column: "DepartmentId");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "Appointments");
migrationBuilder.DropTable(
name: "Doctors");
migrationBuilder.DropTable(
name: "Departments");
}
}
}

+ 2188
- 0
aspnet-core/src/HospitalManagementSystem.EntityFrameworkCore/Migrations/20250130095134_changeGenderEnumToString.Designer.cs
File diff suppressed because it is too large
View File


+ 36
- 0
aspnet-core/src/HospitalManagementSystem.EntityFrameworkCore/Migrations/20250130095134_changeGenderEnumToString.cs View File

@ -0,0 +1,36 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace HospitalManagementSystem.Migrations
{
/// <inheritdoc />
public partial class changeGenderEnumToString : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AlterColumn<int>(
name: "Gender",
table: "Appointments",
type: "int",
nullable: true,
oldClrType: typeof(string),
oldType: "nvarchar(max)",
oldNullable: true);
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.AlterColumn<string>(
name: "Gender",
table: "Appointments",
type: "nvarchar(max)",
nullable: true,
oldClrType: typeof(int),
oldType: "int",
oldNullable: true);
}
}
}

+ 234
- 0
aspnet-core/src/HospitalManagementSystem.EntityFrameworkCore/Migrations/HospitalManagementSystemDbContextModelSnapshot.cs View File

@ -24,6 +24,217 @@ namespace HospitalManagementSystem.Migrations
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
modelBuilder.Entity("HospitalManagementSystem.Appointments.Appointment", b =>
{
b.Property<Guid>("Id")
.HasColumnType("uniqueidentifier");
b.Property<string>("Address")
.HasColumnType("nvarchar(max)");
b.Property<DateTime>("CreationTime")
.HasColumnType("datetime2")
.HasColumnName("CreationTime");
b.Property<Guid?>("CreatorId")
.HasColumnType("uniqueidentifier")
.HasColumnName("CreatorId");
b.Property<string>("DOB")
.HasColumnType("nvarchar(max)");
b.Property<DateTime?>("DateOfAppointment")
.HasColumnType("datetime2");
b.Property<Guid?>("DeleterId")
.HasColumnType("uniqueidentifier")
.HasColumnName("DeleterId");
b.Property<DateTime?>("DeletionTime")
.HasColumnType("datetime2")
.HasColumnName("DeletionTime");
b.Property<Guid?>("DoctorId")
.HasColumnType("uniqueidentifier");
b.Property<string>("Email")
.HasColumnType("nvarchar(max)");
b.Property<string>("FirstName")
.HasColumnType("nvarchar(max)");
b.Property<int?>("Gender")
.HasColumnType("int");
b.Property<string>("InjuryORContion")
.HasColumnType("nvarchar(max)");
b.Property<bool>("IsDeleted")
.ValueGeneratedOnAdd()
.HasColumnType("bit")
.HasDefaultValue(false)
.HasColumnName("IsDeleted");
b.Property<DateTime?>("LastModificationTime")
.HasColumnType("datetime2")
.HasColumnName("LastModificationTime");
b.Property<Guid?>("LastModifierId")
.HasColumnType("uniqueidentifier")
.HasColumnName("LastModifierId");
b.Property<string>("LastName")
.HasColumnType("nvarchar(max)");
b.Property<string>("Mobile")
.HasColumnType("nvarchar(max)");
b.Property<string>("Note")
.HasColumnType("nvarchar(max)");
b.Property<string>("TimeOfAppointment")
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.HasIndex("DoctorId");
b.ToTable("Appointments");
});
modelBuilder.Entity("HospitalManagementSystem.Departments.Department", b =>
{
b.Property<Guid>("Id")
.HasColumnType("uniqueidentifier");
b.Property<DateTime>("CreationTime")
.HasColumnType("datetime2")
.HasColumnName("CreationTime");
b.Property<Guid?>("CreatorId")
.HasColumnType("uniqueidentifier")
.HasColumnName("CreatorId");
b.Property<Guid?>("DeleterId")
.HasColumnType("uniqueidentifier")
.HasColumnName("DeleterId");
b.Property<DateTime?>("DeletionTime")
.HasColumnType("datetime2")
.HasColumnName("DeletionTime");
b.Property<DateTime?>("DepartmentDate")
.HasColumnType("datetime2");
b.Property<string>("DepartmentHead")
.HasColumnType("nvarchar(max)");
b.Property<string>("DepartmentName")
.HasColumnType("nvarchar(max)");
b.Property<string>("DepartmentNo")
.HasColumnType("nvarchar(max)");
b.Property<string>("Description")
.HasColumnType("nvarchar(max)");
b.Property<bool>("IsDeleted")
.ValueGeneratedOnAdd()
.HasColumnType("bit")
.HasDefaultValue(false)
.HasColumnName("IsDeleted");
b.Property<DateTime?>("LastModificationTime")
.HasColumnType("datetime2")
.HasColumnName("LastModificationTime");
b.Property<Guid?>("LastModifierId")
.HasColumnType("uniqueidentifier")
.HasColumnName("LastModifierId");
b.Property<string>("Status")
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("Departments");
});
modelBuilder.Entity("HospitalManagementSystem.Doctors.Doctor", b =>
{
b.Property<Guid>("Id")
.HasColumnType("uniqueidentifier");
b.Property<string>("Address")
.HasColumnType("nvarchar(max)");
b.Property<DateTime>("CreationTime")
.HasColumnType("datetime2")
.HasColumnName("CreationTime");
b.Property<Guid?>("CreatorId")
.HasColumnType("uniqueidentifier")
.HasColumnName("CreatorId");
b.Property<string>("DOB")
.HasColumnType("nvarchar(max)");
b.Property<Guid?>("DeleterId")
.HasColumnType("uniqueidentifier")
.HasColumnName("DeleterId");
b.Property<DateTime?>("DeletionTime")
.HasColumnType("datetime2")
.HasColumnName("DeletionTime");
b.Property<Guid?>("DepartmentId")
.HasColumnType("uniqueidentifier");
b.Property<string>("Designation")
.HasColumnType("nvarchar(max)");
b.Property<string>("Education")
.HasColumnType("nvarchar(max)");
b.Property<string>("Email")
.HasColumnType("nvarchar(max)");
b.Property<string>("FirstName")
.HasColumnType("nvarchar(max)");
b.Property<string>("Gender")
.HasColumnType("nvarchar(max)");
b.Property<bool>("IsDeleted")
.ValueGeneratedOnAdd()
.HasColumnType("bit")
.HasDefaultValue(false)
.HasColumnName("IsDeleted");
b.Property<DateTime?>("LastModificationTime")
.HasColumnType("datetime2")
.HasColumnName("LastModificationTime");
b.Property<Guid?>("LastModifierId")
.HasColumnType("uniqueidentifier")
.HasColumnName("LastModifierId");
b.Property<string>("LastName")
.HasColumnType("nvarchar(max)");
b.Property<string>("Mobile")
.HasColumnType("nvarchar(max)");
b.Property<string>("Password")
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.HasIndex("DepartmentId");
b.ToTable("Doctors");
});
modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLog", b => modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLog", b =>
{ {
b.Property<Guid>("Id") b.Property<Guid>("Id")
@ -1764,6 +1975,24 @@ namespace HospitalManagementSystem.Migrations
b.ToTable("AbpTenantConnectionStrings", (string)null); b.ToTable("AbpTenantConnectionStrings", (string)null);
}); });
modelBuilder.Entity("HospitalManagementSystem.Appointments.Appointment", b =>
{
b.HasOne("HospitalManagementSystem.Doctors.Doctor", "Doctor")
.WithMany("Appointments")
.HasForeignKey("DoctorId");
b.Navigation("Doctor");
});
modelBuilder.Entity("HospitalManagementSystem.Doctors.Doctor", b =>
{
b.HasOne("HospitalManagementSystem.Departments.Department", "Department")
.WithMany()
.HasForeignKey("DepartmentId");
b.Navigation("Department");
});
modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLogAction", b => modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLogAction", b =>
{ {
b.HasOne("Volo.Abp.AuditLogging.AuditLog", null) b.HasOne("Volo.Abp.AuditLogging.AuditLog", null)
@ -1906,6 +2135,11 @@ namespace HospitalManagementSystem.Migrations
.IsRequired(); .IsRequired();
}); });
modelBuilder.Entity("HospitalManagementSystem.Doctors.Doctor", b =>
{
b.Navigation("Appointments");
});
modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLog", b => modelBuilder.Entity("Volo.Abp.AuditLogging.AuditLog", b =>
{ {
b.Navigation("Actions"); b.Navigation("Actions");


Loading…
Cancel
Save