xfe 1 жил өмнө
parent
commit
967320f304
92 өөрчлөгдсөн 206 нэмэгдсэн , 312 устгасан
  1. 25 0
      Id4.sln
  2. 32 0
      Id4/Controllers/HomeController.cs
  3. 13 0
      Id4/Id4.csproj
  4. 47 0
      Id4/InMemoryConfig.cs
  5. 9 0
      Id4/Models/ErrorViewModel.cs
  6. 45 0
      Id4/Program.cs
  7. 13 0
      Id4/Properties/launchSettings.json
  8. 8 0
      Id4/Views/Home/Index.cshtml
  9. 1 5
      Id4/Views/Home/Privacy.cshtml
  10. 2 3
      Id4/Views/Shared/Error.cshtml
  11. 8 10
      Id4/Views/Shared/_Layout.cshtml
  12. 0 0
      Id4/Views/Shared/_Layout.cshtml.css
  13. 0 0
      Id4/Views/Shared/_ValidationScriptsPartial.cshtml
  14. 2 2
      Id4/Views/_ViewImports.cshtml
  15. 0 0
      Id4/Views/_ViewStart.cshtml
  16. 0 1
      Id4/appsettings.Development.json
  17. 0 0
      Id4/appsettings.json
  18. 1 0
      Id4/tempkey.jwk
  19. 0 0
      Id4/wwwroot/css/site.css
  20. 0 0
      Id4/wwwroot/favicon.ico
  21. 0 0
      Id4/wwwroot/js/site.js
  22. 0 0
      Id4/wwwroot/lib/bootstrap/LICENSE
  23. 0 0
      Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css
  24. 0 0
      Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css.map
  25. 0 0
      Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css
  26. 0 0
      Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css.map
  27. 0 0
      Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css
  28. 0 0
      Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css.map
  29. 0 0
      Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css
  30. 0 0
      Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css.map
  31. 0 0
      Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css
  32. 0 0
      Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css.map
  33. 0 0
      Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css
  34. 0 0
      Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css.map
  35. 0 0
      Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css
  36. 0 0
      Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css.map
  37. 0 0
      Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css
  38. 0 0
      Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css.map
  39. 0 0
      Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css
  40. 0 0
      Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css.map
  41. 0 0
      Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css
  42. 0 0
      Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css.map
  43. 0 0
      Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css
  44. 0 0
      Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css.map
  45. 0 0
      Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css
  46. 0 0
      Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css.map
  47. 0 0
      Id4/wwwroot/lib/bootstrap/dist/css/bootstrap.css
  48. 0 0
      Id4/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map
  49. 0 0
      Id4/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css
  50. 0 0
      Id4/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map
  51. 0 0
      Id4/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css
  52. 0 0
      Id4/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css.map
  53. 0 0
      Id4/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css
  54. 0 0
      Id4/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css.map
  55. 0 0
      Id4/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js
  56. 0 0
      Id4/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map
  57. 0 0
      Id4/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js
  58. 0 0
      Id4/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map
  59. 0 0
      Id4/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js
  60. 0 0
      Id4/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js.map
  61. 0 0
      Id4/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js
  62. 0 0
      Id4/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js.map
  63. 0 0
      Id4/wwwroot/lib/bootstrap/dist/js/bootstrap.js
  64. 0 0
      Id4/wwwroot/lib/bootstrap/dist/js/bootstrap.js.map
  65. 0 0
      Id4/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js
  66. 0 0
      Id4/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js.map
  67. 0 0
      Id4/wwwroot/lib/jquery-validation-unobtrusive/LICENSE.txt
  68. 0 0
      Id4/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js
  69. 0 0
      Id4/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js
  70. 0 0
      Id4/wwwroot/lib/jquery-validation/LICENSE.md
  71. 0 0
      Id4/wwwroot/lib/jquery-validation/dist/additional-methods.js
  72. 0 0
      Id4/wwwroot/lib/jquery-validation/dist/additional-methods.min.js
  73. 0 0
      Id4/wwwroot/lib/jquery-validation/dist/jquery.validate.js
  74. 0 0
      Id4/wwwroot/lib/jquery-validation/dist/jquery.validate.min.js
  75. 0 0
      Id4/wwwroot/lib/jquery/LICENSE.txt
  76. 0 0
      Id4/wwwroot/lib/jquery/dist/jquery.js
  77. 0 0
      Id4/wwwroot/lib/jquery/dist/jquery.min.js
  78. 0 0
      Id4/wwwroot/lib/jquery/dist/jquery.min.map
  79. 0 31
      MyFrontEnd.sln
  80. 0 21
      MyFrontEnd/Dockerfile
  81. 0 16
      MyFrontEnd/MyFrontEnd.csproj
  82. 0 27
      MyFrontEnd/Pages/Error.cshtml.cs
  83. 0 14
      MyFrontEnd/Pages/Index.cshtml
  84. 0 24
      MyFrontEnd/Pages/Index.cshtml.cs
  85. 0 30
      MyFrontEnd/Pages/Privacy.cshtml.cs
  86. 0 24
      MyFrontEnd/Program.cs
  87. 0 34
      MyFrontEnd/Properties/launchSettings.json
  88. 0 10
      MyFrontEnd/WeatherForecast.cs
  89. 0 18
      docker-compose.dcproj
  90. 0 8
      docker-compose.override.yml
  91. 0 23
      docker-compose.yml
  92. 0 11
      launchSettings.json

+ 25 - 0
Id4.sln

@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.6.33829.357
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Id4", "Id4\Id4.csproj", "{DA928E02-DAF8-41A4-AF14-72F5EB9BE03B}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{DA928E02-DAF8-41A4-AF14-72F5EB9BE03B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{DA928E02-DAF8-41A4-AF14-72F5EB9BE03B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{DA928E02-DAF8-41A4-AF14-72F5EB9BE03B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{DA928E02-DAF8-41A4-AF14-72F5EB9BE03B}.Release|Any CPU.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {B8E6F508-A59D-4B99-8A64-DEC076954A93}
+	EndGlobalSection
+EndGlobal

+ 32 - 0
Id4/Controllers/HomeController.cs

@@ -0,0 +1,32 @@
+using Id4.Models;
+using Microsoft.AspNetCore.Mvc;
+using System.Diagnostics;
+
+namespace Id4.Controllers
+{
+    public class HomeController : Controller
+    {
+        private readonly ILogger<HomeController> _logger;
+
+        public HomeController(ILogger<HomeController> logger)
+        {
+            _logger = logger;
+        }
+
+        public IActionResult Index()
+        {
+            return View();
+        }
+
+        public IActionResult Privacy()
+        {
+            return View();
+        }
+
+        [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
+        public IActionResult Error()
+        {
+            return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
+        }
+    }
+}

+ 13 - 0
Id4/Id4.csproj

@@ -0,0 +1,13 @@
+<Project Sdk="Microsoft.NET.Sdk.Web">
+
+  <PropertyGroup>
+    <TargetFramework>net7.0</TargetFramework>
+    <Nullable>enable</Nullable>
+    <ImplicitUsings>enable</ImplicitUsings>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <PackageReference Include="IdentityServer4" Version="4.1.2" />
+  </ItemGroup>
+
+</Project>

+ 47 - 0
Id4/InMemoryConfig.cs

@@ -0,0 +1,47 @@
+using IdentityServer4.Models;
+using IdentityServer4.Test;
+
+namespace Id4
+{
+    public static class InMemoryConfig
+    {
+        // 这个 Authorization Server 保护了哪些 API (资源)
+        public static IEnumerable<ApiResource> GetApiResources()
+        {
+            return new[]
+            {
+                new ApiResource("blog.core.api", "Blog.Core API")
+            };
+        }
+        // 哪些客户端 Client(应用) 可以使用这个 Authorization Server
+        public static IEnumerable<Client> GetClients()
+        {
+            return new[]
+            {
+                new Client
+                {
+                    ClientId = "blogvuejs",//定义客户端 Id
+                    ClientSecrets = new [] { new Secret("secret".Sha256()) },//Client用来获取token
+                    AllowedGrantTypes = GrantTypes.ResourceOwnerPasswordAndClientCredentials,//这里使用的是通过用户名密码和ClientCredentials来换取token的方式. ClientCredentials允许Client只使用ClientSecrets来获取token. 这比较适合那种没有用户参与的api动作
+                    AllowedScopes = new [] { "blog.core.api" }// 允许访问的 API 资源
+                }
+            };
+        }
+        // 指定可以使用 Authorization Server 授权的 Users(用户)
+        public static IEnumerable<TestUser> Users()
+        {
+            return new[]
+            {
+                new TestUser
+                {
+                    SubjectId = "1",
+                    Username = "laozhang",
+                    Password = "laozhang"
+                }
+            };
+        }
+
+        public static IEnumerable<ApiScope> ApiScopes =>
+            new ApiScope[] { new ApiScope("blog.core.api") };
+    }
+}

+ 9 - 0
Id4/Models/ErrorViewModel.cs

@@ -0,0 +1,9 @@
+namespace Id4.Models
+{
+    public class ErrorViewModel
+    {
+        public string? RequestId { get; set; }
+
+        public bool ShowRequestId => !string.IsNullOrEmpty(RequestId);
+    }
+}

+ 45 - 0
Id4/Program.cs

@@ -0,0 +1,45 @@
+using Id4;
+
+var builder = WebApplication.CreateBuilder(args);
+var services = builder.Services;
+
+// Add services to the container.
+builder.Services.AddControllersWithViews();
+
+services.AddIdentityServer(options =>
+    {
+        options.Events.RaiseErrorEvents = true;
+        options.Events.RaiseInformationEvents = true;
+        options.Events.RaiseFailureEvents = true;
+        options.Events.RaiseSuccessEvents = true;
+    })
+    // in-memory, code config
+    .AddTestUsers(InMemoryConfig.Users().ToList())
+    .AddInMemoryApiResources(InMemoryConfig.GetApiResources())
+    .AddInMemoryClients(InMemoryConfig.GetClients())
+    .AddInMemoryApiScopes(InMemoryConfig.ApiScopes)
+    .AddDeveloperSigningCredential();
+
+
+services.AddAuthentication();//ÅäÖÃÈÏÖ¤·þÎñ
+
+var app = builder.Build();
+
+// Configure the HTTP request pipeline.
+if (!app.Environment.IsDevelopment())
+{
+    app.UseExceptionHandler("/Home/Error");
+}
+app.UseStaticFiles();
+
+app.UseRouting();
+
+app.UseIdentityServer();
+
+app.UseAuthorization();
+
+app.MapControllerRoute(
+    name: "default",
+    pattern: "{controller=Home}/{action=Index}/{id?}");
+
+app.Run();

+ 13 - 0
Id4/Properties/launchSettings.json

@@ -0,0 +1,13 @@
+{
+  "profiles": {
+    "http": {
+      "commandName": "Project",
+      "dotnetRunMessages": true,
+      "launchBrowser": true,
+      "applicationUrl": "http://localhost:5219",
+      "environmentVariables": {
+        "ASPNETCORE_ENVIRONMENT": "Development"
+      }
+    }
+  }
+}

+ 8 - 0
Id4/Views/Home/Index.cshtml

@@ -0,0 +1,8 @@
+@{
+    ViewData["Title"] = "Home Page";
+}
+
+<div class="text-center">
+    <h1 class="display-4">Welcome</h1>
+    <p>Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p>
+</div>

+ 1 - 5
MyFrontEnd/Pages/Privacy.cshtml → Id4/Views/Home/Privacy.cshtml

@@ -1,10 +1,6 @@
-@page
-@model PrivacyModel
-@{
+@{
     ViewData["Title"] = "Privacy Policy";
 }
 <h1>@ViewData["Title"]</h1>
 
 <p>Use this page to detail your site's privacy policy.</p>
-
-<p>@ViewData["menus"]</p>

+ 2 - 3
MyFrontEnd/Pages/Error.cshtml → Id4/Views/Shared/Error.cshtml

@@ -1,5 +1,4 @@
-@page
-@model ErrorModel
+@model ErrorViewModel
 @{
     ViewData["Title"] = "Error";
 }
@@ -16,7 +15,7 @@
 
 <h3>Development Mode</h3>
 <p>
-    Swapping to the <strong>Development</strong> environment displays detailed information about the error that occurred.
+    Swapping to <strong>Development</strong> environment will display more detailed information about the error that occurred.
 </p>
 <p>
     <strong>The Development environment shouldn't be enabled for deployed applications.</strong>

+ 8 - 10
MyFrontEnd/Pages/Shared/_Layout.cshtml → Id4/Views/Shared/_Layout.cshtml

@@ -3,16 +3,16 @@
 <head>
     <meta charset="utf-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <title>@ViewData["Title"] - MyFrontEnd</title>
+    <title>@ViewData["Title"] - Id4</title>
     <link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" />
     <link rel="stylesheet" href="~/css/site.css" asp-append-version="true" />
-    <link rel="stylesheet" href="~/MyFrontEnd.styles.css" asp-append-version="true" />
+    <link rel="stylesheet" href="~/Id4.styles.css" asp-append-version="true" />
 </head>
 <body>
     <header>
         <nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-white border-bottom box-shadow mb-3">
-            <div class="container">
-                <a class="navbar-brand" asp-area="" asp-page="/Index">MyFrontEnd</a>
+            <div class="container-fluid">
+                <a class="navbar-brand" asp-area="" asp-controller="Home" asp-action="Index">Id4</a>
                 <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target=".navbar-collapse" aria-controls="navbarSupportedContent"
                         aria-expanded="false" aria-label="Toggle navigation">
                     <span class="navbar-toggler-icon"></span>
@@ -20,10 +20,10 @@
                 <div class="navbar-collapse collapse d-sm-inline-flex justify-content-between">
                     <ul class="navbar-nav flex-grow-1">
                         <li class="nav-item">
-                            <a class="nav-link text-dark" asp-area="" asp-page="/Index">Home</a>
+                            <a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Index">Home</a>
                         </li>
                         <li class="nav-item">
-                            <a class="nav-link text-dark" asp-area="" asp-page="/Privacy">Privacy</a>
+                            <a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Privacy">Privacy</a>
                         </li>
                     </ul>
                 </div>
@@ -38,14 +38,12 @@
 
     <footer class="border-top footer text-muted">
         <div class="container">
-            &copy; 2023 - MyFrontEnd - <a asp-area="" asp-page="/Privacy">Privacy</a>
+            &copy; 2023 - Id4 - <a asp-area="" asp-controller="Home" asp-action="Privacy">Privacy</a>
         </div>
     </footer>
-
     <script src="~/lib/jquery/dist/jquery.min.js"></script>
     <script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
     <script src="~/js/site.js" asp-append-version="true"></script>
-
     @await RenderSectionAsync("Scripts", required: false)
 </body>
-</html>
+</html>

+ 0 - 0
MyFrontEnd/Pages/Shared/_Layout.cshtml.css → Id4/Views/Shared/_Layout.cshtml.css


+ 0 - 0
MyFrontEnd/Pages/Shared/_ValidationScriptsPartial.cshtml → Id4/Views/Shared/_ValidationScriptsPartial.cshtml


+ 2 - 2
MyFrontEnd/Pages/_ViewImports.cshtml → Id4/Views/_ViewImports.cshtml

@@ -1,3 +1,3 @@
-@using MyFrontEnd
-@namespace MyFrontEnd.Pages
+@using Id4
+@using Id4.Models
 @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers

+ 0 - 0
MyFrontEnd/Pages/_ViewStart.cshtml → Id4/Views/_ViewStart.cshtml


+ 0 - 1
MyFrontEnd/appsettings.Development.json → Id4/appsettings.Development.json

@@ -1,5 +1,4 @@
 {
-  "DetailedErrors": true,
   "Logging": {
     "LogLevel": {
       "Default": "Information",

+ 0 - 0
MyFrontEnd/appsettings.json → Id4/appsettings.json


+ 1 - 0
Id4/tempkey.jwk

@@ -0,0 +1 @@
+{"alg":"RS256","d":"dO-CJeIGOEEoKRK_RbrcCIwny45__G4KcsyU0L5vJ14tVIxjOb7u3aWebzFT2lb3C8K4JrMZ_Cd9VjkElT5Kyr5rRjnim-lvV42Y5cjOMbG5NSEwltwznbe14goTu3pCfAA2FVYqu2Fm1X9dWBpn8Qlx6x8_cMYG3KuQruDzlQz7xotiAc8zvKkS8Y3bkauEITJ-kjyKtfqMGxHaD_zQRCKxYXBE8jK1mfyfG-YjQp6Jlrln-U2X5AGRTwpV0hkAg0DiXAmBKY9QbO3kSBE84HkJXw42JOJlMMzPu5ljJkf9QLKHr1HRj-_FnhMG1Dsj_PDNADoQ5gz0Wkige9FUaQ","dp":"ca6hVRSyoR7pSFoVbT3QXTb49FptpRr8PfzGdicD3JWIP3-mGSqpGUuBhyHkH6MNP4cWUR4VvGJQmZU-7A-0DthzYlKSIqghQj_LaPH09yIdxAnDmLzEQOoAoB1iCBHCZAI6EaoeRAyHngjWL0-DwFMl9BmrPpHzv0ekvCFeYC0","dq":"STicWRkzWp4iAq7RMYG2kCDMspLVrw8ekQG9eMAGEGxtv8adBOmHnlCNeAy0kGGRAA7_qDx5DMfwL2yySk-DkAK7UEYozgPrHIFsA7cmCgJHhPel3EcSJ3XCw9Jsjq-sytPhZjWixTPorevGdzGniaXIOqFjYsbBbM08xi9hgaM","e":"AQAB","kid":"8E9A591E574936909AFACA7C9FD42D72","kty":"RSA","n":"oEeRhUkP9OcrhOogBRvGlGULRi7QShcEO_XjsdkLDL03iVHnz5xU6zfSc6sURM3naEDem90uRBcjOnJxQvk4z_V-0fjJhArlnBOTscD-OaGBW_FA3A6TjBzYfEzUb9NFlUEKtKtfr4oi7JOS3A0mXUaHcJpBCp6g9UXQUaXUPFxDtX24DbZxCH6XLDxMPf97vpF4wM0nChQe9MhESmAiojz6uXmvvwgGHzNl8L3Mi3GERRkzFdM1NMOYADXuEv7T-w-2Tu_dKL_NL-anSSXYQfsaTJISgrpVE-9gnVM6tnlSuOximkPZZoQV_JeCatefOk7gQC5mHJZqbyiJk0jv7Q","p":"xBK5B0bAiM1revMXDNYC2ZtjScuLTwEubQPDK1tpDqENMsjHevxkAbOsUJmTfM7ItHpw1gDGFxhvilO7uHf6D73ULEo_OuluCNHA6vnGM8MuwdbmkFAt57UXvh-t5Za6SCxKdXGu2EhovYHF-vHwnHUNzmJ-T4HJmURh9RKtzZs","q":"0URDOdXT5oSoI0mJECoRAxXVroU7sTx-PjsslUGNcNbc5Ei1V25LWtIJI4lmuz4qPXf0BhMay9eNfuNLW0kFlntalYvLqlvB-ltkyho1zPwCW7xg0A-ziHSqYRKMKhF6FUk0U4pA-8EOdJQsBN5qeUb9crR_oLqHdUjRS3slVRc","qi":"g3LY4SDG6ziu_iVwfygssr4G89MST766A4Gr2VY2w0n2BlXQO97zMAkagxjGCz-1CWCKzrzmfA8JsPXUK82tnsjXCliSSK6FkkaeTl6ocvy-I4gaZMU8ChfRT-s18iMzVaHhEBAkYejSgYUli8Fzzr2jpWuepJRuFDkga2pFprI"}

+ 0 - 0
MyFrontEnd/wwwroot/css/site.css → Id4/wwwroot/css/site.css


+ 0 - 0
MyFrontEnd/wwwroot/favicon.ico → Id4/wwwroot/favicon.ico


+ 0 - 0
MyFrontEnd/wwwroot/js/site.js → Id4/wwwroot/js/site.js


+ 0 - 0
MyFrontEnd/wwwroot/lib/bootstrap/LICENSE → Id4/wwwroot/lib/bootstrap/LICENSE


+ 0 - 0
MyFrontEnd/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css → Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css


+ 0 - 0
MyFrontEnd/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css.map → Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css.map


+ 0 - 0
MyFrontEnd/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css → Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css


+ 0 - 0
MyFrontEnd/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css.map → Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css.map


+ 0 - 0
MyFrontEnd/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css → Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css


+ 0 - 0
MyFrontEnd/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css.map → Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.css.map


+ 0 - 0
MyFrontEnd/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css → Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css


+ 0 - 0
MyFrontEnd/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css.map → Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.rtl.min.css.map


+ 0 - 0
MyFrontEnd/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css → Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css


+ 0 - 0
MyFrontEnd/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css.map → Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css.map


+ 0 - 0
MyFrontEnd/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css → Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css


+ 0 - 0
MyFrontEnd/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css.map → Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css.map


+ 0 - 0
MyFrontEnd/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css → Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css


+ 0 - 0
MyFrontEnd/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css.map → Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.css.map


+ 0 - 0
MyFrontEnd/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css → Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css


+ 0 - 0
MyFrontEnd/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css.map → Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.rtl.min.css.map


+ 0 - 0
MyFrontEnd/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css → Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css


+ 0 - 0
MyFrontEnd/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css.map → Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.css.map


+ 0 - 0
MyFrontEnd/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css → Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css


+ 0 - 0
MyFrontEnd/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css.map → Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.min.css.map


+ 0 - 0
MyFrontEnd/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css → Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css


+ 0 - 0
MyFrontEnd/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css.map → Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.css.map


+ 0 - 0
MyFrontEnd/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css → Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css


+ 0 - 0
MyFrontEnd/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css.map → Id4/wwwroot/lib/bootstrap/dist/css/bootstrap-utilities.rtl.min.css.map


+ 0 - 0
MyFrontEnd/wwwroot/lib/bootstrap/dist/css/bootstrap.css → Id4/wwwroot/lib/bootstrap/dist/css/bootstrap.css


+ 0 - 0
MyFrontEnd/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map → Id4/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map


+ 0 - 0
MyFrontEnd/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css → Id4/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css


+ 0 - 0
MyFrontEnd/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map → Id4/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map


+ 0 - 0
MyFrontEnd/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css → Id4/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css


+ 0 - 0
MyFrontEnd/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css.map → Id4/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.css.map


+ 0 - 0
MyFrontEnd/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css → Id4/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css


+ 0 - 0
MyFrontEnd/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css.map → Id4/wwwroot/lib/bootstrap/dist/css/bootstrap.rtl.min.css.map


+ 0 - 0
MyFrontEnd/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js → Id4/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js


+ 0 - 0
MyFrontEnd/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map → Id4/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map


+ 0 - 0
MyFrontEnd/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js → Id4/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js


+ 0 - 0
MyFrontEnd/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map → Id4/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map


+ 0 - 0
MyFrontEnd/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js → Id4/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js


+ 0 - 0
MyFrontEnd/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js.map → Id4/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.js.map


+ 0 - 0
MyFrontEnd/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js → Id4/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js


+ 0 - 0
MyFrontEnd/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js.map → Id4/wwwroot/lib/bootstrap/dist/js/bootstrap.esm.min.js.map


+ 0 - 0
MyFrontEnd/wwwroot/lib/bootstrap/dist/js/bootstrap.js → Id4/wwwroot/lib/bootstrap/dist/js/bootstrap.js


+ 0 - 0
MyFrontEnd/wwwroot/lib/bootstrap/dist/js/bootstrap.js.map → Id4/wwwroot/lib/bootstrap/dist/js/bootstrap.js.map


+ 0 - 0
MyFrontEnd/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js → Id4/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js


+ 0 - 0
MyFrontEnd/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js.map → Id4/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js.map


+ 0 - 0
MyFrontEnd/wwwroot/lib/jquery-validation-unobtrusive/LICENSE.txt → Id4/wwwroot/lib/jquery-validation-unobtrusive/LICENSE.txt


+ 0 - 0
MyFrontEnd/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js → Id4/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js


+ 0 - 0
MyFrontEnd/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js → Id4/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js


+ 0 - 0
MyFrontEnd/wwwroot/lib/jquery-validation/LICENSE.md → Id4/wwwroot/lib/jquery-validation/LICENSE.md


+ 0 - 0
MyFrontEnd/wwwroot/lib/jquery-validation/dist/additional-methods.js → Id4/wwwroot/lib/jquery-validation/dist/additional-methods.js


+ 0 - 0
MyFrontEnd/wwwroot/lib/jquery-validation/dist/additional-methods.min.js → Id4/wwwroot/lib/jquery-validation/dist/additional-methods.min.js


+ 0 - 0
MyFrontEnd/wwwroot/lib/jquery-validation/dist/jquery.validate.js → Id4/wwwroot/lib/jquery-validation/dist/jquery.validate.js


+ 0 - 0
MyFrontEnd/wwwroot/lib/jquery-validation/dist/jquery.validate.min.js → Id4/wwwroot/lib/jquery-validation/dist/jquery.validate.min.js


+ 0 - 0
MyFrontEnd/wwwroot/lib/jquery/LICENSE.txt → Id4/wwwroot/lib/jquery/LICENSE.txt


+ 0 - 0
MyFrontEnd/wwwroot/lib/jquery/dist/jquery.js → Id4/wwwroot/lib/jquery/dist/jquery.js


+ 0 - 0
MyFrontEnd/wwwroot/lib/jquery/dist/jquery.min.js → Id4/wwwroot/lib/jquery/dist/jquery.min.js


+ 0 - 0
MyFrontEnd/wwwroot/lib/jquery/dist/jquery.min.map → Id4/wwwroot/lib/jquery/dist/jquery.min.map


+ 0 - 31
MyFrontEnd.sln

@@ -1,31 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 17
-VisualStudioVersion = 17.6.33815.320
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyFrontEnd", "MyFrontEnd\MyFrontEnd.csproj", "{7F506051-3BAB-4085-A402-EFBAEF21E213}"
-EndProject
-Project("{E53339B2-1760-4266-BCC7-CA923CBCF16C}") = "docker-compose", "docker-compose.dcproj", "{83A6B014-F528-4065-8533-5E3FFB74CD68}"
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug|Any CPU = Debug|Any CPU
-		Release|Any CPU = Release|Any CPU
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{7F506051-3BAB-4085-A402-EFBAEF21E213}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{7F506051-3BAB-4085-A402-EFBAEF21E213}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{7F506051-3BAB-4085-A402-EFBAEF21E213}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{7F506051-3BAB-4085-A402-EFBAEF21E213}.Release|Any CPU.Build.0 = Release|Any CPU
-		{83A6B014-F528-4065-8533-5E3FFB74CD68}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{83A6B014-F528-4065-8533-5E3FFB74CD68}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{83A6B014-F528-4065-8533-5E3FFB74CD68}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{83A6B014-F528-4065-8533-5E3FFB74CD68}.Release|Any CPU.Build.0 = Release|Any CPU
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-	GlobalSection(ExtensibilityGlobals) = postSolution
-		SolutionGuid = {4C7042D1-8EE6-4DBC-87DE-2FF270517DAB}
-	EndGlobalSection
-EndGlobal

+ 0 - 21
MyFrontEnd/Dockerfile

@@ -1,21 +0,0 @@
-#See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.
-
-FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS base
-WORKDIR /app
-EXPOSE 80
-
-FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build
-WORKDIR /src
-COPY ["MyFrontEnd/MyFrontEnd.csproj", "MyFrontEnd/"]
-RUN dotnet restore "MyFrontEnd/MyFrontEnd.csproj"
-COPY . .
-WORKDIR "/src/MyFrontEnd"
-RUN dotnet build "MyFrontEnd.csproj" -c Release -o /app/build
-
-FROM build AS publish
-RUN dotnet publish "MyFrontEnd.csproj" -c Release -o /app/publish /p:UseAppHost=false
-
-FROM base AS final
-WORKDIR /app
-COPY --from=publish /app/publish .
-ENTRYPOINT ["dotnet", "MyFrontEnd.dll"]

+ 0 - 16
MyFrontEnd/MyFrontEnd.csproj

@@ -1,16 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk.Web">
-
-  <PropertyGroup>
-    <TargetFramework>net7.0</TargetFramework>
-    <Nullable>enable</Nullable>
-    <ImplicitUsings>enable</ImplicitUsings>
-    <DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
-    <DockerComposeProjectPath>..\docker-compose.dcproj</DockerComposeProjectPath>
-  </PropertyGroup>
-
-  <ItemGroup>
-    <PackageReference Include="Dapr.AspNetCore" Version="1.11.0" />
-    <PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.18.1" />
-  </ItemGroup>
-
-</Project>

+ 0 - 27
MyFrontEnd/Pages/Error.cshtml.cs

@@ -1,27 +0,0 @@
-using Microsoft.AspNetCore.Mvc;
-using Microsoft.AspNetCore.Mvc.RazorPages;
-using System.Diagnostics;
-
-namespace MyFrontEnd.Pages
-{
-    [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
-    [IgnoreAntiforgeryToken]
-    public class ErrorModel : PageModel
-    {
-        public string? RequestId { get; set; }
-
-        public bool ShowRequestId => !string.IsNullOrEmpty(RequestId);
-
-        private readonly ILogger<ErrorModel> _logger;
-
-        public ErrorModel(ILogger<ErrorModel> logger)
-        {
-            _logger = logger;
-        }
-
-        public void OnGet()
-        {
-            RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier;
-        }
-    }
-}

+ 0 - 14
MyFrontEnd/Pages/Index.cshtml

@@ -1,14 +0,0 @@
-@page
-@model IndexModel
-@{
-    ViewData["Title"] = "Home page";
-}
-
-<div class="text-center">
-    <h1 class="display-4">Welcome</h1>
-    <p>Learn about <a href="https://learn.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p>
-    @foreach (var forecast in (IEnumerable<WeatherForecast>)ViewData["WeatherForecastData"]!)
-    {
-        <p>The forecast for @forecast.Date is @forecast.Summary!</p>
-    }
-</div>

+ 0 - 24
MyFrontEnd/Pages/Index.cshtml.cs

@@ -1,24 +0,0 @@
-using Dapr.Client;
-using Microsoft.AspNetCore.Mvc.RazorPages;
-
-namespace MyFrontEnd.Pages;
-
-public class IndexModel : PageModel
-{
-    private readonly DaprClient _daprClient;
-
-    public IndexModel(DaprClient daprClient)
-    {
-        _daprClient = daprClient;
-    }
-
-    public async Task OnGet()
-    {
-        var forecasts = await _daprClient.InvokeMethodAsync<IEnumerable<WeatherForecast>>(
-            HttpMethod.Get,
-            "MyBackEnd",
-            "weatherforecast");
-
-        ViewData["WeatherForecastData"] = forecasts;
-    }
-}

+ 0 - 30
MyFrontEnd/Pages/Privacy.cshtml.cs

@@ -1,30 +0,0 @@
-using Dapr.Client;
-using Microsoft.AspNetCore.Mvc;
-using Microsoft.AspNetCore.Mvc.RazorPages;
-
-namespace MyFrontEnd.Pages
-{
-    public class PrivacyModel : PageModel
-    {
-        private readonly DaprClient _daprClient;
-        private readonly ILogger<PrivacyModel> _logger;
-
-        public PrivacyModel(
-            DaprClient daprClient,
-            ILogger<PrivacyModel> logger)
-        {
-            _daprClient = daprClient;
-            _logger = logger;
-        }
-
-        public async Task OnGet()
-        {
-            var menus = await _daprClient.InvokeMethodAsync<string>(
-                 HttpMethod.Get,
-                 "hotline",
-                 "api/v1/Sys/getmenujson");
-
-            ViewData["menus"] = menus;
-        }
-    }
-}

+ 0 - 24
MyFrontEnd/Program.cs

@@ -1,24 +0,0 @@
-var builder = WebApplication.CreateBuilder(args);
-
-// Add services to the container.
-builder.Services.AddDaprClient();
-builder.Services.AddRazorPages();
-
-//builder.WebHost.UseUrls("http://*:50112");
-
-var app = builder.Build();
-
-// Configure the HTTP request pipeline.
-//if (!app.Environment.IsDevelopment())
-//{
-    app.UseExceptionHandler("/Error");
-//}
-app.UseStaticFiles();
-
-app.UseRouting();
-
-app.UseAuthorization();
-
-app.MapRazorPages();
-
-app.Run();

+ 0 - 34
MyFrontEnd/Properties/launchSettings.json

@@ -1,34 +0,0 @@
-{
-  "profiles": {
-    "http": {
-      "commandName": "Project",
-      "launchBrowser": true,
-      "environmentVariables": {
-        "ASPNETCORE_ENVIRONMENT": "Development"
-      },
-      "dotnetRunMessages": true,
-      "applicationUrl": "http://localhost:5252"
-    },
-    "IIS Express": {
-      "commandName": "IISExpress",
-      "launchBrowser": true,
-      "environmentVariables": {
-        "ASPNETCORE_ENVIRONMENT": "Development"
-      }
-    },
-    "Docker": {
-      "commandName": "Docker",
-      "launchBrowser": true,
-      "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}",
-      "publishAllPorts": true
-    }
-  },
-  "iisSettings": {
-    "windowsAuthentication": false,
-    "anonymousAuthentication": true,
-    "iisExpress": {
-      "applicationUrl": "http://localhost:29850",
-      "sslPort": 0
-    }
-  }
-}

+ 0 - 10
MyFrontEnd/WeatherForecast.cs

@@ -1,10 +0,0 @@
-public class WeatherForecast
-{
-    public DateTime Date { get; set; }
-
-    public int TemperatureC { get; set; }
-
-    public int TemperatureF { get; set; }
-
-    public string Summary { get; set; } = string.Empty;
-}

+ 0 - 18
docker-compose.dcproj

@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="15.0" Sdk="Microsoft.Docker.Sdk">
-  <PropertyGroup Label="Globals">
-    <ProjectVersion>2.1</ProjectVersion>
-    <DockerTargetOS>Linux</DockerTargetOS>
-    <ProjectGuid>83a6b014-f528-4065-8533-5e3ffb74cd68</ProjectGuid>
-    <DockerLaunchAction>LaunchBrowser</DockerLaunchAction>
-    <DockerServiceUrl>{Scheme}://localhost:{ServicePort}</DockerServiceUrl>
-    <DockerServiceName>myfrontend</DockerServiceName>
-  </PropertyGroup>
-  <ItemGroup>
-    <None Include="docker-compose.override.yml">
-      <DependentUpon>docker-compose.yml</DependentUpon>
-    </None>
-    <None Include="docker-compose.yml" />
-    <None Include=".dockerignore" />
-  </ItemGroup>
-</Project>

+ 0 - 8
docker-compose.override.yml

@@ -1,8 +0,0 @@
-version: '3.4'
-
-services:
-  myfrontend:
-    environment:
-      - ASPNETCORE_ENVIRONMENT=Development
-    ports:
-      - "80"

+ 0 - 23
docker-compose.yml

@@ -1,23 +0,0 @@
-version: '3.4'
-
-services:
-  myfrontend:
-    image: ${DOCKER_REGISTRY-}myfrontend
-    build:
-      context: .
-      dockerfile: MyFrontEnd/Dockerfile
-    ports:
-      - "50115:50001"
-      - "50116:80"
-  
-  myfrontend-dapr:
-    image: "daprio/daprd:edge"
-    command: [ "./daprd", "-app-id", "MyFrontEnd", "-app-port", "80" ]
-    depends_on:
-      - myfrontend
-    network_mode: "service:myfrontend"
-
-networks:
-  default:
-    external: true
-    name: fw-dapr-network

+ 0 - 11
launchSettings.json

@@ -1,11 +0,0 @@
-{
-  "profiles": {
-    "Docker Compose": {
-      "commandName": "DockerCompose",
-      "commandVersion": "1.0",
-      "serviceActions": {
-        "myfrontend": "StartDebugging"
-      }
-    }
-  }
-}