Commit 2aeaaeea authored by hasan khaddour's avatar hasan khaddour

fix s

parent 2f7b996d
...@@ -2,14 +2,360 @@ ...@@ -2,14 +2,360 @@
# This .gitignore file was automatically created by Microsoft(R) Visual Studio. # This .gitignore file was automatically created by Microsoft(R) Visual Studio.
################################################################################ ################################################################################
/.vs/Medic/v16 *.rsuser
/.vs/Medic/config/applicationhost.config *.suo
/ApplicationCore/bin/Debug/net5.0 *.user
/Infrastructure/bin/Debug/net5.0 *.userosscache
/Infrastructure/obj/Debug/net5.0/ref *.sln.docstates
/ApplicationCore/obj/Debug/net5.0/ref/ApplicationCore.dll
/ApplicationCore/obj/Debug/net5.0/ApplicationCore.csproj.CoreCompileInputs.cache # User-specific files (MonoDevelop/Xamarin Studio)
/ApplicationCore/obj/Debug/net5.0/ApplicationCore.pdb *.userprefs
/ApplicationCore/obj/Debug/net5.0/ApplicationCore.genruntimeconfig.cache
/ApplicationCore/obj/Debug/net5.0/ApplicationCore.dll # Mono auto generated files
/ApplicationCore/obj/Debug/net5.0/ApplicationCore.csproj.FileListAbsolute.txt mono_crash.*
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
[Ww][Ii][Nn]32/
[Aa][Rr][Mm]/
[Aa][Rr][Mm]64/
bld/
[Bb]in/
[Oo]bj/
[Oo]ut/
[Ll]og/
[Ll]ogs/
# Visual Studio 2015/2017 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/
# Visual Studio 2017 auto generated files
Generated\ Files/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
# NUnit
*.VisualState.xml
TestResult.xml
nunit-*.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
# Benchmark Results
BenchmarkDotNet.Artifacts/
# .NET Core
project.lock.json
project.fragment.lock.json
artifacts/
# ASP.NET Scaffolding
ScaffoldingReadMe.txt
# StyleCop
StyleCopReport.xml
# Files built by Visual Studio
*_i.c
*_p.c
*_h.h
*.ilk
*.meta
*.obj
*.iobj
*.pch
*.pdb
*.ipdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*_wpftmp.csproj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb
# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap
# Visual Studio Trace Files
*.e2e
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# AxoCover is a Code Coverage Tool
.axoCover/*
!.axoCover/settings.json
# Coverlet is a free, cross platform Code Coverage Tool
coverage*.json
coverage*.xml
coverage*.info
# Visual Studio code coverage results
*.coverage
*.coveragexml
# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# Note: Comment the next line if you want to checkin your web deploy settings,
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj
# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted
PublishScripts/
# NuGet Packages
*.nupkg
# NuGet Symbol Packages
*.snupkg
# The packages folder can be ignored because of Package Restore
**/[Pp]ackages/*
# except build/, which is used as an MSBuild target.
!**/[Pp]ackages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/[Pp]ackages/repositories.config
# NuGet v3's project.json files produces more ignorable files
*.nuget.props
*.nuget.targets
# Microsoft Azure Build Output
csx/
*.build.csdef
# Microsoft Azure Emulator
ecf/
rcf/
# Windows Store app package directories and files
AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt
*.appx
*.appxbundle
*.appxupload
# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!?*.[Cc]ache/
# Others
ClientBin/
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.jfm
*.pfx
*.publishsettings
orleans.codegen.cs
# Including strong name files can present a security risk
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
#*.snk
# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
#bower_components/
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
ServiceFabricBackup/
*.rptproj.bak
# SQL Server files
*.mdf
*.ldf
*.ndf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
*.rptproj.rsuser
*- [Bb]ackup.rdl
*- [Bb]ackup ([0-9]).rdl
*- [Bb]ackup ([0-9][0-9]).rdl
# Microsoft Fakes
FakesAssemblies/
# GhostDoc plugin setting file
*.GhostDoc.xml
# Node.js Tools for Visual Studio
.ntvs_analysis.dat
node_modules/
# Visual Studio 6 build log
*.plg
# Visual Studio 6 workspace options file
*.opt
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
*.vbw
# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions
# Paket dependency manager
.paket/paket.exe
paket-files/
# FAKE - F# Make
.fake/
# CodeRush personal settings
.cr/personal
# Python Tools for Visual Studio (PTVS)
__pycache__/
*.pyc
# Cake - Uncomment if you are using it
# tools/**
# !tools/packages.config
# Tabs Studio
*.tss
# Telerik's JustMock configuration file
*.jmconfig
# BizTalk build output
*.btp.cs
*.btm.cs
*.odx.cs
*.xsd.cs
# OpenCover UI analysis results
OpenCover/
# Azure Stream Analytics local run output
ASALocalRun/
# MSBuild Binary and Structured Log
*.binlog
# NVidia Nsight GPU debugger configuration file
*.nvuser
# MFractors (Xamarin productivity tool) working folder
.mfractor/
# Local History for Visual Studio
.localhistory/
# BeatPulse healthcheck temp database
healthchecksdb
# Backup folder for Package Reference Convert tool in Visual Studio 2017
MigrationBackup/
# Ionide (cross platform F# VS Code tools) working folder
.ionide/
# Fody - auto-generated XML schema
FodyWeavers.xsd
\ No newline at end of file
using System;
using ApplicationCore.Entities;
using Infrastructure.Data;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Identity.UI;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
[assembly: HostingStartup(typeof(WebPresentation.Areas.Identity.IdentityHostingStartup))]
namespace WebPresentation.Areas.Identity
{
public class IdentityHostingStartup : IHostingStartup
{
public void Configure(IWebHostBuilder builder)
{
builder.ConfigureServices((context, services) => {
});
}
}
}
\ No newline at end of file
@page
@model AccessDeniedModel
@{
ViewData["Title"] = "Access denied";
}
<section class="page-section container">
<div class="blankslate col-6 offset-3 p-5">
<img class="blankslate-top-img"style="max-height:300px ; max-width:300px" src="/img/portfolio/Denide.png" />
<div class="blankslate-body">
<h4>You don't have access to this issue</h4>
<p>
Accessing the dashboard page required Admin permission.
</p>
</div>
<div class="blankslate-actions">
<button class="btn btn-default" type="button">Logout</button>
<a class="btn btn-primary" type="" role="button" asp-controller="Home">Go Home</a>
</div>
</div>
</section>
\ No newline at end of file
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc.RazorPages;
namespace WebPresentation.Areas.Identity.Pages.Account
{
public class AccessDeniedModel : PageModel
{
public void OnGet()
{
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text.Encodings.Web;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using ApplicationCore.Entities;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Identity.UI.Services;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.Extensions.Logging;
namespace WebPresentation.Areas.Identity.Pages.Account
{
[AllowAnonymous]
public class LoginModel : PageModel
{
private readonly UserManager<User> _userManager;
private readonly SignInManager<User> _signInManager;
private readonly ILogger<LoginModel> _logger;
public LoginModel(SignInManager<User> signInManager,
ILogger<LoginModel> logger,
UserManager<User> userManager)
{
_userManager = userManager;
_signInManager = signInManager;
_logger = logger;
}
[BindProperty]
public InputModel Input { get; set; }
public IList<AuthenticationScheme> ExternalLogins { get; set; }
public string ReturnUrl { get; set; }
[TempData]
public string ErrorMessage { get; set; }
public class InputModel
{
[Required]
[EmailAddress]
public string Email { get; set; }
[Required]
[DataType(DataType.Password)]
public string Password { get; set; }
[Display(Name = "Remember me?")]
public bool RememberMe { get; set; }
}
public async Task OnGetAsync(string returnUrl = null)
{
if (!string.IsNullOrEmpty(ErrorMessage))
{
ModelState.AddModelError(string.Empty, ErrorMessage);
}
returnUrl ??= Url.Content("~/");
// Clear the existing external cookie to ensure a clean login process
await HttpContext.SignOutAsync(IdentityConstants.ExternalScheme);
ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList();
ReturnUrl = returnUrl;
}
public async Task<IActionResult> OnPostAsync(string returnUrl = null)
{
returnUrl ??= Url.Content("~/");
ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList();
if (ModelState.IsValid)
{
// This doesn't count login failures towards account lockout
// To enable password failures to trigger account lockout, set lockoutOnFailure: true
var result = await _signInManager.PasswordSignInAsync(Input.Email, Input.Password, Input.RememberMe, lockoutOnFailure: false);
if (result.Succeeded)
{
_logger.LogInformation("User logged in.");
return LocalRedirect(returnUrl);
}
if (result.RequiresTwoFactor)
{
return RedirectToPage("./LoginWith2fa", new { ReturnUrl = returnUrl, RememberMe = Input.RememberMe });
}
if (result.IsLockedOut)
{
_logger.LogWarning("User account locked out.");
return RedirectToPage("./Lockout");
}
else
{
ModelState.AddModelError(string.Empty, "Invalid login attempt.");
return Page();
}
}
// If we got this far, something failed, redisplay form
return Page();
}
}
}
@page
@model LogoutModel
@{
ViewData["Title"] = "Log out";
}
<header>
<h1>@ViewData["Title"]</h1>
@{
if (User.Identity.IsAuthenticated)
{
<form class="form-inline" asp-area="Identity" asp-page="/Account/Logout" asp-route-returnUrl="@Url.Page("/", new { area = "" })" method="post">
<button type="submit" class="nav-link btn btn-link text-dark">Click here to Logout</button>
</form>
}
else
{
<p>You have successfully logged out of the application.</p>
}
}
</header>
\ No newline at end of file
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using ApplicationCore.Entities;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.Extensions.Logging;
namespace WebPresentation.Areas.Identity.Pages.Account
{
[AllowAnonymous]
public class LogoutModel : PageModel
{
private readonly SignInManager<User> _signInManager;
private readonly ILogger<LogoutModel> _logger;
public LogoutModel(SignInManager<User> signInManager, ILogger<LogoutModel> logger)
{
_signInManager = signInManager;
_logger = logger;
}
public void OnGet()
{
}
public async Task<IActionResult> OnPost(string returnUrl = null)
{
await _signInManager.SignOutAsync();
_logger.LogInformation("User logged out.");
if (returnUrl != null)
{
return LocalRedirect(returnUrl);
}
else
{
return RedirectToPage();
}
}
}
}
@page
@model ChangePasswordModel
@{
ViewData["Title"] = "Change password";
ViewData["ActivePage"] = ManageNavPages.ChangePassword;
}
<h4>@ViewData["Title"]</h4>
<partial name="_StatusMessage" for="StatusMessage" />
<div class="row">
<div class="col-md-6">
<form id="change-password-form" method="post">
<div asp-validation-summary="All" class="text-danger"></div>
<div class="form-group">
<label asp-for="Input.OldPassword"></label>
<input asp-for="Input.OldPassword" class="form-control" />
<span asp-validation-for="Input.OldPassword" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Input.NewPassword"></label>
<input asp-for="Input.NewPassword" class="form-control" />
<span asp-validation-for="Input.NewPassword" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Input.ConfirmPassword"></label>
<input asp-for="Input.ConfirmPassword" class="form-control" />
<span asp-validation-for="Input.ConfirmPassword" class="text-danger"></span>
</div>
<button type="submit" class="btn btn-primary">Update password</button>
</form>
</div>
</div>
@section Scripts {
<partial name="_ValidationScriptsPartial" />
}
\ No newline at end of file
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Threading.Tasks;
using ApplicationCore.Entities;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.Extensions.Logging;
namespace WebPresentation.Areas.Identity.Pages.Account.Manage
{
public class ChangePasswordModel : PageModel
{
private readonly UserManager<User> _userManager;
private readonly SignInManager<User> _signInManager;
private readonly ILogger<ChangePasswordModel> _logger;
public ChangePasswordModel(
UserManager<User> userManager,
SignInManager<User> signInManager,
ILogger<ChangePasswordModel> logger)
{
_userManager = userManager;
_signInManager = signInManager;
_logger = logger;
}
[BindProperty]
public InputModel Input { get; set; }
[TempData]
public string StatusMessage { get; set; }
public class InputModel
{
[Required]
[DataType(DataType.Password)]
[Display(Name = "Current password")]
public string OldPassword { get; set; }
[Required]
[StringLength(100, ErrorMessage = "The {0} must be at least {2} and at max {1} characters long.", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "New password")]
public string NewPassword { get; set; }
[DataType(DataType.Password)]
[Display(Name = "Confirm new password")]
[Compare("NewPassword", ErrorMessage = "The new password and confirmation password do not match.")]
public string ConfirmPassword { get; set; }
}
public async Task<IActionResult> OnGetAsync()
{
var user = await _userManager.GetUserAsync(User);
if (user == null)
{
return NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'.");
}
var hasPassword = await _userManager.HasPasswordAsync(user);
if (!hasPassword)
{
return RedirectToPage("./SetPassword");
}
return Page();
}
public async Task<IActionResult> OnPostAsync()
{
if (!ModelState.IsValid)
{
return Page();
}
var user = await _userManager.GetUserAsync(User);
if (user == null)
{
return NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'.");
}
var changePasswordResult = await _userManager.ChangePasswordAsync(user, Input.OldPassword, Input.NewPassword);
if (!changePasswordResult.Succeeded)
{
foreach (var error in changePasswordResult.Errors)
{
ModelState.AddModelError(string.Empty, error.Description);
}
return Page();
}
await _signInManager.RefreshSignInAsync(user);
_logger.LogInformation("User changed their password successfully.");
StatusMessage = "Your password has been changed.";
return RedirectToPage();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc.Rendering;
namespace WebPresentation.Areas.Identity.Pages.Account.Manage
{
public static class ManageNavPages
{
public static string Index => "Index";
public static string Email => "Email";
public static string ChangePassword => "ChangePassword";
public static string DownloadPersonalData => "DownloadPersonalData";
public static string DeletePersonalData => "DeletePersonalData";
public static string ExternalLogins => "ExternalLogins";
public static string PersonalData => "PersonalData";
public static string TwoFactorAuthentication => "TwoFactorAuthentication";
public static string IndexNavClass(ViewContext viewContext) => PageNavClass(viewContext, Index);
public static string EmailNavClass(ViewContext viewContext) => PageNavClass(viewContext, Email);
public static string ChangePasswordNavClass(ViewContext viewContext) => PageNavClass(viewContext, ChangePassword);
public static string DownloadPersonalDataNavClass(ViewContext viewContext) => PageNavClass(viewContext, DownloadPersonalData);
public static string DeletePersonalDataNavClass(ViewContext viewContext) => PageNavClass(viewContext, DeletePersonalData);
public static string ExternalLoginsNavClass(ViewContext viewContext) => PageNavClass(viewContext, ExternalLogins);
public static string PersonalDataNavClass(ViewContext viewContext) => PageNavClass(viewContext, PersonalData);
public static string TwoFactorAuthenticationNavClass(ViewContext viewContext) => PageNavClass(viewContext, TwoFactorAuthentication);
private static string PageNavClass(ViewContext viewContext, string page)
{
var activePage = viewContext.ViewData["ActivePage"] as string
?? System.IO.Path.GetFileNameWithoutExtension(viewContext.ActionDescriptor.DisplayName);
return string.Equals(activePage, page, StringComparison.OrdinalIgnoreCase) ? "active" : null;
}
}
}
@inject SignInManager<User> SignInManager
@{
var hasExternalLogins = (await SignInManager.GetExternalAuthenticationSchemesAsync()).Any();
}
<ul class="nav nav-pills flex-column">
<li class="nav-item"><a class="nav-link @ManageNavPages.IndexNavClass(ViewContext)" id="profile" asp-page="./Index">Profile</a></li>
<li class="nav-item"><a class="nav-link @ManageNavPages.EmailNavClass(ViewContext)" id="email" asp-page="./Email">Email</a></li>
<li class="nav-item"><a class="nav-link @ManageNavPages.ChangePasswordNavClass(ViewContext)" id="change-password" asp-page="./ChangePassword">Password</a></li>
@if (hasExternalLogins)
{
<li id="external-logins" class="nav-item"><a id="external-login" class="nav-link @ManageNavPages.ExternalLoginsNavClass(ViewContext)" asp-page="./ExternalLogins">External logins</a></li>
}
<li class="nav-item"><a class="nav-link @ManageNavPages.TwoFactorAuthenticationNavClass(ViewContext)" id="two-factor" asp-page="./TwoFactorAuthentication">Two-factor authentication</a></li>
<li class="nav-item"><a class="nav-link @ManageNavPages.PersonalDataNavClass(ViewContext)" id="personal-data" asp-page="./PersonalData">Personal data</a></li>
</ul>
@using WebPresentation.Areas.Identity.Pages.Account.Manage
@page
@model ResetPasswordModel
@{
ViewData["Title"] = "Reset password";
}
<h1>@ViewData["Title"]</h1>
<h4>Reset your password.</h4>
<hr />
<div class="row">
<div class="col-md-4">
<form method="post">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<input asp-for="Input.Code" type="hidden" />
<div class="form-group">
<label asp-for="Input.Email"></label>
<input asp-for="Input.Email" class="form-control" />
<span asp-validation-for="Input.Email" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Input.Password"></label>
<input asp-for="Input.Password" class="form-control" />
<span asp-validation-for="Input.Password" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Input.ConfirmPassword"></label>
<input asp-for="Input.ConfirmPassword" class="form-control" />
<span asp-validation-for="Input.ConfirmPassword" class="text-danger"></span>
</div>
<button type="submit" class="btn btn-primary">Reset</button>
</form>
</div>
</div>
@section Scripts {
<partial name="_ValidationScriptsPartial" />
}
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using ApplicationCore.Entities;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.AspNetCore.WebUtilities;
namespace WebPresentation.Areas.Identity.Pages.Account
{
[AllowAnonymous]
public class ResetPasswordModel : PageModel
{
private readonly UserManager<User> _userManager;
public ResetPasswordModel(UserManager<User> userManager)
{
_userManager = userManager;
}
[BindProperty]
public InputModel Input { get; set; }
public class InputModel
{
[Required]
[EmailAddress]
public string Email { get; set; }
[Required]
[StringLength(100, ErrorMessage = "The {0} must be at least {2} and at max {1} characters long.", MinimumLength = 6)]
[DataType(DataType.Password)]
public string Password { get; set; }
[DataType(DataType.Password)]
[Display(Name = "Confirm password")]
[Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
public string ConfirmPassword { get; set; }
public string Code { get; set; }
}
public IActionResult OnGet(string code = null)
{
if (code == null)
{
return BadRequest("A code must be supplied for password reset.");
}
else
{
Input = new InputModel
{
Code = Encoding.UTF8.GetString(WebEncoders.Base64UrlDecode(code))
};
return Page();
}
}
public async Task<IActionResult> OnPostAsync()
{
if (!ModelState.IsValid)
{
return Page();
}
var user = await _userManager.FindByEmailAsync(Input.Email);
if (user == null)
{
// Don't reveal that the user does not exist
return RedirectToPage("./ResetPasswordConfirmation");
}
var result = await _userManager.ResetPasswordAsync(user, Input.Code, Input.Password);
if (result.Succeeded)
{
return RedirectToPage("./ResetPasswordConfirmation");
}
foreach (var error in result.Errors)
{
ModelState.AddModelError(string.Empty, error.Description);
}
return Page();
}
}
}
@using WebPresentation.Areas.Identity.Pages.Account
\ No newline at end of file
<environment include="Development">
<script src="~/Identity/lib/jquery-validation/dist/jquery.validate.js"></script>
<script src="~/Identity/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js"></script>
</environment>
<environment exclude="Development">
<script src="https://ajax.aspnetcdn.com/ajax/jquery.validate/1.17.0/jquery.validate.min.js"
asp-fallback-src="~/Identity/lib/jquery-validation/dist/jquery.validate.min.js"
asp-fallback-test="window.jQuery && window.jQuery.validator"
crossorigin="anonymous"
integrity="sha384-rZfj/ogBloos6wzLGpPkkOr/gpkBNLZ6b6yLy4o+ok+t/SAKlL5mvXLr0OXNi1Hp">
</script>
<script src="https://ajax.aspnetcdn.com/ajax/jquery.validation.unobtrusive/3.2.9/jquery.validate.unobtrusive.min.js"
asp-fallback-src="~/Identity/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js"
asp-fallback-test="window.jQuery && window.jQuery.validator && window.jQuery.validator.unobtrusive"
crossorigin="anonymous"
integrity="sha384-ifv0TYDWxBHzvAk2Z0n8R434FL1Rlv/Av18DXE43N/1rvHyOG4izKst0f2iSLdds">
</script>
</environment>
@using Microsoft.AspNetCore.Identity
@using WebPresentation.Areas.Identity
@using WebPresentation.Areas.Identity.Pages
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@using ApplicationCore.Entities

@{
Layout = "/Views/Shared/_Layout.cshtml";
}
using System; using ApplicationCore.Entities;
using System.Collections.Generic; using ApplicationCore.ViewModel;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Text.Encodings.Web;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using ApplicationCore.Entities;
using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Identity.UI.Services;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.AspNetCore.WebUtilities;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using cleanArchWebApp.ApplicationCore.Aggregate; using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Threading.Tasks;
namespace WebPresentation.Areas.Identity.Pages.Account namespace WebPresentation.Controllers
{ {
[AllowAnonymous] [AllowAnonymous]
public class RegisterModel : PageModel
public class AccessController : Controller
{ {
private readonly SignInManager<User> _signInManager;
private readonly UserManager<User> _userManager; private readonly UserManager<User> _userManager;
private readonly ILogger<RegisterModel> _logger; private readonly SignInManager<User> _signInManager;
private readonly IEmailSender _emailSender;
public AccessController(SignInManager<User> signInManager,
public RegisterModel( UserManager<User> userManager)
UserManager<User> userManager,
SignInManager<User> signInManager,
ILogger<RegisterModel> logger,
IEmailSender emailSender)
{ {
_userManager = userManager; _userManager = userManager;
_signInManager = signInManager; _signInManager = signInManager;
_logger = logger;
_emailSender = emailSender;
} }
[BindProperty] public string ErrorMessage { get; set; }
public RegisterationInputModel Input { get; set; }
public IActionResult Login(string returnUrl )
{
ViewBag.ReturnUrl = returnUrl;
return View();
}
[HttpPost]
public async Task<IActionResult> Login(LoginInuptModel Input)
{
Input.ReturnUrl ??= Url.Content("/Home/Index");
ViewBag.ReturUrl = Input.ReturnUrl;
if (ModelState.IsValid)
{
// This doesn't count login failures towards account lockout
// To enable password failures to trigger account lockout, set lockoutOnFailure: true
var result = await _signInManager.PasswordSignInAsync(Input.Email, Input.Password, Input.RememberMe, lockoutOnFailure: false);
if (result.Succeeded)
{
return Redirect(Input.ReturnUrl);
}
else
{
ModelState.AddModelError(string.Empty, "Invalid login attempt.");
return View();
}
}
// If we got this far, something failed, redisplay form
return View();
}
public string ReturnUrl { get; set; }
public IList<AuthenticationScheme> ExternalLogins { get; set; }
public async Task OnGetAsync(string returnUrl = null)
public IActionResult Register(string returnUrl = null)
{ {
ReturnUrl = returnUrl; ViewBag.ReturnUrl = returnUrl;
ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList(); return View();
} }
[HttpPost]
public async Task<IActionResult> OnPostAsync(string returnUrl = null) public async Task<IActionResult> Register(RegisterationInputModel Input)
{ {
returnUrl ??= Url.Content("~/"); Input.ReturnUrl ??= Url.Content("/Home/Index");
ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList();
ViewBag.ReturUrl = Input.ReturnUrl;
if (ModelState.IsValid) if (ModelState.IsValid)
{ {
var user = new User { NormalizedEmail = Input.Email,UserName = Input.Email, Email = Input.Email ,Patient = Input.Patient,CreationTime = DateTime.Now}; var user = new User {
NormalizedEmail = Input.Email,
FirstName=Input.FirstName,
LastName=Input.LastName,
Avatar=Input.Avatar,
UserName = Input.Email,
Email = Input.Email,
Patient = Input.Patient,
CreationTime = DateTime.Now,
};
var result = await _userManager.CreateAsync(user, Input.Password); var result = await _userManager.CreateAsync(user, Input.Password);
if (result.Succeeded) if (result.Succeeded)
{ {
_logger.LogInformation("User created a new account with password."); result = await _userManager.AddToRoleAsync(user, "patient");
}
var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); if (result.Succeeded)
code = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(code)); {
var callbackUrl = Url.Page(
"/Account/ConfirmEmail",
pageHandler: null,
values: new { area = "Identity", userId = user.Id, code = code, returnUrl = returnUrl },
protocol: Request.Scheme);
await _emailSender.SendEmailAsync(Input.Email, "Confirm your email",
$"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>.");
if (_userManager.Options.SignIn.RequireConfirmedAccount)
{
return RedirectToPage("RegisterConfirmation", new { email = Input.Email, returnUrl = returnUrl });
}
else
{
await _signInManager.SignInAsync(user, isPersistent: false); await _signInManager.SignInAsync(user, isPersistent: false);
return LocalRedirect(returnUrl); return LocalRedirect(Input.ReturnUrl);
}
} }
foreach (var error in result.Errors) foreach (var error in result.Errors)
{ {
...@@ -92,7 +111,20 @@ namespace WebPresentation.Areas.Identity.Pages.Account ...@@ -92,7 +111,20 @@ namespace WebPresentation.Areas.Identity.Pages.Account
} }
// If we got this far, something failed, redisplay form // If we got this far, something failed, redisplay form
return Page(); return View();
} }
public async Task<IActionResult> Logout(string returnUrl = null)
{
await _signInManager.SignOutAsync();
if (returnUrl != null)
{
return LocalRedirect(returnUrl);
}
else
{
return LocalRedirect("/Home/Index");
}
}
}
} }
}
...@@ -16,25 +16,20 @@ using WebPresentation.Models; ...@@ -16,25 +16,20 @@ using WebPresentation.Models;
namespace WebPresentation.Controllers namespace WebPresentation.Controllers
{ {
[Authorize] [Authorize(Roles ="patient")]
public class HomeController : BaseController public class HomeController : BaseController
{ {
private readonly PatientService _patientService; private readonly PatientService _patientService;
private readonly MedicineService _medicineService; private readonly MedicineService _medicineService;
private readonly UserManager<User> _userManager; private readonly UserManager<User> _userManager;
private readonly User _user;
private readonly Patient _patient;
public HomeController(UserManager<User> userManager,IUnitOfWork<Patient> patientUnitOfWork, IUnitOfWork<Medicine> medicineUnitOfWork):base(userManager) public HomeController(UserManager<User> userManager,IUnitOfWork<Patient> patientUnitOfWork, IUnitOfWork<Medicine> medicineUnitOfWork):base(userManager)
{ {
_userManager = userManager; _userManager = userManager;
_patientService = new PatientService(patientUnitOfWork,medicineUnitOfWork); _patientService = new PatientService(patientUnitOfWork,medicineUnitOfWork);
// var userid = _userManager.GetUserAsync(User);
_medicineService = new MedicineService(medicineUnitOfWork); _medicineService = new MedicineService(medicineUnitOfWork);
_user = _userManager.Users.FirstOrDefault();
_patient = _patientService.getAll(u => u.User, u => u.Medicines).Where(u => u.User.Id == _user.Id).FirstOrDefault();
} }
public IActionResult Index() public IActionResult Index()
...@@ -42,13 +37,30 @@ namespace WebPresentation.Controllers ...@@ -42,13 +37,30 @@ namespace WebPresentation.Controllers
var u = GetCurrentUser(); var u = GetCurrentUser();
var userId = GetUserId(); var userId = GetUserId();
var ownesr = _patientService.getAll(u=>u.User , u => u.Medicines).Where(u => u.User.Id == userId).FirstOrDefault(); var ownesr = _patientService
.GetAll(
u => u.User ,
u => u.Medicines
)
.Where(
u => u.User.Id == userId
)
.FirstOrDefault();
return View(ownesr); return View(ownesr);
} }
public IActionResult MedicineDetails(int id ) { public IActionResult MedicineDetails(int id ) {
var s = _patientService.GetMedicineDetails(id, i => i.MedicineIngredients, i => i.Ingredients , i => i.Category ); var s = _patientService.GetMedicineDetails(
id,
i => i.MedicineIngredients,
i => i.Ingredients ,
i => i.Category,
i => i.MedicineType);
if (s is null) {
return NotFound();
}
else
return View(s); return View(s);
} }
public IActionResult Privacy() public IActionResult Privacy()
...@@ -59,7 +71,7 @@ namespace WebPresentation.Controllers ...@@ -59,7 +71,7 @@ namespace WebPresentation.Controllers
public IActionResult AddMedicine(int id) { public IActionResult AddMedicine(int id) {
var userId = _userManager.GetUserId(User); var userId = _userManager.GetUserId(User);
var patient = _patientService.getAll(u => u.User, u => u.Medicines) var patient = _patientService.GetAll(u => u.User, u => u.Medicines)
.Where(u => u.User.Id ==userId ).FirstOrDefault(); .Where(u => u.User.Id ==userId ).FirstOrDefault();
var m =_medicineService.GetMedicineDetails(id); var m =_medicineService.GetMedicineDetails(id);
_patientService.AddMedicine(patient.Id, m); _patientService.AddMedicine(patient.Id, m);
......
...@@ -38,9 +38,10 @@ namespace WebPresentation.Controllers ...@@ -38,9 +38,10 @@ namespace WebPresentation.Controllers
{ {
var s = new PatientMedicineViewModel var s = new PatientMedicineViewModel
{ {
Patients = _patientService.getAll(), Patients = _patientService.GetAll(p=> p.User ),
Medicines = _medicineService.GetAllMedicines() Medicines = _medicineService.GetAllMedicines()
}; };
return View(s); return View(s);
} }
......
...@@ -3,6 +3,7 @@ using ApplicationCore.Interfaces; ...@@ -3,6 +3,7 @@ using ApplicationCore.Interfaces;
using Infrastructure.Data; using Infrastructure.Data;
using Infrastructure.Repository; using Infrastructure.Repository;
using Infrastructure.UnitOfWork; using Infrastructure.UnitOfWork;
using Microsoft.AspNetCore.Authentication.Cookies;
using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.HttpsPolicy; using Microsoft.AspNetCore.HttpsPolicy;
...@@ -11,10 +12,6 @@ using Microsoft.EntityFrameworkCore; ...@@ -11,10 +12,6 @@ using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Hosting;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace WebPresentation namespace WebPresentation
{ {
...@@ -34,7 +31,7 @@ namespace WebPresentation ...@@ -34,7 +31,7 @@ namespace WebPresentation
services.AddScoped(typeof(DbContext), typeof(MedicDbContext)); services.AddScoped<DbContext, MedicDbContext>();
services.AddScoped(typeof(IUnitOfWork<>),typeof(UnitOfWork<>)); services.AddScoped(typeof(IUnitOfWork<>),typeof(UnitOfWork<>));
services.AddScoped(typeof(IGenericRepository<>), typeof(GenericRepository<>)); services.AddScoped(typeof(IGenericRepository<>), typeof(GenericRepository<>));
...@@ -42,18 +39,22 @@ namespace WebPresentation ...@@ -42,18 +39,22 @@ namespace WebPresentation
services.AddDbContext<MedicDbContext>(options => services.AddDbContext<MedicDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))); options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
services.AddMvc()
.AddSessionStateTempDataProvider();
services.AddSession(); services.AddSession();
services.AddIdentity<User, IdentityRole>() services.AddIdentity<User, IdentityRole>()
.AddEntityFrameworkStores<MedicDbContext>() .AddEntityFrameworkStores<MedicDbContext>();
.AddDefaultTokenProviders().AddDefaultUI(); services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme).AddCookie(
options =>
{
options.LoginPath = "Access/Login";
options.LogoutPath = "Access/Logout";
options.AccessDeniedPath = "Access/Login";
}
);
services.AddControllersWithViews(); services.AddControllersWithViews();
services.AddRazorPages();
} }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
...@@ -76,6 +77,7 @@ namespace WebPresentation ...@@ -76,6 +77,7 @@ namespace WebPresentation
app.UseRouting(); app.UseRouting();
app.UseAuthentication(); app.UseAuthentication();
app.UseAuthorization(); app.UseAuthorization();
app.UseSession(); app.UseSession();
...@@ -86,8 +88,7 @@ namespace WebPresentation ...@@ -86,8 +88,7 @@ namespace WebPresentation
endpoints.MapControllerRoute( endpoints.MapControllerRoute(
name: "default", name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}"); pattern: "{controller=Home}/{action=Index}/{id?}");
endpoints.MapRazorPages(); });
});
} }
} }
} }
@page @model ApplicationCore.ViewModel.LoginInuptModel
@model LoginModel
@{ @{
ViewData["Title"] = "Log in"; ViewData["Title"] = "Log in";
} }
<h1>@ViewData["Title"]</h1> <h1>@ViewData["Title"]</h1>
...@@ -20,31 +19,31 @@ ...@@ -20,31 +19,31 @@
<div class="col-md-6 col-lg-7 d-flex align-items-center"> <div class="col-md-6 col-lg-7 d-flex align-items-center">
<div class="card-body p-4 p-lg-5 text-black"> <div class="card-body p-4 p-lg-5 text-black">
<form method="post"> <form method="post" asp-action="Login" asp-controller="Access">
<div class="d-flex align-items-center mb-3 pb-1"> <div class="d-flex align-items-center mb-3 pb-1">
<i class="fas fa-cubes fa-2x me-3" style="color: #ff6219;"></i> <i class="fas fa-cubes fa-2x me-3" style="color: #ff6219;"></i>
<span class="h1 fw-bold mb-0">Logo</span> <span class="h1 fw-bold mb-0">Logo</span>
</div> </div>
<input hidden asp-for="@Model.ReturnUrl" value="@ViewBag.ReturnUrl"/>
<h5 class="fw-normal mb-3 pb-3" style="letter-spacing: 1px;">Sign into your account</h5> <h5 class="fw-normal mb-3 pb-3" style="letter-spacing: 1px;">Sign into your account</h5>
<div data-mdb-input-init class="form-outline mb-4"> <div data-mdb-input-init class="form-outline mb-4">
<input type="email" id="form2Example17" asp-for="Input.Email" class="form-control form-control-lg" /> <input type="email" id="form2Example17" asp-for="@Model.Email" class="form-control form-control-lg" />
<label class="form-label" asp-for="Input.Email">Email address</label> <label class="form-label" asp-for="@Model.Email">Email address</label>
</div> </div>
<div data-mdb-input-init class="form-outline mb-4"> <div data-mdb-input-init class="form-outline mb-4">
<input type="password" asp-for="Input.Password" class="form-control form-control-lg" /> <input type="password" asp-for="@Model.Password" class="form-control form-control-lg" />
<label class="form-label" asp-for="Input.Password">Password</label> <label class="form-label" asp-for="@Model.Password">Password</label>
<span asp-validation-for="Input.Password" class="text-danger"></span> <span asp-validation-for="@Model.Password" class="text-danger"></span>
</div> </div>
<div data-mdb-input-init class="form-outline mb-4"> <div data-mdb-input-init class="form-outline mb-4">
<div class="checkbox"> <div class="checkbox">
<label asp-for="Input.RememberMe"> <label asp-for="@Model.RememberMe">
<input asp-for="Input.RememberMe" /> <input asp-for="@Model.RememberMe" />
@Html.DisplayNameFor(m => m.Input.RememberMe) @Html.DisplayNameFor(m => m.RememberMe)
</label> </label>
</div> </div>
</div> </div>
...@@ -53,9 +52,9 @@ ...@@ -53,9 +52,9 @@
<button data-mdb-button-init data-mdb-ripple-init class="btn btn-dark btn-lg btn-block" role="submit">Login</button> <button data-mdb-button-init data-mdb-ripple-init class="btn btn-dark btn-lg btn-block" role="submit">Login</button>
</div> </div>
<a id="forgot-password" class="small text-muted" asp-page="./ForgotPassword">Forgot your password?</a> <a id="forgot-password" class="small text-muted" >Forgot your password?</a>
<p class="mb-5 pb-lg-2" style="color: #393f81;"> <p class="mb-5 pb-lg-2" style="color: #393f81;">
Don't have an account? <a style="color: #393f81;" asp-page="./Register" asp-route-returnUrl="@Model.ReturnUrl"> Don't have an account? <a style="color: #393f81;" asp-controller="Access" asp-action="Register" asp-route-returnUrl="@ViewBag.ReturnUrl">
Register Here Register Here
</a> </a>
</p> </p>
......
@page @model ApplicationCore.ViewModel.RegisterationInputModel ;
@model RegisterModel
@{ @{
ViewData["Title"] = "Register"; ViewData["Title"] = "Register";
} }
...@@ -25,8 +24,8 @@ ...@@ -25,8 +24,8 @@
</style> </style>
<section class="page-section bg-primary text-black mb-0"> <section class="page-section bg-primary text-black mb-0">
<h3 class="mb-5 text-uppercase text-center">Owner Registration</h3> <h3 class="mb-5 text-uppercase text-center">Patient Registration</h3>
<form asp-route-returnUrl="@Model.ReturnUrl" method="post"> <form method="post" asp-controller="Access" asp-action="Register">
<div class="container py-5 h-100"> <div class="container py-5 h-100">
<div class="row d-flex justify-content-center align-items-center h-100"> <div class="row d-flex justify-content-center align-items-center h-100">
<div class="col"> <div class="col">
...@@ -42,48 +41,49 @@ ...@@ -42,48 +41,49 @@
<div class="card-body p-md-5 text-black"> <div class="card-body p-md-5 text-black">
<div asp-validation-summary="All" class="text-danger"></div> <div asp-validation-summary="All" class="text-danger"></div>
<div class="form-group row"> <div class="form-group row">
<label asp-for="Input.Email"></label> <label asp-for="@Model.Email"></label>
<input asp-for="Input.Email" class="form-control" /> <input asp-for="@Model.Email" class="form-control" />
<span asp-validation-for="Input.Email" class="text-danger"></span> <span asp-validation-for="@Model.Email" class="text-danger"></span>
</div> </div>
<div class="form-group row "> <div class="form-group row ">
<label asp-for="Input.Password"></label> <label asp-for="@Model.Password"></label>
<input asp-for="Input.Password" class="form-control" /> <input asp-for="@Model.Password" class="form-control" />
<span asp-validation-for="Input.Password" class="text-danger"></span> <span asp-validation-for="@Model.Password" class="text-danger"></span>
</div> </div>
<div class="form-group row"> <div class="form-group row">
<label asp-for="Input.ConfirmPassword"></label> <label asp-for="@Model.ConfirmPassword"></label>
<input asp-for="Input.ConfirmPassword" class="form-control" /> <input asp-for="@Model.ConfirmPassword" class="form-control" />
<span asp-validation-for="Input.ConfirmPassword" class="text-danger"></span> <span asp-validation-for="@Model.ConfirmPassword" class="text-danger"></span>
</div> </div>
<input hidden asp-for="@Model.ReturnUrl" value="@ViewBag.ReturnUrl" />
<div class="form-group row mb-4"> <div class="form-group row mb-4">
<div data-mdb-input-init class="col form-outline"> <div data-mdb-input-init class="col form-outline">
<input type="text" asp-for="Input.Patient.FirstName" class="form-control form-control-lg" /> <input type="text" asp-for="@Model.FirstName" class="form-control form-control-lg" />
<label class="form-label" asp-for="Input.Patient.FirstName">First name</label> <label class="form-label" asp-for="@Model.FirstName">First name</label>
</div> </div>
<div data-mdb-input-init class="col form-outline"> <div data-mdb-input-init class="col form-outline">
<input type="text" asp-for="Input.Patient.LastName" class="form-control form-control-lg" /> <input type="text" asp-for="@Model.LastName" class="form-control form-control-lg" />
<label class="form-label" asp-for="Input.Patient.LastName">Last name</label> <label class="form-label" asp-for="@Model.LastName">Last name</label>
</div> </div>
</div> </div>
<div class="form-group row mb-4"> <div class="form-group row mb-4">
<div data-mdb-input-init class="form-outline col"> <div data-mdb-input-init class="form-outline col">
<input type="text" asp-for="Input.Patient.BIO" class="form-control form-control-lg" /> <input type="text" asp-for="@Model.Patient.BIO" class="form-control form-control-lg" />
<label class="form-label" asp-for="Input.Patient.BIO">BIO</label> <label class="form-label" asp-for="@Model.Patient.BIO">BIO</label>
</div> </div>
</div> </div>
<div class="form-group row mb-4"> <div class="form-group row mb-4">
<div data-mdb-input-init class="form-outline col"> <div data-mdb-input-init class="form-outline col">
<input type="text" asp-for="Input.Patient.Avatar" class="form-control form-control-lg" /> <input type="text" asp-for="@Model.Avatar" class="form-control form-control-lg" />
<label class="form-label" asp-for="Input.Patient.Avatar">Image</label> <label class="form-label" asp-for="@Model.Avatar">Image</label>
</div> </div>
</div> </div>
......
...@@ -9,9 +9,10 @@ ...@@ -9,9 +9,10 @@
*@ *@
@{ @{
ViewData["title"] = "Home - " + UserManager.GetUserName(User); var userName = UserManager.GetUserName(User);
ViewData["title"] = "Home - " + userName;
ViewData["userName"] = Model.FirstName + " " + Model.LastName;
ViewData["userName"] = Model.User.FirstName + " " + Model.User.LastName;
ViewBag.owner = Model; ViewBag.owner = Model;
var top = Model.Medicines.Where(t => t.Dosage > 0).ToList(); var top = Model.Medicines.Where(t => t.Dosage > 0).ToList();
...@@ -24,10 +25,10 @@ ...@@ -24,10 +25,10 @@
<div class="container d-flex align-items-center flex-column"> <div class="container d-flex align-items-center flex-column">
<!-- Masthead Avatar Image --> <!-- Masthead Avatar Image -->
<img class="masthead-avatar mb-5" src="/img/@Model.Avatar" style="border-radius:50%" alt=""> <img class="masthead-avatar mb-5" src="/img/@Model.User.Avatar" style="border-radius:50%" alt="">
<!-- Masthead Heading --> <!-- Masthead Heading -->
<h1 class="masthead-heading text-uppercase mb-0">@(Model.FirstName +" "+ Model.LastName)</h1> <h1 class="masthead-heading text-uppercase mb-0">@(Model.User.FirstName +" "+ Model.User.LastName)</h1>
<!-- Icon Divider --> <!-- Icon Divider -->
<div class="divider-custom divider-light"> <div class="divider-custom divider-light">
...@@ -101,7 +102,7 @@ ...@@ -101,7 +102,7 @@
<div class="container-fluid"> <div class="container-fluid">
<!-- Portfolio Section Heading --> <!-- Portfolio Section Heading -->
<h2 class=" page-section-heading text-center text-uppercase text-secondary mb-0">For more Medicine</h2><br/> <h2 class=" page-section-heading text-center text-uppercase text-secondary mb-0">For more Medicine</h2><br/>
<h2 class="page-section-heading text-center text-bg-info text-secondary mb-0r"><a>Go to Add Medicine to your profile</a> </h2> <h2 class="page-section-heading text-center mb-0r" style="color :white!important ;"><a asp-action="MedicinesGalary" asp-controller="Home" >Go to Add Medicine to your profile</a> </h2>
<!-- Icon Divider --> <!-- Icon Divider -->
</div> </div>
......
...@@ -2,13 +2,15 @@ ...@@ -2,13 +2,15 @@
@{ @{
ViewData["Title"] = "Medicine Details "; ViewData["Title"] = "Medicine Details ";
var a = 0;
var a = 0;
} }
<section class="page-section" style="background-color: #f4f5f7;"> <section class="page-section" style="background-color: #f4f5f7;">
<div class="container py-5 h-100"> <div class="container py-5 h-100">
<div class="row d-flex justify-content-center align-items-center h-100"> <div class="row d-flex justify-content-center align-items-center h-100">
<div class="col col-lg-6 mb-4 mb-lg-0"> <div class="col col-8 col-lg-8 mb-4 mb-lg-0">
<div class="card mb-3" style="border-radius: .5rem;"> <div class="card mb-3" style="border-radius: .5rem;">
<div class="row g-0"> <div class="row g-0">
<div class="col-md-4 gradient-custom text-center text-black" <div class="col-md-4 gradient-custom text-center text-black"
...@@ -39,7 +41,7 @@ ...@@ -39,7 +41,7 @@
<p class="text-muted">@Model.Description</p> <p class="text-muted">@Model.Description</p>
</div> </div>
<div class="col-6 mb-3"> <div class="col-6 mb-3">
<h6>Medicine Type:@Model.MedicineType</h6> <h6>Medicine Type:@Model.MedicineType.TypeName</h6>
<p class="text-muted">Dosage : @Model.Dosage</p> <p class="text-muted">Dosage : @Model.Dosage</p>
<p class="text-muted">Price : @Model.Price</p> <p class="text-muted">Price : @Model.Price</p>
</div> </div>
...@@ -53,16 +55,20 @@ ...@@ -53,16 +55,20 @@
<td>#</td> <td>#</td>
<td>Name</td> <td>Name</td>
<td>Description</td> <td>Description</td>
<td>Ratio</td>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@foreach (var ing in Model.Ingredients) @foreach (var ing in Model.MedicineIngredients)
{ {
<tr class=" mb-3"> <tr class=" mb-3">
<td>@(a+=1)</td> <td>@(a+=1)</td>
<td>@ing.Name</td> <td>@ing.Ingredient.Name</td>
<td>@ing.Description</td> <td>@ing.Ingredient.Description</td>
</tr> <td>@ing.Ratio</td>
</tr>
} }
</tbody> </tbody>
</table> </table>
......
@model IEnumerable<Ingredient> @model IEnumerable<Ingredient>
@{ @{
} }
<section class="page-section"> <section class="page-section p-5">
<form method="post" asp-action="AddIngredints"> <form class=" " method="post" asp-action="AddIngredints">
<select asp-for="@Model.First().Id">
<div class="form-group floating-label-form-group controls mb-0 pb-2">
<label>Choose Ingredient</label>
<p class="help-block text-danger"></p>
</div>
<select class="form-select" asp-for="@Model.First().Id">
@foreach (var i in Model) @foreach (var i in Model)
{ {
<option value="@i.Id">@i.Name </option> <option value="@i.Id">@i.Name </option>
} }
</select> </select>
<input type="number"name="ratio" /> <br>
<input class="form-text" type="number" name="ratio" />
<br>
<input value="@ViewBag.MedicineId" name="med" hidden /> <input value="@ViewBag.MedicineId" name="med" hidden />
<button role="submit">Submit</button> <div id="success"></div>
<div class="form-group">
<button class="btn btn-primary btn-xl" role="submit">Add <i class="fa fa-plus"></i></button>
</div>
</form> </form>
</section> </section>
...@@ -38,7 +38,20 @@ ...@@ -38,7 +38,20 @@
<span asp-validation-for="Price" class="text-danger"></span> <span asp-validation-for="Price" class="text-danger"></span>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<div class="col ">
<label for="Category.Name" class="control-label"></label>
<input asp-for="Category.Name" class="form-control" />
<span asp-validation-for="Category.Name" class="text-danger"></span>
</div>
<div class="col">
<label asp-for="MedicineType.TypeName" class="control-label"></label>
<input asp-for="MedicineType.TypeName" class="form-control" />
<span asp-validation-for="MedicineType.TypeName" class="text-danger"></span>
</div>
</div>
<div class="form-group">
<label asp-for="Image" class="control-label"></label> <label asp-for="Image" class="control-label"></label>
<input asp-for="Image" class="form-control" /> <input asp-for="Image" class="form-control" />
<span asp-validation-for="Image" class="text-danger"></span> <span asp-validation-for="Image" class="text-danger"></span>
......
...@@ -39,10 +39,10 @@ ...@@ -39,10 +39,10 @@
</th> </th>
<th scope="col"> <th scope="col">
@Html.DisplayNameFor(model => model.Patients.First().FirstName) @Html.DisplayNameFor(model => model.Patients.First().User.FirstName)
</th> </th>
<th scope="col"> <th scope="col">
@Html.DisplayNameFor(model => model.Patients.First().LastName) @Html.DisplayNameFor(model => model.Patients.First().User.LastName)
</th> </th>
<th scope="col"> <th scope="col">
...@@ -83,10 +83,10 @@ ...@@ -83,10 +83,10 @@
@Html.DisplayFor(modelItem => item.Id) @Html.DisplayFor(modelItem => item.Id)
</td> </td>
<td> <td>
@Html.DisplayFor(modelItem => item.FirstName) @Html.DisplayFor(modelItem => item.User.FirstName)
</td> </td>
<td> <td>
@Html.DisplayFor(modelItem => item.LastName) @Html.DisplayFor(modelItem => item.User.LastName)
</td> </td>
<td> <td>
@Html.DisplayFor(modelItem => item.BIO) @Html.DisplayFor(modelItem => item.BIO)
...@@ -100,6 +100,7 @@ ...@@ -100,6 +100,7 @@
<a asp-action="Delete" asp-controller="Patients" asp-route-id="@item.Id"><i class="far fa-trash-can text-bg-danger"></i></a> <a asp-action="Delete" asp-controller="Patients" asp-route-id="@item.Id"><i class="far fa-trash-can text-bg-danger"></i></a>
</td> </td>
</tr> </tr>
} }
</tbody> </tbody>
...@@ -132,7 +133,10 @@ ...@@ -132,7 +133,10 @@
@Html.DisplayNameFor(model => model.Medicines.First().Description) @Html.DisplayNameFor(model => model.Medicines.First().Description)
</th> </th>
<th scope="col"> <th scope="col">
@Html.DisplayNameFor(model => model.Medicines.First().Category.Name) Category
</th>
<th scope="col">
Type
</th> </th>
<th scope="col"> <th scope="col">
@Html.DisplayNameFor(model => model.Medicines.First().Price) @Html.DisplayNameFor(model => model.Medicines.First().Price)
...@@ -155,7 +159,8 @@ ...@@ -155,7 +159,8 @@
<th>Medicine name</th> <th>Medicine name</th>
<th>Description</th> <th>Description</th>
<th>Category</th> <th>Category</th>
<th>Cost</th> <th>Type</th>
<th>Price</th>
<th>Manage</th> <th>Manage</th>
<th>Patients Count </th> <th>Patients Count </th>
</tr> </tr>
...@@ -165,32 +170,35 @@ ...@@ -165,32 +170,35 @@
@foreach (var item in Model.Medicines) @foreach (var item in Model.Medicines)
{ {
<tr> <tr>
<td scope="row"> <td scope="row">
@Html.DisplayFor(modelItem => item.Id) @Html.DisplayFor(modelItem => item.Id)
</td> </td>
<td> <td>
@Html.DisplayFor(modelItem => item.Name) @Html.DisplayFor(modelItem => item.Name)
</td> </td>
<td> <td>
@Html.DisplayFor(modelItem => item.Description) @Html.DisplayFor(modelItem => item.Description)
</td> </td>
<td> <td>
@Html.DisplayFor(modelItem => item.Category.Medicines) @Html.DisplayFor(modelItem => item.Category.Name)
</td> </td>
<td> <td>
@Html.DisplayFor(modelItem => item.Price) @Html.DisplayFor(modelItem => item.MedicineType.TypeName)
</td> </td>
<td> <td>
<a asp-action="Edit" asp-controller="Medicine" asp-route-id="@item.Id"><i class="far fa-pen-to-square text-bg-info"></i></a> @Html.DisplayFor(modelItem => item.Price)
<a asp-action="Details" asp-controller="Medicine" asp-route-id="@item.Id"><i class="far fa-address-card"></i></a> </td>
<a asp-action="Delete" asp-controller="Medicine" asp-route-id="@item.Id"><i class="far fa-trash-can text-bg-danger"></i></a> <td>
</td> <a asp-action="Edit" asp-controller="Medicine" asp-route-id="@item.Id"><i class="far fa-pen-to-square text-bg-info"></i></a>
<td> <a asp-action="Details" asp-controller="Medicine" asp-route-id="@item.Id"><i class="far fa-address-card"></i></a>
@Html.DisplayFor(modelItem => item.Patients.Count) <a asp-action="Delete" asp-controller="Medicine" asp-route-id="@item.Id"><i class="far fa-trash-can text-bg-danger"></i></a>
</td> </td>
</tr> <td>
@Html.DisplayFor(modelItem => item.Patients.Count)
</td>
</tr>
} }
</tbody> </tbody>
</table> </table>
......
...@@ -52,7 +52,7 @@ ...@@ -52,7 +52,7 @@
<div class="sb-sidenav-menu"> <div class="sb-sidenav-menu">
<div class="nav"> <div class="nav">
<div class="sb-sidenav-menu-heading">Core</div> <div class="sb-sidenav-menu-heading">Core</div>
<a class="nav-link" asp-controller="Projects" asp-action="Index"> <a class="nav-link" asp-action="Index">
<div class="sb-nav-link-icon"><i class="fas fa-tachometer-alt"></i></div> <div class="sb-nav-link-icon"><i class="fas fa-tachometer-alt"></i></div>
Dashboard Dashboard
</a> </a>
...@@ -68,12 +68,12 @@ ...@@ -68,12 +68,12 @@
<a class="nav-link" asp-controller="Patient" asp-action="Index">ALL Patients </a> <a class="nav-link" asp-controller="Patient" asp-action="Index">ALL Patients </a>
</nav> </nav>
</div> </div>
<a class="nav-link collapsed" href="#" data-bs-toggle="collapse" data-bs-target="#collapseLayouts" aria-expanded="false" aria-controls="collapseLayouts"> <a class="nav-link collapsed" href="#" data-bs-toggle="collapse" data-bs-target="#ing" aria-expanded="false" aria-controls="collapseLayouts">
<div class="sb-nav-link-icon"><i class="fas fa-columns"></i></div> <div class="sb-nav-link-icon"><i class="fas fa-columns"></i></div>
Ingredients Manage Ingredients Manage
<div class="sb-sidenav-collapse-arrow"><i class="fas fa-angle-down"></i></div> <div class="sb-sidenav-collapse-arrow"><i class="fas fa-angle-down"></i></div>
</a> </a>
<div class="collapse" id="collapseLayouts" aria-labelledby="headingOne" data-bs-parent="#sidenavAccordion"> <div class="collapse" id="ing" aria-labelledby="headingOne" data-bs-parent="#sidenavAccordion">
<nav class="sb-sidenav-menu-nested nav"> <nav class="sb-sidenav-menu-nested nav">
<a class="nav-link" asp-controller="Ingredient" asp-action="Create">Add Ingredient </a> <a class="nav-link" asp-controller="Ingredient" asp-action="Create">Add Ingredient </a>
<a class="nav-link" asp-controller="Ingredient" asp-action="Index">ALL Ingredients </a> <a class="nav-link" asp-controller="Ingredient" asp-action="Index">ALL Ingredients </a>
......
...@@ -37,10 +37,10 @@ ...@@ -37,10 +37,10 @@
<div class="collapse navbar-collapse" id="navbarResponsive"> <div class="collapse navbar-collapse" id="navbarResponsive">
<ul class="navbar-nav ml-auto"> <ul class="navbar-nav ml-auto">
<li class="nav-item mx-0 mx-lg-1"> <li class="nav-item mx-0 mx-lg-1">
<a class="nav-link py-3 px-0 px-lg-3 rounded js-scroll-trigger" href="#portfolio">Projects</a> <a class="nav-link py-3 px-0 px-lg-3 rounded js-scroll-trigger" href="#portfolio">Medicines</a>
</li> </li>
<li class="nav-item mx-0 mx-lg-1"> <li class="nav-item mx-0 mx-lg-1">
<a class="nav-link py-3 px-0 px-lg-3 rounded js-scroll-trigger" href="#about">About</a> <a class="nav-link py-3 px-0 px-lg-3 rounded js-scroll-trigger" href="#galary">Galary</a>
</li> </li>
<li class="nav-item mx-0 mx-lg-1"> <li class="nav-item mx-0 mx-lg-1">
<a class="nav-link py-3 px-0 px-lg-3 rounded js-scroll-trigger" href="#contact">Contact</a> <a class="nav-link py-3 px-0 px-lg-3 rounded js-scroll-trigger" href="#contact">Contact</a>
......
...@@ -7,23 +7,22 @@ ...@@ -7,23 +7,22 @@
@if (SignInManager.IsSignedIn(User)) @if (SignInManager.IsSignedIn(User))
{ {
<li class="nav-item rounded js-scroll-trigger"> <li class="nav-item rounded js-scroll-trigger">
<a class="nav-link py-3 px-0 px-lg-3 rounded js-scroll-trigger" aasp-area="Identity" aasp-page="/Account/Manage/Index" title="Manage"> @UserManager.GetUserName(User) </a> <a class="nav-link py-3 px-0 px-lg-3 rounded js-scroll-trigger" title="Manage"> @UserManager.GetUserName(User) </a>
</li> </li>
<li class="nav-item rounded js-scroll-trigger"> <li class="nav-item rounded js-scroll-trigger">
<form id="logoutForm" class="form-inline" asp-area="Identity" asp-page="/Account/Logout" asp-route-returnUrl="@Url.Action("Index", "Home", new { area = "" })"> <a class="nav-link py-3 px-0 px-lg-3 rounded js-scroll-trigger" asp-action="Logout" asp-controller="Access" asp-route-returnUrl=""> Logout </a>
<button id="logout" type="submit" class="text-bg-light">Logout</button>
</form>
</li> </li>
} }
else else
{ {
<li class="nav-item mx-0 mx-lg-1"> <li class="nav-item mx-0 mx-lg-1">
<a class="nav-link py-3 px-0 px-lg-3 rounded js-scroll-trigger" id="register" asp-area="Identity" asp-page="/Account/Register">Register</a> <a class="nav-link py-3 px-0 px-lg-3 rounded js-scroll-trigger" id="register" asp-action="Register" asp-controller="Access" asp-route-returnUrl="@Url.Action("Index", "Home")">Register</a>
</li> </li>
<li class="nav-item mx-0 mx-lg-1"> <li class="nav-item mx-0 mx-lg-1">
<a class="nav-link py-3 px-0 px-lg-3 rounded js-scroll-trigger" id="login" asp-area="Identity" asp-page="/Account/Login">Login</a> <a class="nav-link py-3 px-0 px-lg-3 rounded js-scroll-trigger" id="login" asp-action="Login" asp-controller="Access">Login</a>
</li> </li>
} }
......
...@@ -6,7 +6,6 @@ ...@@ -6,7 +6,6 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="5.0.17" /> <PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="5.0.17" />
<PackageReference Include="Microsoft.AspNetCore.Identity.UI" Version="5.0.17" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="5.0.17"> <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="5.0.17">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
......
<StaticWebAssets Version="1.0">
<ContentRoot BasePath="/Identity" Path="C:\Users\HASAN\.nuget\packages\microsoft.aspnetcore.identity.ui\5.0.17\staticwebassets\V4\" />
</StaticWebAssets>
\ No newline at end of file
...@@ -36,7 +36,6 @@ ...@@ -36,7 +36,6 @@
"ApplicationCore": "1.0.0", "ApplicationCore": "1.0.0",
"Infrastructure": "1.0.0", "Infrastructure": "1.0.0",
"Microsoft.AspNetCore.Identity.EntityFrameworkCore": "5.0.17", "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "5.0.17",
"Microsoft.AspNetCore.Identity.UI": "5.0.17",
"Microsoft.EntityFrameworkCore.Design": "5.0.17", "Microsoft.EntityFrameworkCore.Design": "5.0.17",
"Microsoft.EntityFrameworkCore.SqlServer": "5.0.17", "Microsoft.EntityFrameworkCore.SqlServer": "5.0.17",
"Microsoft.EntityFrameworkCore.Tools": "5.0.17", "Microsoft.EntityFrameworkCore.Tools": "5.0.17",
...@@ -133,8 +132,9 @@ ...@@ -133,8 +132,9 @@
"Microsoft.Extensions.DependencyInjection.Abstractions.Reference": "5.0.0.0", "Microsoft.Extensions.DependencyInjection.Abstractions.Reference": "5.0.0.0",
"Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": "5.0.0.0", "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": "5.0.0.0",
"Microsoft.Extensions.Diagnostics.HealthChecks": "5.0.0.0", "Microsoft.Extensions.Diagnostics.HealthChecks": "5.0.0.0",
"Microsoft.Extensions.FileProviders.Abstractions.Reference": "5.0.0.0", "Microsoft.Extensions.FileProviders.Abstractions": "5.0.0.0",
"Microsoft.Extensions.FileProviders.Composite": "5.0.0.0", "Microsoft.Extensions.FileProviders.Composite": "5.0.0.0",
"Microsoft.Extensions.FileProviders.Embedded": "5.0.0.0",
"Microsoft.Extensions.FileProviders.Physical": "5.0.0.0", "Microsoft.Extensions.FileProviders.Physical": "5.0.0.0",
"Microsoft.Extensions.FileSystemGlobbing": "5.0.0.0", "Microsoft.Extensions.FileSystemGlobbing": "5.0.0.0",
"Microsoft.Extensions.Hosting.Abstractions": "5.0.0.0", "Microsoft.Extensions.Hosting.Abstractions": "5.0.0.0",
...@@ -378,26 +378,6 @@ ...@@ -378,26 +378,6 @@
"lib/net5.0/Microsoft.AspNetCore.Identity.EntityFrameworkCore.dll": {} "lib/net5.0/Microsoft.AspNetCore.Identity.EntityFrameworkCore.dll": {}
} }
}, },
"Microsoft.AspNetCore.Identity.UI/5.0.17": {
"dependencies": {
"Microsoft.Extensions.FileProviders.Embedded": "5.0.17",
"Microsoft.Extensions.Identity.Stores": "5.0.17"
},
"runtime": {
"lib/net5.0/Microsoft.AspNetCore.Identity.UI.Views.V4.dll": {
"assemblyVersion": "5.0.17.0",
"fileVersion": "5.0.1722.21507"
},
"lib/net5.0/Microsoft.AspNetCore.Identity.UI.dll": {
"assemblyVersion": "5.0.17.0",
"fileVersion": "5.0.1722.21507"
}
},
"compile": {
"lib/net5.0/Microsoft.AspNetCore.Identity.UI.Views.V4.dll": {},
"lib/net5.0/Microsoft.AspNetCore.Identity.UI.dll": {}
}
},
"Microsoft.AspNetCore.Razor/2.2.0": { "Microsoft.AspNetCore.Razor/2.2.0": {
"dependencies": { "dependencies": {
"Microsoft.AspNetCore.Html.Abstractions": "2.2.0" "Microsoft.AspNetCore.Html.Abstractions": "2.2.0"
...@@ -876,25 +856,6 @@ ...@@ -876,25 +856,6 @@
} }
}, },
"Microsoft.Extensions.DependencyInjection.Abstractions/5.0.0": {}, "Microsoft.Extensions.DependencyInjection.Abstractions/5.0.0": {},
"Microsoft.Extensions.FileProviders.Abstractions/5.0.0": {
"dependencies": {
"Microsoft.Extensions.Primitives": "5.0.0"
}
},
"Microsoft.Extensions.FileProviders.Embedded/5.0.17": {
"dependencies": {
"Microsoft.Extensions.FileProviders.Abstractions": "5.0.0"
},
"runtime": {
"lib/net5.0/Microsoft.Extensions.FileProviders.Embedded.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.1722.21507"
}
},
"compile": {
"lib/net5.0/Microsoft.Extensions.FileProviders.Embedded.dll": {}
}
},
"Microsoft.Extensions.Identity.Core/5.0.17": { "Microsoft.Extensions.Identity.Core/5.0.17": {
"dependencies": { "dependencies": {
"Microsoft.AspNetCore.Cryptography.KeyDerivation": "5.0.17", "Microsoft.AspNetCore.Cryptography.KeyDerivation": "5.0.17",
...@@ -2488,7 +2449,7 @@ ...@@ -2488,7 +2449,7 @@
}, },
"compileOnly": true "compileOnly": true
}, },
"Microsoft.Extensions.FileProviders.Abstractions.Reference/5.0.0.0": { "Microsoft.Extensions.FileProviders.Abstractions/5.0.0.0": {
"compile": { "compile": {
"Microsoft.Extensions.FileProviders.Abstractions.dll": {} "Microsoft.Extensions.FileProviders.Abstractions.dll": {}
}, },
...@@ -2500,6 +2461,12 @@ ...@@ -2500,6 +2461,12 @@
}, },
"compileOnly": true "compileOnly": true
}, },
"Microsoft.Extensions.FileProviders.Embedded/5.0.0.0": {
"compile": {
"Microsoft.Extensions.FileProviders.Embedded.dll": {}
},
"compileOnly": true
},
"Microsoft.Extensions.FileProviders.Physical/5.0.0.0": { "Microsoft.Extensions.FileProviders.Physical/5.0.0.0": {
"compile": { "compile": {
"Microsoft.Extensions.FileProviders.Physical.dll": {} "Microsoft.Extensions.FileProviders.Physical.dll": {}
...@@ -3635,13 +3602,6 @@ ...@@ -3635,13 +3602,6 @@
"path": "microsoft.aspnetcore.identity.entityframeworkcore/5.0.17", "path": "microsoft.aspnetcore.identity.entityframeworkcore/5.0.17",
"hashPath": "microsoft.aspnetcore.identity.entityframeworkcore.5.0.17.nupkg.sha512" "hashPath": "microsoft.aspnetcore.identity.entityframeworkcore.5.0.17.nupkg.sha512"
}, },
"Microsoft.AspNetCore.Identity.UI/5.0.17": {
"type": "package",
"serviceable": true,
"sha512": "sha512-10SC96nYr86A3cqpULJYO8W56NhwNX+eTIctsYDzcU/nl53cjIT3psPRrBlF6QChI2stGj5YE2pXTcRSo/22Kg==",
"path": "microsoft.aspnetcore.identity.ui/5.0.17",
"hashPath": "microsoft.aspnetcore.identity.ui.5.0.17.nupkg.sha512"
},
"Microsoft.AspNetCore.Razor/2.2.0": { "Microsoft.AspNetCore.Razor/2.2.0": {
"type": "package", "type": "package",
"serviceable": true, "serviceable": true,
...@@ -3817,20 +3777,6 @@ ...@@ -3817,20 +3777,6 @@
"path": "microsoft.extensions.dependencyinjection.abstractions/5.0.0", "path": "microsoft.extensions.dependencyinjection.abstractions/5.0.0",
"hashPath": "microsoft.extensions.dependencyinjection.abstractions.5.0.0.nupkg.sha512" "hashPath": "microsoft.extensions.dependencyinjection.abstractions.5.0.0.nupkg.sha512"
}, },
"Microsoft.Extensions.FileProviders.Abstractions/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-iuZIiZ3mteEb+nsUqpGXKx2cGF+cv6gWPd5jqQI4hzqdiJ6I94ddLjKhQOuRW1lueHwocIw30xbSHGhQj0zjdQ==",
"path": "microsoft.extensions.fileproviders.abstractions/5.0.0",
"hashPath": "microsoft.extensions.fileproviders.abstractions.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.FileProviders.Embedded/5.0.17": {
"type": "package",
"serviceable": true,
"sha512": "sha512-sSf5oTuE/BYju9hqvwL6CSwArv76mONplyVpYV2J8Il/m2mtuabx2o3YmTeO8aa5+2JaFWZlOX+2X3fWYEp79w==",
"path": "microsoft.extensions.fileproviders.embedded/5.0.17",
"hashPath": "microsoft.extensions.fileproviders.embedded.5.0.17.nupkg.sha512"
},
"Microsoft.Extensions.Identity.Core/5.0.17": { "Microsoft.Extensions.Identity.Core/5.0.17": {
"type": "package", "type": "package",
"serviceable": true, "serviceable": true,
...@@ -4994,7 +4940,7 @@ ...@@ -4994,7 +4940,7 @@
"serviceable": false, "serviceable": false,
"sha512": "" "sha512": ""
}, },
"Microsoft.Extensions.FileProviders.Abstractions.Reference/5.0.0.0": { "Microsoft.Extensions.FileProviders.Abstractions/5.0.0.0": {
"type": "referenceassembly", "type": "referenceassembly",
"serviceable": false, "serviceable": false,
"sha512": "" "sha512": ""
...@@ -5004,6 +4950,11 @@ ...@@ -5004,6 +4950,11 @@
"serviceable": false, "serviceable": false,
"sha512": "" "sha512": ""
}, },
"Microsoft.Extensions.FileProviders.Embedded/5.0.0.0": {
"type": "referenceassembly",
"serviceable": false,
"sha512": ""
},
"Microsoft.Extensions.FileProviders.Physical/5.0.0.0": { "Microsoft.Extensions.FileProviders.Physical/5.0.0.0": {
"type": "referenceassembly", "type": "referenceassembly",
"serviceable": false, "serviceable": false,
......
#pragma checksum "C:\Users\HASAN\Desktop\Medic\WebPresentation\Areas\Identity\Pages\Account\AccessDenied.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "582bf0c7425cf1f8ff23de17db010cc3a0a070ed"
// <auto-generated/>
#pragma warning disable 1591
[assembly: global::Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItemAttribute(typeof(AspNetCore.Areas_Identity_Pages_Account_AccessDenied), @"mvc.1.0.razor-page", @"/Areas/Identity/Pages/Account/AccessDenied.cshtml")]
namespace AspNetCore
{
#line hidden
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Rendering;
using Microsoft.AspNetCore.Mvc.ViewFeatures;
#nullable restore
#line 1 "C:\Users\HASAN\Desktop\Medic\WebPresentation\Areas\Identity\Pages\_ViewImports.cshtml"
using Microsoft.AspNetCore.Identity;
#line default
#line hidden
#nullable disable
#nullable restore
#line 2 "C:\Users\HASAN\Desktop\Medic\WebPresentation\Areas\Identity\Pages\_ViewImports.cshtml"
using WebPresentation.Areas.Identity;
#line default
#line hidden
#nullable disable
#nullable restore
#line 3 "C:\Users\HASAN\Desktop\Medic\WebPresentation\Areas\Identity\Pages\_ViewImports.cshtml"
using WebPresentation.Areas.Identity.Pages;
#line default
#line hidden
#nullable disable
#nullable restore
#line 5 "C:\Users\HASAN\Desktop\Medic\WebPresentation\Areas\Identity\Pages\_ViewImports.cshtml"
using ApplicationCore.Entities;
#line default
#line hidden
#nullable disable
#nullable restore
#line 1 "C:\Users\HASAN\Desktop\Medic\WebPresentation\Areas\Identity\Pages\Account\_ViewImports.cshtml"
using WebPresentation.Areas.Identity.Pages.Account;
#line default
#line hidden
#nullable disable
[global::Microsoft.AspNetCore.Razor.Hosting.RazorSourceChecksumAttribute(@"SHA1", @"582bf0c7425cf1f8ff23de17db010cc3a0a070ed", @"/Areas/Identity/Pages/Account/AccessDenied.cshtml")]
[global::Microsoft.AspNetCore.Razor.Hosting.RazorSourceChecksumAttribute(@"SHA1", @"74967318c7317c7253bd4196f40076c74014696d", @"/Areas/Identity/Pages/_ViewImports.cshtml")]
[global::Microsoft.AspNetCore.Razor.Hosting.RazorSourceChecksumAttribute(@"SHA1", @"977f1c84f7a8193eb9ad216a7d0b0ff5aebaa5b6", @"/Areas/Identity/Pages/Account/_ViewImports.cshtml")]
public class Areas_Identity_Pages_Account_AccessDenied : global::Microsoft.AspNetCore.Mvc.RazorPages.Page
{
private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_0 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("class", new global::Microsoft.AspNetCore.Html.HtmlString("btn btn-primary"), global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes);
private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_1 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("type", new global::Microsoft.AspNetCore.Html.HtmlString(""), global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes);
private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_2 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("role", new global::Microsoft.AspNetCore.Html.HtmlString("button"), global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes);
private static readonly global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute __tagHelperAttribute_3 = new global::Microsoft.AspNetCore.Razor.TagHelpers.TagHelperAttribute("asp-controller", "Home", global::Microsoft.AspNetCore.Razor.TagHelpers.HtmlAttributeValueStyle.DoubleQuotes);
#line hidden
#pragma warning disable 0649
private global::Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext __tagHelperExecutionContext;
#pragma warning restore 0649
private global::Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperRunner __tagHelperRunner = new global::Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperRunner();
#pragma warning disable 0169
private string __tagHelperStringValueBuffer;
#pragma warning restore 0169
private global::Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperScopeManager __backed__tagHelperScopeManager = null;
private global::Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperScopeManager __tagHelperScopeManager
{
get
{
if (__backed__tagHelperScopeManager == null)
{
__backed__tagHelperScopeManager = new global::Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperScopeManager(StartTagHelperWritingScope, EndTagHelperWritingScope);
}
return __backed__tagHelperScopeManager;
}
}
private global::Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper __Microsoft_AspNetCore_Mvc_TagHelpers_AnchorTagHelper;
#pragma warning disable 1998
public async override global::System.Threading.Tasks.Task ExecuteAsync()
{
#nullable restore
#line 3 "C:\Users\HASAN\Desktop\Medic\WebPresentation\Areas\Identity\Pages\Account\AccessDenied.cshtml"
ViewData["Title"] = "Access denied";
#line default
#line hidden
#nullable disable
WriteLiteral(@"<section class=""page-section container"">
<div class=""blankslate col-6 offset-3 p-5"">
<img class=""blankslate-top-img""style=""max-height:300px ; max-width:300px"" src=""/img/portfolio/Denide.png"" />
<div class=""blankslate-body"">
<h4>You don't have access to this issue</h4>
<p>
Accessing the dashboard page required Admin permission.
</p>
</div>
<div class=""blankslate-actions"">
<button class=""btn btn-default"" type=""button"">Logout</button>
");
__tagHelperExecutionContext = __tagHelperScopeManager.Begin("a", global::Microsoft.AspNetCore.Razor.TagHelpers.TagMode.StartTagAndEndTag, "582bf0c7425cf1f8ff23de17db010cc3a0a070ed6193", async() => {
WriteLiteral("Go Home");
}
);
__Microsoft_AspNetCore_Mvc_TagHelpers_AnchorTagHelper = CreateTagHelper<global::Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper>();
__tagHelperExecutionContext.Add(__Microsoft_AspNetCore_Mvc_TagHelpers_AnchorTagHelper);
__tagHelperExecutionContext.AddHtmlAttribute(__tagHelperAttribute_0);
__tagHelperExecutionContext.AddHtmlAttribute(__tagHelperAttribute_1);
__tagHelperExecutionContext.AddHtmlAttribute(__tagHelperAttribute_2);
__Microsoft_AspNetCore_Mvc_TagHelpers_AnchorTagHelper.Controller = (string)__tagHelperAttribute_3.Value;
__tagHelperExecutionContext.AddTagHelperAttribute(__tagHelperAttribute_3);
await __tagHelperRunner.RunAsync(__tagHelperExecutionContext);
if (!__tagHelperExecutionContext.Output.IsContentModified)
{
await __tagHelperExecutionContext.SetOutputContentAsync();
}
Write(__tagHelperExecutionContext.Output);
__tagHelperExecutionContext = __tagHelperScopeManager.End();
WriteLiteral("\r\n </div>\r\n </div>\r\n</section>");
}
#pragma warning restore 1998
[global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
public global::Microsoft.AspNetCore.Mvc.ViewFeatures.IModelExpressionProvider ModelExpressionProvider { get; private set; }
[global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
public global::Microsoft.AspNetCore.Mvc.IUrlHelper Url { get; private set; }
[global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
public global::Microsoft.AspNetCore.Mvc.IViewComponentHelper Component { get; private set; }
[global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
public global::Microsoft.AspNetCore.Mvc.Rendering.IJsonHelper Json { get; private set; }
[global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
public global::Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper<AccessDeniedModel> Html { get; private set; }
public global::Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary<AccessDeniedModel> ViewData => (global::Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary<AccessDeniedModel>)PageContext?.ViewData;
public AccessDeniedModel Model => ViewData.Model;
}
}
#pragma warning restore 1591
#pragma checksum "C:\Users\HASAN\Desktop\Medic\WebPresentation\Areas\Identity\Pages\Account\Manage\_ViewImports.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "738b0da5d26782eaa6bc013be13c0ecd85ad588b"
// <auto-generated/>
#pragma warning disable 1591
[assembly: global::Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItemAttribute(typeof(AspNetCore.Areas_Identity_Pages_Account_Manage__ViewImports), @"mvc.1.0.view", @"/Areas/Identity/Pages/Account/Manage/_ViewImports.cshtml")]
namespace AspNetCore
{
#line hidden
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Rendering;
using Microsoft.AspNetCore.Mvc.ViewFeatures;
#nullable restore
#line 1 "C:\Users\HASAN\Desktop\Medic\WebPresentation\Areas\Identity\Pages\_ViewImports.cshtml"
using Microsoft.AspNetCore.Identity;
#line default
#line hidden
#nullable disable
#nullable restore
#line 2 "C:\Users\HASAN\Desktop\Medic\WebPresentation\Areas\Identity\Pages\_ViewImports.cshtml"
using WebPresentation.Areas.Identity;
#line default
#line hidden
#nullable disable
#nullable restore
#line 3 "C:\Users\HASAN\Desktop\Medic\WebPresentation\Areas\Identity\Pages\_ViewImports.cshtml"
using WebPresentation.Areas.Identity.Pages;
#line default
#line hidden
#nullable disable
#nullable restore
#line 5 "C:\Users\HASAN\Desktop\Medic\WebPresentation\Areas\Identity\Pages\_ViewImports.cshtml"
using ApplicationCore.Entities;
#line default
#line hidden
#nullable disable
#nullable restore
#line 1 "C:\Users\HASAN\Desktop\Medic\WebPresentation\Areas\Identity\Pages\Account\_ViewImports.cshtml"
using WebPresentation.Areas.Identity.Pages.Account;
#line default
#line hidden
#nullable disable
#nullable restore
#line 1 "C:\Users\HASAN\Desktop\Medic\WebPresentation\Areas\Identity\Pages\Account\Manage\_ViewImports.cshtml"
using WebPresentation.Areas.Identity.Pages.Account.Manage;
#line default
#line hidden
#nullable disable
[global::Microsoft.AspNetCore.Razor.Hosting.RazorSourceChecksumAttribute(@"SHA1", @"738b0da5d26782eaa6bc013be13c0ecd85ad588b", @"/Areas/Identity/Pages/Account/Manage/_ViewImports.cshtml")]
[global::Microsoft.AspNetCore.Razor.Hosting.RazorSourceChecksumAttribute(@"SHA1", @"74967318c7317c7253bd4196f40076c74014696d", @"/Areas/Identity/Pages/_ViewImports.cshtml")]
[global::Microsoft.AspNetCore.Razor.Hosting.RazorSourceChecksumAttribute(@"SHA1", @"977f1c84f7a8193eb9ad216a7d0b0ff5aebaa5b6", @"/Areas/Identity/Pages/Account/_ViewImports.cshtml")]
public class Areas_Identity_Pages_Account_Manage__ViewImports : global::Microsoft.AspNetCore.Mvc.Razor.RazorPage<dynamic>
{
#pragma warning disable 1998
public async override global::System.Threading.Tasks.Task ExecuteAsync()
{
}
#pragma warning restore 1998
[global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
public global::Microsoft.AspNetCore.Mvc.ViewFeatures.IModelExpressionProvider ModelExpressionProvider { get; private set; }
[global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
public global::Microsoft.AspNetCore.Mvc.IUrlHelper Url { get; private set; }
[global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
public global::Microsoft.AspNetCore.Mvc.IViewComponentHelper Component { get; private set; }
[global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
public global::Microsoft.AspNetCore.Mvc.Rendering.IJsonHelper Json { get; private set; }
[global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
public global::Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper<dynamic> Html { get; private set; }
}
}
#pragma warning restore 1591
#pragma checksum "C:\Users\HASAN\Desktop\Medic\WebPresentation\Areas\Identity\Pages\Account\_ViewImports.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "977f1c84f7a8193eb9ad216a7d0b0ff5aebaa5b6"
// <auto-generated/>
#pragma warning disable 1591
[assembly: global::Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItemAttribute(typeof(AspNetCore.Areas_Identity_Pages_Account__ViewImports), @"mvc.1.0.view", @"/Areas/Identity/Pages/Account/_ViewImports.cshtml")]
namespace AspNetCore
{
#line hidden
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Rendering;
using Microsoft.AspNetCore.Mvc.ViewFeatures;
#nullable restore
#line 1 "C:\Users\HASAN\Desktop\Medic\WebPresentation\Areas\Identity\Pages\_ViewImports.cshtml"
using Microsoft.AspNetCore.Identity;
#line default
#line hidden
#nullable disable
#nullable restore
#line 2 "C:\Users\HASAN\Desktop\Medic\WebPresentation\Areas\Identity\Pages\_ViewImports.cshtml"
using WebPresentation.Areas.Identity;
#line default
#line hidden
#nullable disable
#nullable restore
#line 3 "C:\Users\HASAN\Desktop\Medic\WebPresentation\Areas\Identity\Pages\_ViewImports.cshtml"
using WebPresentation.Areas.Identity.Pages;
#line default
#line hidden
#nullable disable
#nullable restore
#line 5 "C:\Users\HASAN\Desktop\Medic\WebPresentation\Areas\Identity\Pages\_ViewImports.cshtml"
using ApplicationCore.Entities;
#line default
#line hidden
#nullable disable
#nullable restore
#line 1 "C:\Users\HASAN\Desktop\Medic\WebPresentation\Areas\Identity\Pages\Account\_ViewImports.cshtml"
using WebPresentation.Areas.Identity.Pages.Account;
#line default
#line hidden
#nullable disable
[global::Microsoft.AspNetCore.Razor.Hosting.RazorSourceChecksumAttribute(@"SHA1", @"977f1c84f7a8193eb9ad216a7d0b0ff5aebaa5b6", @"/Areas/Identity/Pages/Account/_ViewImports.cshtml")]
[global::Microsoft.AspNetCore.Razor.Hosting.RazorSourceChecksumAttribute(@"SHA1", @"74967318c7317c7253bd4196f40076c74014696d", @"/Areas/Identity/Pages/_ViewImports.cshtml")]
public class Areas_Identity_Pages_Account__ViewImports : global::Microsoft.AspNetCore.Mvc.Razor.RazorPage<dynamic>
{
#pragma warning disable 1998
public async override global::System.Threading.Tasks.Task ExecuteAsync()
{
}
#pragma warning restore 1998
[global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
public global::Microsoft.AspNetCore.Mvc.ViewFeatures.IModelExpressionProvider ModelExpressionProvider { get; private set; }
[global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
public global::Microsoft.AspNetCore.Mvc.IUrlHelper Url { get; private set; }
[global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
public global::Microsoft.AspNetCore.Mvc.IViewComponentHelper Component { get; private set; }
[global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
public global::Microsoft.AspNetCore.Mvc.Rendering.IJsonHelper Json { get; private set; }
[global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
public global::Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper<dynamic> Html { get; private set; }
}
}
#pragma warning restore 1591
#pragma checksum "C:\Users\HASAN\Desktop\Medic\WebPresentation\Areas\Identity\Pages\_ViewImports.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "74967318c7317c7253bd4196f40076c74014696d"
// <auto-generated/>
#pragma warning disable 1591
[assembly: global::Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItemAttribute(typeof(AspNetCore.Areas_Identity_Pages__ViewImports), @"mvc.1.0.view", @"/Areas/Identity/Pages/_ViewImports.cshtml")]
namespace AspNetCore
{
#line hidden
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Rendering;
using Microsoft.AspNetCore.Mvc.ViewFeatures;
#nullable restore
#line 1 "C:\Users\HASAN\Desktop\Medic\WebPresentation\Areas\Identity\Pages\_ViewImports.cshtml"
using Microsoft.AspNetCore.Identity;
#line default
#line hidden
#nullable disable
#nullable restore
#line 2 "C:\Users\HASAN\Desktop\Medic\WebPresentation\Areas\Identity\Pages\_ViewImports.cshtml"
using WebPresentation.Areas.Identity;
#line default
#line hidden
#nullable disable
#nullable restore
#line 3 "C:\Users\HASAN\Desktop\Medic\WebPresentation\Areas\Identity\Pages\_ViewImports.cshtml"
using WebPresentation.Areas.Identity.Pages;
#line default
#line hidden
#nullable disable
#nullable restore
#line 5 "C:\Users\HASAN\Desktop\Medic\WebPresentation\Areas\Identity\Pages\_ViewImports.cshtml"
using ApplicationCore.Entities;
#line default
#line hidden
#nullable disable
[global::Microsoft.AspNetCore.Razor.Hosting.RazorSourceChecksumAttribute(@"SHA1", @"74967318c7317c7253bd4196f40076c74014696d", @"/Areas/Identity/Pages/_ViewImports.cshtml")]
public class Areas_Identity_Pages__ViewImports : global::Microsoft.AspNetCore.Mvc.Razor.RazorPage<dynamic>
{
#pragma warning disable 1998
public async override global::System.Threading.Tasks.Task ExecuteAsync()
{
}
#pragma warning restore 1998
[global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
public global::Microsoft.AspNetCore.Mvc.ViewFeatures.IModelExpressionProvider ModelExpressionProvider { get; private set; }
[global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
public global::Microsoft.AspNetCore.Mvc.IUrlHelper Url { get; private set; }
[global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
public global::Microsoft.AspNetCore.Mvc.IViewComponentHelper Component { get; private set; }
[global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
public global::Microsoft.AspNetCore.Mvc.Rendering.IJsonHelper Json { get; private set; }
[global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
public global::Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper<dynamic> Html { get; private set; }
}
}
#pragma warning restore 1591
#pragma checksum "C:\Users\HASAN\Desktop\Medic\WebPresentation\Areas\Identity\Pages\_ViewStart.cshtml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "43e0bf0d61f9a553d2f59156ad2cdff9b3bdd158"
// <auto-generated/>
#pragma warning disable 1591
[assembly: global::Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItemAttribute(typeof(AspNetCore.Areas_Identity_Pages__ViewStart), @"mvc.1.0.view", @"/Areas/Identity/Pages/_ViewStart.cshtml")]
namespace AspNetCore
{
#line hidden
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Rendering;
using Microsoft.AspNetCore.Mvc.ViewFeatures;
#nullable restore
#line 1 "C:\Users\HASAN\Desktop\Medic\WebPresentation\Areas\Identity\Pages\_ViewImports.cshtml"
using Microsoft.AspNetCore.Identity;
#line default
#line hidden
#nullable disable
#nullable restore
#line 2 "C:\Users\HASAN\Desktop\Medic\WebPresentation\Areas\Identity\Pages\_ViewImports.cshtml"
using WebPresentation.Areas.Identity;
#line default
#line hidden
#nullable disable
#nullable restore
#line 3 "C:\Users\HASAN\Desktop\Medic\WebPresentation\Areas\Identity\Pages\_ViewImports.cshtml"
using WebPresentation.Areas.Identity.Pages;
#line default
#line hidden
#nullable disable
#nullable restore
#line 5 "C:\Users\HASAN\Desktop\Medic\WebPresentation\Areas\Identity\Pages\_ViewImports.cshtml"
using ApplicationCore.Entities;
#line default
#line hidden
#nullable disable
[global::Microsoft.AspNetCore.Razor.Hosting.RazorSourceChecksumAttribute(@"SHA1", @"43e0bf0d61f9a553d2f59156ad2cdff9b3bdd158", @"/Areas/Identity/Pages/_ViewStart.cshtml")]
[global::Microsoft.AspNetCore.Razor.Hosting.RazorSourceChecksumAttribute(@"SHA1", @"74967318c7317c7253bd4196f40076c74014696d", @"/Areas/Identity/Pages/_ViewImports.cshtml")]
public class Areas_Identity_Pages__ViewStart : global::Microsoft.AspNetCore.Mvc.Razor.RazorPage<dynamic>
{
#pragma warning disable 1998
public async override global::System.Threading.Tasks.Task ExecuteAsync()
{
WriteLiteral("\r\n");
#nullable restore
#line 2 "C:\Users\HASAN\Desktop\Medic\WebPresentation\Areas\Identity\Pages\_ViewStart.cshtml"
Layout = "/Views/Shared/_Layout.cshtml";
#line default
#line hidden
#nullable disable
}
#pragma warning restore 1998
[global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
public global::Microsoft.AspNetCore.Mvc.ViewFeatures.IModelExpressionProvider ModelExpressionProvider { get; private set; }
[global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
public global::Microsoft.AspNetCore.Mvc.IUrlHelper Url { get; private set; }
[global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
public global::Microsoft.AspNetCore.Mvc.IViewComponentHelper Component { get; private set; }
[global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
public global::Microsoft.AspNetCore.Mvc.Rendering.IJsonHelper Json { get; private set; }
[global::Microsoft.AspNetCore.Mvc.Razor.Internal.RazorInjectAttribute]
public global::Microsoft.AspNetCore.Mvc.Rendering.IHtmlHelper<dynamic> Html { get; private set; }
}
}
#pragma warning restore 1591
...@@ -11,7 +11,6 @@ ...@@ -11,7 +11,6 @@
using System; using System;
using System.Reflection; using System.Reflection;
[assembly: Microsoft.AspNetCore.Identity.UI.UIFrameworkAttribute("Bootstrap4")]
[assembly: System.Reflection.AssemblyCompanyAttribute("WebPresentation")] [assembly: System.Reflection.AssemblyCompanyAttribute("WebPresentation")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
......
614ef251166e27a59d32a9904e018fa178021441 6796d61d9a1cbb7625dea42eff5602f4f93be98c
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartAttribute("Microsoft.AspNetCore.Identity.UI")]
[assembly: Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartAttribute("Microsoft.AspNetCore.Identity.UI.Views.V4")]
// Generated by the MSBuild WriteCodeFragment class.
87af980f554de7a3776e2681740d8dd0c51ce2b5 680663d68e3317b60aa25a17e67b93a6a2efd859
fd3ad411c6c952c525467dac3b1c19c633c483d7 a53e73f7f914b053025c2ef5fb06521fb51ec284
<StaticWebAssets Version="1.0"> <StaticWebAssets Version="1.0" />
<ContentRoot BasePath="/Identity" Path="C:\Users\HASAN\.nuget\packages\microsoft.aspnetcore.identity.ui\5.0.17\staticwebassets\V4\" /> \ No newline at end of file
</StaticWebAssets>
\ No newline at end of file
...@@ -207,10 +207,6 @@ ...@@ -207,10 +207,6 @@
"target": "Package", "target": "Package",
"version": "[5.0.17, )" "version": "[5.0.17, )"
}, },
"Microsoft.AspNetCore.Identity.UI": {
"target": "Package",
"version": "[5.0.17, )"
},
"Microsoft.EntityFrameworkCore.Design": { "Microsoft.EntityFrameworkCore.Design": {
"include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive", "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive",
"suppressParent": "All", "suppressParent": "All",
......
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment