├── AppointmentScheduling ├── Views │ ├── _ViewStart.cshtml │ ├── _ViewImports.cshtml │ ├── Home │ │ ├── Privacy.cshtml │ │ └── Index.cshtml │ ├── Shared │ │ ├── _ValidationScriptsPartial.cshtml │ │ ├── Error.cshtml │ │ ├── _LoginPartial.cshtml │ │ ├── _Layout.cshtml │ │ └── _AddEditAppointment.cshtml │ ├── Appointment │ │ └── Index.cshtml │ └── Account │ │ ├── Login.cshtml │ │ └── Register.cshtml ├── wwwroot │ ├── favicon.ico │ ├── js │ │ └── site.js │ ├── lib │ │ ├── select2 │ │ │ └── js │ │ │ │ └── i18n │ │ │ │ ├── zh-TW.min.js │ │ │ │ ├── zh-CN.min.js │ │ │ │ ├── ja.min.js │ │ │ │ ├── az.min.js │ │ │ │ ├── ko.min.js │ │ │ │ ├── zh-TW.js │ │ │ │ ├── vi.min.js │ │ │ │ ├── tk.min.js │ │ │ │ ├── zh-CN.js │ │ │ │ ├── id.min.js │ │ │ │ ├── tr.min.js │ │ │ │ ├── ar.min.js │ │ │ │ ├── th.min.js │ │ │ │ ├── ja.js │ │ │ │ ├── nb.min.js │ │ │ │ ├── km.min.js │ │ │ │ ├── sv.min.js │ │ │ │ ├── az.js │ │ │ │ ├── is.min.js │ │ │ │ ├── et.min.js │ │ │ │ ├── fi.min.js │ │ │ │ ├── ko.js │ │ │ │ ├── hu.min.js │ │ │ │ ├── ms.min.js │ │ │ │ ├── da.min.js │ │ │ │ ├── ka.min.js │ │ │ │ ├── vi.js │ │ │ │ ├── bg.min.js │ │ │ │ ├── hy.min.js │ │ │ │ ├── fa.min.js │ │ │ │ ├── hi.min.js │ │ │ │ ├── tk.js │ │ │ │ ├── en.min.js │ │ │ │ ├── he.min.js │ │ │ │ ├── hr.min.js │ │ │ │ ├── id.js │ │ │ │ ├── tr.js │ │ │ │ ├── ar.js │ │ │ │ ├── th.js │ │ │ │ ├── de.min.js │ │ │ │ ├── eu.min.js │ │ │ │ ├── nb.js │ │ │ │ ├── af.min.js │ │ │ │ ├── km.js │ │ │ │ ├── pt.min.js │ │ │ │ ├── sv.js │ │ │ │ ├── is.js │ │ │ │ ├── lv.min.js │ │ │ │ ├── bn.min.js │ │ │ │ ├── fi.js │ │ │ │ ├── mk.min.js │ │ │ │ ├── pt-BR.min.js │ │ │ │ ├── et.js │ │ │ │ ├── ca.min.js │ │ │ │ ├── it.min.js │ │ │ │ ├── ps.min.js │ │ │ │ ├── sq.min.js │ │ │ │ ├── hu.js │ │ │ │ ├── ms.js │ │ │ │ ├── nl.min.js │ │ │ │ ├── da.js │ │ │ │ ├── ka.js │ │ │ │ ├── lt.min.js │ │ │ │ ├── ne.min.js │ │ │ │ ├── bg.js │ │ │ │ ├── es.min.js │ │ │ │ ├── fr.min.js │ │ │ │ ├── gl.min.js │ │ │ │ ├── hy.js │ │ │ │ ├── ro.min.js │ │ │ │ ├── sl.min.js │ │ │ │ ├── fa.js │ │ │ │ ├── en.js │ │ │ │ ├── hi.js │ │ │ │ ├── pl.min.js │ │ │ │ ├── bs.min.js │ │ │ │ ├── he.js │ │ │ │ ├── hr.js │ │ │ │ ├── sr.min.js │ │ │ │ ├── sr-Cyrl.min.js │ │ │ │ ├── de.js │ │ │ │ ├── af.js │ │ │ │ ├── eu.js │ │ │ │ ├── el.min.js │ │ │ │ ├── uk.min.js │ │ │ │ ├── mk.js │ │ │ │ ├── pt-BR.js │ │ │ │ ├── pt.js │ │ │ │ ├── bn.js │ │ │ │ ├── lv.js │ │ │ │ ├── ru.min.js │ │ │ │ ├── ca.js │ │ │ │ ├── ps.js │ │ │ │ ├── sq.js │ │ │ │ ├── it.js │ │ │ │ ├── nl.js │ │ │ │ ├── ne.js │ │ │ │ ├── dsb.min.js │ │ │ │ ├── fr.js │ │ │ │ ├── hsb.min.js │ │ │ │ ├── es.js │ │ │ │ ├── gl.js │ │ │ │ ├── sl.js │ │ │ │ ├── ro.js │ │ │ │ ├── lt.js │ │ │ │ ├── pl.js │ │ │ │ ├── bs.js │ │ │ │ ├── el.js │ │ │ │ ├── sr.js │ │ │ │ ├── uk.js │ │ │ │ ├── sr-Cyrl.js │ │ │ │ ├── ru.js │ │ │ │ ├── hsb.js │ │ │ │ ├── dsb.js │ │ │ │ ├── cs.min.js │ │ │ │ ├── sk.min.js │ │ │ │ ├── cs.js │ │ │ │ └── sk.js │ │ ├── jquery-validation-unobtrusive │ │ │ ├── LICENSE.txt │ │ │ └── jquery.validate.unobtrusive.min.js │ │ ├── jquery-validation │ │ │ └── LICENSE.md │ │ ├── bootstrap │ │ │ ├── LICENSE │ │ │ └── dist │ │ │ │ └── css │ │ │ │ ├── bootstrap-reboot.min.css │ │ │ │ └── bootstrap-reboot.css │ │ └── jquery │ │ │ └── LICENSE.txt │ └── css │ │ └── site.css ├── Properties │ ├── serviceDependencies.json │ ├── serviceDependencies.AppointmentScheduling1 - Web Deploy.json │ ├── launchSettings.json │ └── ServiceDependencies │ │ └── AppointmentScheduling1 - Web Deploy │ │ ├── mssql1.arm.json │ │ └── profile.arm.json ├── libman.json ├── .config │ └── dotnet-tools.json ├── appsettings.Development.json ├── Models │ ├── ErrorViewModel.cs │ ├── ViewModels │ │ ├── DoctorVM.cs │ │ ├── PatientVM.cs │ │ ├── CommonResponse.cs │ │ ├── LoginViewModel.cs │ │ ├── AppointmentVM.cs │ │ └── RegisterViewModel.cs │ ├── ApplicationUser.cs │ ├── ApplicationDbContext.cs │ └── Appointment.cs ├── DbInitializer │ ├── IDbInitializer.cs │ └── DbInitializer.cs ├── appsettings.json ├── Migrations │ ├── 20210110031506_AddApplicationUser.cs │ ├── 20210118010706_changedurationSpelling.cs │ └── 20210117184706_AddAppointmentToDb.cs ├── Program.cs ├── Services │ ├── IAppointmentService.cs │ └── AppointmentService.cs ├── Controllers │ ├── AppointmentController.cs │ ├── HomeController.cs │ ├── AccountController.cs │ └── Api │ │ └── AppointmentApiController.cs ├── AppointmentScheduling.csproj ├── Utility │ ├── EmailSender.cs │ └── Helper.cs └── Startup.cs ├── AppointmentScheduling.sln ├── .gitattributes └── .gitignore /AppointmentScheduling/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } 4 | -------------------------------------------------------------------------------- /AppointmentScheduling/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nirzaf/AppointmentScheduler-master/HEAD/AppointmentScheduling/wwwroot/favicon.ico -------------------------------------------------------------------------------- /AppointmentScheduling/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using AppointmentScheduling 2 | @using AppointmentScheduling.Models 3 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 4 | -------------------------------------------------------------------------------- /AppointmentScheduling/Properties/serviceDependencies.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "mssql1": { 4 | "type": "mssql", 5 | "connectionId": "DefaultConnection" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /AppointmentScheduling/Views/Home/Privacy.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "Privacy Policy"; 3 | } 4 |
Use this page to detail your site's privacy policy.
7 | -------------------------------------------------------------------------------- /AppointmentScheduling/Views/Shared/_ValidationScriptsPartial.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /AppointmentScheduling/libman.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.0", 3 | "defaultProvider": "cdnjs", 4 | "libraries": [ 5 | { 6 | "library": "select2@4.0.13", 7 | "destination": "wwwroot/lib/select2/" 8 | } 9 | ] 10 | } -------------------------------------------------------------------------------- /AppointmentScheduling/.config/dotnet-tools.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "isRoot": true, 4 | "tools": { 5 | "dotnet-ef": { 6 | "version": "5.0.2", 7 | "commands": [ 8 | "dotnet-ef" 9 | ] 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /AppointmentScheduling/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /AppointmentScheduling/wwwroot/js/site.js: -------------------------------------------------------------------------------- 1 | // Please see documentation at https://docs.microsoft.com/aspnet/core/client-side/bundling-and-minification 2 | // for details on configuring this project to bundle and minify static web assets. 3 | 4 | // Write your JavaScript code. 5 | -------------------------------------------------------------------------------- /AppointmentScheduling/Views/Home/Index.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "Home Page"; 3 | } 4 | 5 |Learn about building Web apps with ASP.NET Core.
8 |
12 | Request ID: @Model.RequestId
13 |
18 | Swapping to Development environment will display more detailed information about the error that occurred. 19 |
20 |21 | The Development environment shouldn't be enabled for deployed applications. 22 | It can result in displaying sensitive information from exceptions to end users. 23 | For local debugging, enable the Development environment by setting the ASPNETCORE_ENVIRONMENT environment variable to Development 24 | and restarting the app. 25 |
26 | -------------------------------------------------------------------------------- /AppointmentScheduling/Controllers/AppointmentController.cs: -------------------------------------------------------------------------------- 1 | using AppointmentScheduling.Services; 2 | using AppointmentScheduling.Utility; 3 | using Microsoft.AspNetCore.Mvc; 4 | using System; 5 | using System.Collections.Generic; 6 | using System.Linq; 7 | using System.Threading.Tasks; 8 | 9 | namespace AppointmentScheduling.Controllers 10 | { 11 | public class AppointmentController : Controller 12 | { 13 | 14 | private readonly IAppointmentService _appointmentService; 15 | 16 | public AppointmentController(IAppointmentService appointmentService) 17 | { 18 | _appointmentService = appointmentService; 19 | } 20 | 21 | public IActionResult Index() 22 | { 23 | 24 | ViewBag.Duration = Helper.GetTimeDropDown(); 25 | ViewBag.DoctorList = _appointmentService.GetDoctorList(); 26 | ViewBag.PatientList = _appointmentService.GetPatientList(); 27 | 28 | return View(); 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /AppointmentScheduling/wwwroot/lib/select2/js/i18n/ru.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ru",[],function(){function n(n,e,r,u){return n%10<5&&n%10>0&&n%100<5||n%100>20?n%10>1?r:e:u}return{errorLoading:function(){return"Невозможно загрузить результаты"},inputTooLong:function(e){var r=e.input.length-e.maximum,u="Пожалуйста, введите на "+r+" символ";return u+=n(r,"","a","ов"),u+=" меньше"},inputTooShort:function(e){var r=e.minimum-e.input.length,u="Пожалуйста, введите ещё хотя бы "+r+" символ";return u+=n(r,"","a","ов")},loadingMore:function(){return"Загрузка данных…"},maximumSelected:function(e){var r="Вы можете выбрать не более "+e.maximum+" элемент";return r+=n(e.maximum,"","a","ов")},noResults:function(){return"Совпадений не найдено"},searching:function(){return"Поиск…"},removeAllItems:function(){return"Удалить все элементы"}}}),n.define,n.require}(); -------------------------------------------------------------------------------- /AppointmentScheduling/wwwroot/lib/select2/js/i18n/hsb.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/hsb",[],function(){var n=["znamješko","znamješce","znamješka","znamješkow"],e=["zapisk","zapiskaj","zapiski","zapiskow"],u=function(n,e){return 1===n?e[0]:2===n?e[1]:n>2&&n<=4?e[2]:n>=5?e[3]:void 0};return{errorLoading:function(){return"Wuslědki njedachu so začitać."},inputTooLong:function(e){var a=e.input.length-e.maximum;return"Prošu zhašej "+a+" "+u(a,n)},inputTooShort:function(e){var a=e.minimum-e.input.length;return"Prošu zapodaj znajmjeńša "+a+" "+u(a,n)},loadingMore:function(){return"Dalše wuslědki so začitaja…"},maximumSelected:function(n){return"Móžeš jenož "+n.maximum+" "+u(n.maximum,e)+"wubrać"},noResults:function(){return"Žane wuslědki namakane"},searching:function(){return"Pyta so…"},removeAllItems:function(){return"Remove all items"}}}),n.define,n.require}(); -------------------------------------------------------------------------------- /AppointmentScheduling/wwwroot/lib/select2/js/i18n/dsb.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | !function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/dsb",[],function(){var n=["znamuško","znamušce","znamuška","znamuškow"],e=["zapisk","zapiska","zapiski","zapiskow"],u=function(n,e){return 1===n?e[0]:2===n?e[1]:n>2&&n<=4?e[2]:n>=5?e[3]:void 0};return{errorLoading:function(){return"Wuslědki njejsu se dali zacytaś."},inputTooLong:function(e){var a=e.input.length-e.maximum;return"Pšosym lašuj "+a+" "+u(a,n)},inputTooShort:function(e){var a=e.minimum-e.input.length;return"Pšosym zapódaj nanejmjenjej "+a+" "+u(a,n)},loadingMore:function(){return"Dalšne wuslědki se zacytaju…"},maximumSelected:function(n){return"Móžoš jano "+n.maximum+" "+u(n.maximum,e)+"wubraś."},noResults:function(){return"Žedne wuslědki namakane"},searching:function(){return"Pyta se…"},removeAllItems:function(){return"Remove all items"}}}),n.define,n.require}(); -------------------------------------------------------------------------------- /AppointmentScheduling/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "iisSettings": { 3 | "windowsAuthentication": false, 4 | "anonymousAuthentication": true, 5 | "iisExpress": { 6 | "applicationUrl": "http://localhost:50870", 7 | "sslPort": 44341 8 | } 9 | }, 10 | "profiles": { 11 | "IIS Express": { 12 | "commandName": "IISExpress", 13 | "launchBrowser": true, 14 | "environmentVariables": { 15 | "ASPNETCORE_ENVIRONMENT": "Development", 16 | "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" 17 | } 18 | }, 19 | "AppointmentScheduling": { 20 | "commandName": "Project", 21 | "dotnetRunMessages": "true", 22 | "launchBrowser": true, 23 | "applicationUrl": "https://localhost:5001;http://localhost:5000", 24 | "environmentVariables": { 25 | "ASPNETCORE_ENVIRONMENT": "Development", 26 | "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /AppointmentScheduling/Models/ViewModels/RegisterViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | 7 | namespace AppointmentScheduling.Models.ViewModels 8 | { 9 | public class RegisterViewModel 10 | { 11 | [Required] 12 | public string Name { get; set; } 13 | 14 | [Required] 15 | [EmailAddress] 16 | public string Email { get; set; } 17 | 18 | [Required] 19 | [DataType(DataType.Password)] 20 | [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)] 21 | public string Password { get; set; } 22 | 23 | [DataType(DataType.Password)] 24 | [Display(Name = "Confirm Password")] 25 | [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")] 26 | public string ConfirmPassword { get; set; } 27 | [Required] 28 | [Display(Name = "Role Name")] 29 | public string RoleName { get; set; } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /AppointmentScheduling/Controllers/HomeController.cs: -------------------------------------------------------------------------------- 1 | using AppointmentScheduling.Models; 2 | using Microsoft.AspNetCore.Mvc; 3 | using Microsoft.Extensions.Logging; 4 | using System; 5 | using System.Collections.Generic; 6 | using System.Diagnostics; 7 | using System.Linq; 8 | using System.Threading.Tasks; 9 | 10 | namespace AppointmentScheduling.Controllers 11 | { 12 | public class HomeController : Controller 13 | { 14 | private readonly ILogger@HttpContextAccessor.HttpContext.Session.GetString("ssuserName")'s account is logged in
42 |