JAELYS 6 år sedan
förälder
incheckning
39240473be
100 ändrade filer med 482 tillägg och 40158 borttagningar
  1. 0 1
      TEAMModelOS.Model.Analysis/README.md
  2. 0 12
      TEAMModelOS.Model.Analysis/TEAMModelOS.Model.Analysis.csproj
  3. 0 1
      TEAMModelOS.Model.Common/README.md
  4. 0 12
      TEAMModelOS.Model.Common/TEAMModelOS.Model.Common.csproj
  5. 0 1
      TEAMModelOS.Model.Syllabus/README.md
  6. 1 0
      TEAMModelOS.Model/README.md
  7. 0 0
      TEAMModelOS.Model/Syllabus/Dtos/SyllabusNode.cs
  8. 0 0
      TEAMModelOS.Model/Syllabus/Models/KnowledgePoint.cs
  9. 0 0
      TEAMModelOS.Model/Syllabus/Models/Syllabus.cs
  10. 0 0
      TEAMModelOS.Model/Syllabus/Models/SyllabusResource.cs
  11. 0 0
      TEAMModelOS.Model/Syllabus/Models/TeachingResource.cs
  12. 0 0
      TEAMModelOS.Model/Syllabus/Models/Textbook.cs
  13. 6 2
      TEAMModelOS.Model.Syllabus/TEAMModelOS.Model.Syllabus.csproj
  14. 0 1
      TEAMModelOS.Service.Analysis/README.md
  15. 0 12
      TEAMModelOS.Service.Analysis/TEAMModelOS.Service.Analysis.csproj
  16. 0 1
      TEAMModelOS.Service.Common/README.md
  17. 0 11
      TEAMModelOS.Service.Common/TEAMModelOS.Service.Common.csproj
  18. 0 1
      TEAMModelOS.Service.Syllabus/README.md
  19. 0 12
      TEAMModelOS.Service.Syllabus/TEAMModelOS.Service.Syllabus.csproj
  20. 0 0
      TEAMModelOS.Service/Common/Interfaces/IBusinessService.cs
  21. 0 0
      TEAMModelOS.Service/Interfaces/ISyllabusService.cs
  22. 1 0
      TEAMModelOS.Service/README.md
  23. 1 1
      TEAMModelOS.Service.Syllabus/Implements/SyllabusService.cs
  24. 15 0
      TEAMModelOS.Service/TEAMModelOS.Service.csproj
  25. 0 34
      TEAMModelOS.Starter.CloudServer/Controllers/AnalysisControllers/ClassController.cs
  26. 0 42
      TEAMModelOS.Starter.CloudServer/Controllers/AnalysisControllers/FileTool.cs
  27. 0 29
      TEAMModelOS.Starter.CloudServer/Controllers/HomeController.cs
  28. 0 20
      TEAMModelOS.Starter.CloudServer/Controllers/OssController.cs
  29. 0 19
      TEAMModelOS.Starter.CloudServer/Controllers/Syllabus/SyllabusController.cs
  30. BIN
      TEAMModelOS.Starter.CloudServer/JsonFiled/json.json
  31. 0 11
      TEAMModelOS.Starter.CloudServer/Models/ErrorViewModel.cs
  32. 0 25
      TEAMModelOS.Starter.CloudServer/Program.cs
  33. 0 27
      TEAMModelOS.Starter.CloudServer/Properties/launchSettings.json
  34. 0 97
      TEAMModelOS.Starter.CloudServer/Startup.cs
  35. 0 22
      TEAMModelOS.Starter.CloudServer/TEAMModelOS.Starter.CloudServer.csproj
  36. 0 8
      TEAMModelOS.Starter.CloudServer/Views/Home/Index.cshtml
  37. 0 6
      TEAMModelOS.Starter.CloudServer/Views/Home/Privacy.cshtml
  38. 0 25
      TEAMModelOS.Starter.CloudServer/Views/Shared/Error.cshtml
  39. 0 25
      TEAMModelOS.Starter.CloudServer/Views/Shared/_CookieConsentPartial.cshtml
  40. 0 77
      TEAMModelOS.Starter.CloudServer/Views/Shared/_Layout.cshtml
  41. 0 18
      TEAMModelOS.Starter.CloudServer/Views/Shared/_ValidationScriptsPartial.cshtml
  42. 0 3
      TEAMModelOS.Starter.CloudServer/Views/_ViewImports.cshtml
  43. 0 3
      TEAMModelOS.Starter.CloudServer/Views/_ViewStart.cshtml
  44. 0 183
      TEAMModelOS.Starter.CloudServer/appsettings.Development.json
  45. 0 8
      TEAMModelOS.Starter.CloudServer/appsettings.json
  46. 0 56
      TEAMModelOS.Starter.CloudServer/wwwroot/css/site.css
  47. BIN
      TEAMModelOS.Starter.CloudServer/wwwroot/favicon.ico
  48. 0 4
      TEAMModelOS.Starter.CloudServer/wwwroot/js/site.js
  49. 0 22
      TEAMModelOS.Starter.CloudServer/wwwroot/lib/bootstrap/LICENSE
  50. 0 3719
      TEAMModelOS.Starter.CloudServer/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css
  51. 0 1
      TEAMModelOS.Starter.CloudServer/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css.map
  52. 0 7
      TEAMModelOS.Starter.CloudServer/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css
  53. 0 1
      TEAMModelOS.Starter.CloudServer/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css.map
  54. 0 331
      TEAMModelOS.Starter.CloudServer/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css
  55. 0 1
      TEAMModelOS.Starter.CloudServer/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css.map
  56. 0 8
      TEAMModelOS.Starter.CloudServer/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css
  57. 0 1
      TEAMModelOS.Starter.CloudServer/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css.map
  58. 0 10039
      TEAMModelOS.Starter.CloudServer/wwwroot/lib/bootstrap/dist/css/bootstrap.css
  59. 0 1
      TEAMModelOS.Starter.CloudServer/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map
  60. 0 7
      TEAMModelOS.Starter.CloudServer/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css
  61. 0 1
      TEAMModelOS.Starter.CloudServer/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map
  62. 0 7013
      TEAMModelOS.Starter.CloudServer/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js
  63. 0 1
      TEAMModelOS.Starter.CloudServer/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map
  64. 0 7
      TEAMModelOS.Starter.CloudServer/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js
  65. 0 1
      TEAMModelOS.Starter.CloudServer/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map
  66. 0 4435
      TEAMModelOS.Starter.CloudServer/wwwroot/lib/bootstrap/dist/js/bootstrap.js
  67. 0 1
      TEAMModelOS.Starter.CloudServer/wwwroot/lib/bootstrap/dist/js/bootstrap.js.map
  68. 0 7
      TEAMModelOS.Starter.CloudServer/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js
  69. 0 1
      TEAMModelOS.Starter.CloudServer/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js.map
  70. 0 12
      TEAMModelOS.Starter.CloudServer/wwwroot/lib/jquery-validation-unobtrusive/LICENSE.txt
  71. 0 432
      TEAMModelOS.Starter.CloudServer/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js
  72. 0 5
      TEAMModelOS.Starter.CloudServer/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js
  73. 0 22
      TEAMModelOS.Starter.CloudServer/wwwroot/lib/jquery-validation/LICENSE.md
  74. 0 1158
      TEAMModelOS.Starter.CloudServer/wwwroot/lib/jquery-validation/dist/additional-methods.js
  75. 0 4
      TEAMModelOS.Starter.CloudServer/wwwroot/lib/jquery-validation/dist/additional-methods.min.js
  76. 0 1601
      TEAMModelOS.Starter.CloudServer/wwwroot/lib/jquery-validation/dist/jquery.validate.js
  77. 0 4
      TEAMModelOS.Starter.CloudServer/wwwroot/lib/jquery-validation/dist/jquery.validate.min.js
  78. 0 36
      TEAMModelOS.Starter.CloudServer/wwwroot/lib/jquery/LICENSE.txt
  79. 0 10364
      TEAMModelOS.Starter.CloudServer/wwwroot/lib/jquery/dist/jquery.js
  80. 0 2
      TEAMModelOS.Starter.CloudServer/wwwroot/lib/jquery/dist/jquery.min.js
  81. 0 1
      TEAMModelOS.Starter.CloudServer/wwwroot/lib/jquery/dist/jquery.min.map
  82. 2 30
      TEAMModelOS.sln
  83. 24 0
      TEAMModelOS/.babelrc
  84. 14 0
      TEAMModelOS/.editorconfig
  85. 23 0
      TEAMModelOS/.eslintrc.js
  86. 35 0
      TEAMModelOS/.gitattributes
  87. 253 0
      TEAMModelOS/.gitignore
  88. 2 2
      TEAMModelOS/Controllers/AnalysisControllers/ClassController.cs
  89. 2 2
      TEAMModelOS/Controllers/OssController.cs
  90. 2 2
      TEAMModelOS/Controllers/Syllabus/SyllabusController.cs
  91. 46 0
      TEAMModelOS/Controllers/ValuesController.cs
  92. 21 0
      TEAMModelOS/Dockerfile
  93. 0 0
      TEAMModelOS/README.md
  94. 1 1
      TEAMModelOS/Startup.cs
  95. 27 8
      TEAMModelOS/TEAMModelOS.csproj
  96. 6 7
      TEAMModelOS/Views/Home/Index.cshtml
  97. 0 6
      TEAMModelOS/Views/Home/Privacy.cshtml
  98. 0 19
      TEAMModelOS/Views/Shared/Error.cshtml
  99. 0 25
      TEAMModelOS/Views/Shared/_CookieConsentPartial.cshtml
  100. 0 0
      TEAMModelOS/Views/Shared/_Layout.cshtml

+ 0 - 1
TEAMModelOS.Model.Analysis/README.md

@@ -1 +0,0 @@
-ر�اى�ضخ�ؤ�ذح

+ 0 - 12
TEAMModelOS.Model.Analysis/TEAMModelOS.Model.Analysis.csproj

@@ -1,12 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk">
-
-  <PropertyGroup>
-    <TargetFramework>netcoreapp2.2</TargetFramework>
-  </PropertyGroup>
-
-  <ItemGroup>
-    <Folder Include="Models\" />
-    <Folder Include="Dtos\" />
-  </ItemGroup>
-
-</Project>

+ 0 - 1
TEAMModelOS.Model.Common/README.md

@@ -1 +0,0 @@
-ヘィモテメオホ�」ミヘ

+ 0 - 12
TEAMModelOS.Model.Common/TEAMModelOS.Model.Common.csproj

@@ -1,12 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk">
-
-  <PropertyGroup>
-    <TargetFramework>netcoreapp2.2</TargetFramework>
-  </PropertyGroup>
-
-  <ItemGroup>
-    <Folder Include="Dtos\" />
-    <Folder Include="Models\" />
-  </ItemGroup>
-
-</Project>

+ 0 - 1
TEAMModelOS.Model.Syllabus/README.md

@@ -1 +0,0 @@
-スフムァエ�ルト」ミヘ

+ 1 - 0
TEAMModelOS.Model/README.md

@@ -0,0 +1 @@
+教学大纲模型

TEAMModelOS.Model.Syllabus/Dtos/SyllabusNode.cs → TEAMModelOS.Model/Syllabus/Dtos/SyllabusNode.cs


TEAMModelOS.Model.Syllabus/Models/KnowledgePoint.cs → TEAMModelOS.Model/Syllabus/Models/KnowledgePoint.cs


TEAMModelOS.Model.Syllabus/Models/Syllabus.cs → TEAMModelOS.Model/Syllabus/Models/Syllabus.cs


TEAMModelOS.Model.Syllabus/Models/SyllabusResource.cs → TEAMModelOS.Model/Syllabus/Models/SyllabusResource.cs


TEAMModelOS.Model.Syllabus/Models/TeachingResource.cs → TEAMModelOS.Model/Syllabus/Models/TeachingResource.cs


TEAMModelOS.Model.Syllabus/Models/Textbook.cs → TEAMModelOS.Model/Syllabus/Models/Textbook.cs


+ 6 - 2
TEAMModelOS.Model.Syllabus/TEAMModelOS.Model.Syllabus.csproj

@@ -1,11 +1,15 @@
-<Project Sdk="Microsoft.NET.Sdk">
+<Project Sdk="Microsoft.NET.Sdk">
 
   <PropertyGroup>
     <TargetFramework>netcoreapp2.2</TargetFramework>
   </PropertyGroup>
 
+  <ItemGroup>
+    <Folder Include="Analysis\Dtos\" />
+    <Folder Include="Analysis\Models\" />
+    <Folder Include="Common\" />
+  </ItemGroup>
   <ItemGroup>
     <PackageReference Include="WindowsAzure.Storage" Version="9.3.3" />
   </ItemGroup>
-
 </Project>

+ 0 - 1
TEAMModelOS.Service.Analysis/README.md

@@ -1 +0,0 @@
-ر�اى�ضخ�ز�خّ

+ 0 - 12
TEAMModelOS.Service.Analysis/TEAMModelOS.Service.Analysis.csproj

@@ -1,12 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk">
-
-  <PropertyGroup>
-    <TargetFramework>netcoreapp2.2</TargetFramework>
-  </PropertyGroup>
-
-  <ItemGroup>
-    <Folder Include="Interfaces\" />
-    <Folder Include="Implements\" />
-  </ItemGroup>
-
-</Project>

+ 0 - 1
TEAMModelOS.Service.Common/README.md

@@ -1 +0,0 @@

+ 0 - 11
TEAMModelOS.Service.Common/TEAMModelOS.Service.Common.csproj

@@ -1,11 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk">
-
-  <PropertyGroup>
-    <TargetFramework>netcoreapp2.2</TargetFramework>
-  </PropertyGroup>
-
-  <ItemGroup>
-    <Folder Include="Implements\" />
-  </ItemGroup>
-
-</Project>

+ 0 - 1
TEAMModelOS.Service.Syllabus/README.md

@@ -1 +0,0 @@
-ѧҵ

+ 0 - 12
TEAMModelOS.Service.Syllabus/TEAMModelOS.Service.Syllabus.csproj

@@ -1,12 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk">
-
-  <PropertyGroup>
-    <TargetFramework>netcoreapp2.2</TargetFramework>
-  </PropertyGroup>
-
-  <ItemGroup>
-    <ProjectReference Include="..\TEAMModelOS.Model.Syllabus\TEAMModelOS.Model.Syllabus.csproj" />
-    <ProjectReference Include="..\TEAMModelOS.Service.Common\TEAMModelOS.Service.Common.csproj" />
-  </ItemGroup>
-
-</Project>

TEAMModelOS.Service.Common/Interfaces/IBusinessService.cs → TEAMModelOS.Service/Common/Interfaces/IBusinessService.cs


TEAMModelOS.Service.Syllabus/Interfaces/ISyllabusService.cs → TEAMModelOS.Service/Interfaces/ISyllabusService.cs


+ 1 - 0
TEAMModelOS.Service/README.md

@@ -0,0 +1 @@
+学情分析业务

+ 1 - 1
TEAMModelOS.Service.Syllabus/Implements/SyllabusService.cs

@@ -2,7 +2,7 @@
 using System.Collections.Generic;
 using System.Text;
 
-namespace TEAMModelOS.Service.Syllabus.Implements
+namespace TEAMModelOS.Service.Syllabus
 {
     public class SyllabusService
     {

+ 15 - 0
TEAMModelOS.Service/TEAMModelOS.Service.csproj

@@ -0,0 +1,15 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>netcoreapp2.2</TargetFramework>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Folder Include="Analysis\" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="..\TEAMModelOS.Model\TEAMModelOS.Model.csproj" />
+  </ItemGroup>
+
+</Project>

+ 0 - 34
TEAMModelOS.Starter.CloudServer/Controllers/AnalysisControllers/ClassController.cs

@@ -1,34 +0,0 @@
-using Microsoft.AspNetCore.Hosting;
-using Microsoft.AspNetCore.Mvc;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading.Tasks;
-
-using TEAMModelOS.Helper.Common.FileHelper;
-using TEAMModelOS.SDK.Extension.DataResult.JsonRpcResponse;
-
-namespace TEAMModelOS.Starter.CloudServer.Controllers.AnalysisControllers
-{
-    [Route("api/[controller]")]
-    [ApiController]
-    public class ClassController: Controller
-    {
-        IHostingEnvironment _hostingEnvironment;
-
-        public ClassController(IHostingEnvironment hostingEnvironment)
-        {
-            _hostingEnvironment = hostingEnvironment;
-        }
-        [HttpGet("getClass")]
-        public BaseJosnRPCResponse getClass(string identity)
-        {
-            string contentRootPath = _hostingEnvironment.ContentRootPath;
-            identity = "json";
-            JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
-            string data = FileTool.getJson(contentRootPath,identity);
-            builder.Data(data);
-            return builder.build();
-        }
-    }
-}

+ 0 - 42
TEAMModelOS.Starter.CloudServer/Controllers/AnalysisControllers/FileTool.cs

@@ -1,42 +0,0 @@
-using Microsoft.AspNetCore.Hosting;
-using Microsoft.Extensions.Hosting;
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Text;
-
-namespace TEAMModelOS.Helper.Common.FileHelper
-{
-    public static class FileTool
-    {
-        
-
-        public static string getJson(string contentRootPath, string name)
-        {
-            //string webRootPath = _hostingEnvironment.WebRootPath;
-            
-            try
-            {
-                String path = contentRootPath + "/JsonFiled/" + name + ".json";
-                //获取正在占用的文件
-                FileStream fs = new FileStream(path, System.IO.FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
-                StreamReader sr = new StreamReader(fs, System.Text.Encoding.ASCII);
-                String line;
-                StringBuilder builder = new StringBuilder();
-                while ((line = sr.ReadLine()) != null)
-                {
-                    builder.Append(line.ToString());
-                }
-
-                sr.Close();
-                string log = builder.ToString();
-                return log;
-            }
-            catch (Exception e)
-            {
-                var s = e.Message;
-                return s;
-            }
-        }
-    }
-}

+ 0 - 29
TEAMModelOS.Starter.CloudServer/Controllers/HomeController.cs

@@ -1,29 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.Linq;
-using System.Threading.Tasks;
-using Microsoft.AspNetCore.Mvc;
-using TEAMModelOS.Starter.CloudServer.Models;
-
-namespace TEAMModelOS.Starter.CloudServer.Controllers
-{
-    public class HomeController : Controller
-    {
-        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 });
-        }
-    }
-}

+ 0 - 20
TEAMModelOS.Starter.CloudServer/Controllers/OssController.cs

@@ -1,20 +0,0 @@
-using Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Mvc;
-using System.Linq;
-
-namespace TEAMModelOS.Starter.CloudServer.Controllers
-{
-
-    [Route("api/[controller]")]
-    [ApiController]
-    public class OssController : Controller
-    {
-        [HttpPost("Upload")]
-        //[RequestSizeLimit(102_400_000_00)] //最大10000m左右
-        public string[] BlobSaveFile([FromForm] IFormFile[] files)
-        {
-            //throw new BizException("1");
-            return files.Select(f => f.FileName).ToArray();
-        }
-    }
-}

+ 0 - 19
TEAMModelOS.Starter.CloudServer/Controllers/Syllabus/SyllabusController.cs

@@ -1,19 +0,0 @@
-using Microsoft.AspNetCore.Mvc;
-using System.Threading.Tasks;
-using TEAMModelOS.Model.Syllabus.Dtos;
-using TEAMModelOS.SDK.Extension.DataResult.JsonRpcRequest;
-
-namespace TEAMModelOS.Starter.CloudServer.Controllers.Syllabus
-{
-    [Route("api/[controller]")]
-    [ApiController]
-    public class SyllabusController: Controller
-    {
-        [HttpPost("SaveOrUpdate")]
-        //[RequestSizeLimit(102_400_000_00)] //最大10000m左右
-        public Task<BaseJosnRPCRequest> SaveOrUpdate(JosnRPCRequest<SyllabusNode> request )
-        {
-            return null; 
-        }
-    }
-}

BIN
TEAMModelOS.Starter.CloudServer/JsonFiled/json.json


+ 0 - 11
TEAMModelOS.Starter.CloudServer/Models/ErrorViewModel.cs

@@ -1,11 +0,0 @@
-using System;
-
-namespace TEAMModelOS.Starter.CloudServer.Models
-{
-    public class ErrorViewModel
-    {
-        public string RequestId { get; set; }
-
-        public bool ShowRequestId => !string.IsNullOrEmpty(RequestId);
-    }
-}

+ 0 - 25
TEAMModelOS.Starter.CloudServer/Program.cs

@@ -1,25 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Microsoft.AspNetCore;
-using Microsoft.AspNetCore.Hosting;
-using Microsoft.Extensions.Configuration;
-using Microsoft.Extensions.Logging;
-
-namespace TEAMModelOS.Starter.CloudServer
-{
-    public class Program
-    {
-        public static void Main(string[] args)
-        {
-            CreateWebHostBuilder(args).Build().Run();
-        }
-
-        public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
-            WebHost.CreateDefaultBuilder(args)
-                .UseStartup<Startup>();
-    }
-}

+ 0 - 27
TEAMModelOS.Starter.CloudServer/Properties/launchSettings.json

@@ -1,27 +0,0 @@
-{
-  "iisSettings": {
-    "windowsAuthentication": false, 
-    "anonymousAuthentication": true, 
-    "iisExpress": {
-      "applicationUrl": "http://localhost:56015",
-      "sslPort": 44324
-    }
-  },
-  "profiles": {
-    "IIS Express": {
-      "commandName": "IISExpress",
-      "launchBrowser": true,
-      "environmentVariables": {
-        "ASPNETCORE_ENVIRONMENT": "Development"
-      }
-    },
-    "TEAMModelOS.Starter.CloudServer": {
-      "commandName": "Project",
-      "launchBrowser": true,
-      "applicationUrl": "https://localhost:5001;http://localhost:5000",
-      "environmentVariables": {
-        "ASPNETCORE_ENVIRONMENT": "Development"
-      }
-    }
-  }
-}

+ 0 - 97
TEAMModelOS.Starter.CloudServer/Startup.cs

@@ -1,97 +0,0 @@
-using System.Linq;
-using Microsoft.AspNetCore.Builder;
-using Microsoft.AspNetCore.Hosting;
-using Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Http.Features;
-using Microsoft.AspNetCore.Mvc;
-using Microsoft.Extensions.Configuration;
-using Microsoft.Extensions.DependencyInjection;
-using TEAMModelOS.SDK.Context.Configuration;
-using TEAMModelOS.SDK.Context.Filter;
-using TEAMModelOS.SDK.Extension.JwtAuth;
-using TEAMModelOS.SDK.Extension.JwtAuth.Filters;
-using TEAMModelOS.SDK.Module.AzureBlob.Configuration;
-using TEAMModelOS.SDK.Module.AzureCosmosDB.Configuration;
-using TEAMModelOS.SDK.Module.AzureTable.Configuration;
-using TEAMModelOS.Service.Common.Interfaces;
-
-namespace TEAMModelOS.Starter.CloudServer
-{
-    public class Startup
-    {
-        public Startup(IConfiguration configuration, IHostingEnvironment env)
-        {
-            Configuration = configuration;
-            var builder = new ConfigurationBuilder()
-               .SetBasePath(env.ContentRootPath)
-               .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
-               .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true);//增加环境配置文件,新建项目默认有
-            this.Configuration = builder.Build();
-            BaseConfigModel.SetBaseConfig(Configuration, env.ContentRootPath, env.WebRootPath);
-        }
-
-        public IConfiguration Configuration { get; }
-
-        // This method gets called by the runtime. Use this method to add services to the container.
-        public void ConfigureServices(IServiceCollection services)
-        {
-            //services.Configure<CookiePolicyOptions>(options =>
-            //{
-            //    options.CheckConsentNeeded = context => true;
-            //    options.MinimumSameSitePolicy = SameSiteMode.None;
-            //});
-            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
-            //上传文件最大处理
-            services.Configure<FormOptions>(x =>
-            {
-                x.ValueLengthLimit = int.MaxValue;
-                x.MultipartBodyLengthLimit = long.MaxValue; // In case of multipart
-                x.MultipartHeadersLengthLimit = int.MaxValue;
-            });
-            //Table配置
-            services.AddAzureTableStorage().AddConnection(Configuration.GetSection("Azure:Table").Get<AzureTableOptions>());
-            //使用Blob配置
-            services.AddAzureBlobStorage().AddConnection(Configuration.GetSection("Azure:Blob").Get<AzureBlobOptions>());
-            //使用CosmosDB
-            services.AddAzureCosmosDB().AddCosmosDBConnection(Configuration.GetSection("Azure:CosmosDB").Get<AzureCosmosDBOptions>());
-            //全局扫描基于IBusinessService接口的实现类
-            services.Scan(scan => scan.FromApplicationDependencies()
-               .AddClasses(classes => classes.AssignableTo<IBusinessService>())
-                   .AsImplementedInterfaces()
-                   .WithSingletonLifetime());
-            //引入Jwt配置
-            services.JwtAuth(Configuration.GetSection("JwtSetting"));
-            //HttpContextAccessor,并用来访问HttpContext。
-            services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
-        }
-
-        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
-        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
-        {
-            if (env.IsDevelopment())
-            {
-                app.UseDeveloperExceptionPage();
-            }
-            else
-            {
-                app.UseExceptionHandler("/Home/Error");
-                // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
-                app.UseHsts();
-            }
-            // 如果你想使用官方认证,必须在上边ConfigureService 中,配置JWT的认证服务 (.AddAuthentication 和 .AddJwtBearer 二者缺一不可)
-            app.UseAuthentication();
-            app.UseMiddleware<JwtAuthorizationFilter>();
-            app.UseMiddleware<HttpGlobalExceptionInvoke>();
-            app.UseHttpsRedirection();
-            app.UseStaticFiles();
-            //app.UseCookiePolicy();
-
-            app.UseMvc(routes =>
-            {
-                routes.MapRoute(
-                    name: "default",
-                    template: "{controller=Home}/{action=Index}/{id?}");
-            });
-        }
-    }
-}

+ 0 - 22
TEAMModelOS.Starter.CloudServer/TEAMModelOS.Starter.CloudServer.csproj

@@ -1,22 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk.Web">
-
-  <PropertyGroup>
-    <TargetFramework>netcoreapp2.2</TargetFramework>
-    <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
-  </PropertyGroup>
-
-
-  <ItemGroup>
-    <PackageReference Include="Microsoft.AspNetCore.App" />
-    <PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.2.0" PrivateAssets="All" />
-    <PackageReference Include="Scrutor" Version="3.0.2" />
-  </ItemGroup>
-
-
-  <ItemGroup>
-    <ProjectReference Include="..\TEAMModelOS.Model.Syllabus\TEAMModelOS.Model.Syllabus.csproj" />
-    <ProjectReference Include="..\TEAMModelOS.SDK\TEAMModelOS.SDK.csproj" />
-    <ProjectReference Include="..\TEAMModelOS.Service.Common\TEAMModelOS.Service.Common.csproj" />
-  </ItemGroup>
-
-</Project>

+ 0 - 8
TEAMModelOS.Starter.CloudServer/Views/Home/Index.cshtml

@@ -1,8 +0,0 @@
-@{
-    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>

+ 0 - 6
TEAMModelOS.Starter.CloudServer/Views/Home/Privacy.cshtml

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

+ 0 - 25
TEAMModelOS.Starter.CloudServer/Views/Shared/Error.cshtml

@@ -1,25 +0,0 @@
-@model ErrorViewModel
-@{
-    ViewData["Title"] = "Error";
-}
-
-<h1 class="text-danger">Error.</h1>
-<h2 class="text-danger">An error occurred while processing your request.</h2>
-
-@if (Model.ShowRequestId)
-{
-    <p>
-        <strong>Request ID:</strong> <code>@Model.RequestId</code>
-    </p>
-}
-
-<h3>Development Mode</h3>
-<p>
-    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>
-    It can result in displaying sensitive information from exceptions to end users.
-    For local debugging, enable the <strong>Development</strong> environment by setting the <strong>ASPNETCORE_ENVIRONMENT</strong> environment variable to <strong>Development</strong>
-    and restarting the app.
-</p>

+ 0 - 25
TEAMModelOS.Starter.CloudServer/Views/Shared/_CookieConsentPartial.cshtml

@@ -1,25 +0,0 @@
-@using Microsoft.AspNetCore.Http.Features
-
-@{
-    var consentFeature = Context.Features.Get<ITrackingConsentFeature>();
-    var showBanner = !consentFeature?.CanTrack ?? false;
-    var cookieString = consentFeature?.CreateConsentCookie();
-}
-
-@if (showBanner)
-{
-    <div id="cookieConsent" class="alert alert-info alert-dismissible fade show" role="alert">
-        Use this space to summarize your privacy and cookie use policy. <a asp-area="" asp-controller="Home" asp-action="Privacy">Learn More</a>.
-        <button type="button" class="accept-policy close" data-dismiss="alert" aria-label="Close" data-cookie-string="@cookieString">
-            <span aria-hidden="true">Accept</span>
-        </button>
-    </div>
-    <script>
-        (function () {
-            var button = document.querySelector("#cookieConsent button[data-cookie-string]");
-            button.addEventListener("click", function (event) {
-                document.cookie = button.dataset.cookieString;
-            }, false);
-        })();
-    </script>
-}

+ 0 - 77
TEAMModelOS.Starter.CloudServer/Views/Shared/_Layout.cshtml

@@ -1,77 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta charset="utf-8" />
-    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <title>@ViewData["Title"] - TEAMModelOS.Starter.CloudServer</title>
-
-    <environment include="Development">
-        <link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.css" />
-    </environment>
-    <environment exclude="Development">
-        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"
-              asp-fallback-href="~/lib/bootstrap/dist/css/bootstrap.min.css"
-              asp-fallback-test-class="sr-only" asp-fallback-test-property="position" asp-fallback-test-value="absolute"
-              crossorigin="anonymous"
-              integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T"/>
-    </environment>
-    <link rel="stylesheet" href="~/css/site.css" />
-</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-controller="Home" asp-action="Index">TEAMModelOS.Starter.CloudServer</a>
-                <button class="navbar-toggler" type="button" data-toggle="collapse" data-target=".navbar-collapse" aria-controls="navbarSupportedContent"
-                        aria-expanded="false" aria-label="Toggle navigation">
-                    <span class="navbar-toggler-icon"></span>
-                </button>
-                <div class="navbar-collapse collapse d-sm-inline-flex flex-sm-row-reverse">
-                    <ul class="navbar-nav flex-grow-1">
-                        <li class="nav-item">
-                            <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-controller="Home" asp-action="Privacy">Privacy</a>
-                        </li>
-                    </ul>
-                </div>
-            </div>
-        </nav>
-    </header>
-    <div class="container">
-        <partial name="_CookieConsentPartial" />
-        <main role="main" class="pb-3">
-            @RenderBody()
-        </main>
-    </div>
-
-    <footer class="border-top footer text-muted">
-        <div class="container">
-            &copy; 2019 - TEAMModelOS.Starter.CloudServer - <a asp-area="" asp-controller="Home" asp-action="Privacy">Privacy</a>
-        </div>
-    </footer>
-
-    <environment include="Development">
-        <script src="~/lib/jquery/dist/jquery.js"></script>
-        <script src="~/lib/bootstrap/dist/js/bootstrap.bundle.js"></script>
-    </environment>
-    <environment exclude="Development">
-        <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"
-                asp-fallback-src="~/lib/jquery/dist/jquery.min.js"
-                asp-fallback-test="window.jQuery"
-                crossorigin="anonymous"
-                integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=">
-        </script>
-        <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.bundle.min.js"
-                asp-fallback-src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"
-                asp-fallback-test="window.jQuery && window.jQuery.fn && window.jQuery.fn.modal"
-                crossorigin="anonymous"
-                integrity="sha384-xrRywqdh3PHs8keKZN+8zzc5TX0GRTLCcmivcbNJWm2rs5C8PRhcEn3czEjhAO9o">
-        </script>
-    </environment>
-    <script src="~/js/site.js" asp-append-version="true"></script>
-
-    @RenderSection("Scripts", required: false)
-</body>
-</html>

+ 0 - 18
TEAMModelOS.Starter.CloudServer/Views/Shared/_ValidationScriptsPartial.cshtml

@@ -1,18 +0,0 @@
-<environment include="Development">
-    <script src="~/lib/jquery-validation/dist/jquery.validate.js"></script>
-    <script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js"></script>
-</environment>
-<environment exclude="Development">
-    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.17.0/jquery.validate.min.js"
-            asp-fallback-src="~/lib/jquery-validation/dist/jquery.validate.min.js"
-            asp-fallback-test="window.jQuery && window.jQuery.validator"
-            crossorigin="anonymous"
-            integrity="sha256-F6h55Qw6sweK+t7SiOJX+2bpSAa3b/fnlrVCJvmEj1A=">
-    </script>
-    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validation-unobtrusive/3.2.11/jquery.validate.unobtrusive.min.js"
-            asp-fallback-src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js"
-            asp-fallback-test="window.jQuery && window.jQuery.validator && window.jQuery.validator.unobtrusive"
-            crossorigin="anonymous"
-            integrity="sha256-9GycpJnliUjJDVDqP0UEu/bsm9U+3dnQUH8+3W10vkY=">
-    </script>
-</environment>

+ 0 - 3
TEAMModelOS.Starter.CloudServer/Views/_ViewImports.cshtml

@@ -1,3 +0,0 @@
-@using TEAMModelOS.Starter.CloudServer
-@using TEAMModelOS.Starter.CloudServer.Models
-@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers

+ 0 - 3
TEAMModelOS.Starter.CloudServer/Views/_ViewStart.cshtml

@@ -1,3 +0,0 @@
-@{
-    Layout = "_Layout";
-}

+ 0 - 183
TEAMModelOS.Starter.CloudServer/appsettings.Development.json

@@ -1,183 +0,0 @@
-{
-  "Logging": {
-    "LogLevel": {
-      "Default": "Debug",
-      "System": "Information",
-      "Microsoft": "Information"
-    }
-  },
-  "AllowedHosts": "*",
-  "Azure": {
-    "Table": {
-      "ConnectionString": "AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;DefaultEndpointsProtocol=http;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;QueueEndpoint=http://127.0.0.1:10001/devstoreaccount1;TableEndpoint=http://127.0.0.1:10002/devstoreaccount1;",
-      "AzureTableDialect": ""
-    },
-    "Blob": {
-      "ConnectionString": "https://teammodelstorage.blob.core.chinacloudapi.cn/teammodelcontest?st=2019-03-11T08%3A20%3A19Z&se=2040-03-12T08%3A20%3A00Z&sp=rwdl&sv=2018-03-28&sr=c&sig=mZ%2BnzDWpcw0Vn2AQRCzo8I9%2Bh%2FnbujjWo8ObOwHwZjg%3D",
-      "Container": "teammodelcontest",
-      "AzureTableDialect": ""
-    },
-    "CosmosDB": {
-      "ConnectionString": "https://localhost:8081",
-      "ConnectionKey": "C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==",
-      "Database": "Contest",
-      "AzureTableDialect": ""
-    }
-  },
-  "HaBookAuth": {
-    "AccountUrl": "https://api.habookaclass.biz/account",
-    "ServiceUrl": "https://api.habookaclass.biz/service",
-    "UserInfoKey": "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJpZCIsImF1ZCI6ImNoZW5nZHVJZCIsImlzcyI6Imh0dHBzOi8vYXBpLmhhYm9va2FjbGFzcy5iaXoiLCJpYXQiOjE1MzYwNTIzNjcsIm5iZiI6MTUzNjA1MjM2NywiZXhwIjoxNTY3NTU1MjAwLCJpZHAiOiJIYWJvb2sgQ29yZVNlcnZpY2UifQ.RGKDVtwFEp4OBctlHOuF6yqyI21fTz4cinCxjFCxkSQ",
-    "SubmissionKey": "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJTdWJtaXNzaW9uIiwiYXVkIjoiY2hlbmdkdVN1Ym1pc3Npb24iLCJpc3MiOiJodHRwczovL2FwaS5oYWJvb2thY2xhc3MuYml6IiwiaWF0IjoxNTQwODgxMDUwLCJuYmYiOjE1NDA4ODEwNTAsImV4cCI6MTU2NzU1NTIwMCwiaWRwIjoiSGFib29rIENvcmVTZXJ2aWNlIn0.4SpRSfKwkbLWvsi87L5AjIVC5MZGMfon6SbjwNC0AfA",
-    "SchoolCodeKey": "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJzY2hvb2xDb2RlIiwiYXVkIjoiY2hlbmdkdVNjaG9vbENvZGUiLCJpc3MiOiJodHRwczovL2FwaS5oYWJvb2thY2xhc3MuYml6IiwiaWF0IjoxNTM2MDUyNDI3LCJuYmYiOjE1MzYwNTI0MjcsImV4cCI6MTU2NzU1NTIwMCwiaWRwIjoiSGFib29rIENvcmVTZXJ2aWNlIn0.8m5VH3Nz4N9EdMz8AexTOEuDVitcJZFKy9DfW_UQkSY",
-    "BindingIESKey": "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJpZCIsImF1ZCI6ImNoZW5nZHVJZCIsImlzcyI6Imh0dHBzOi8vYXBpLmhhYm9va2FjbGFzcy5iaXoiLCJpYXQiOjE1MzYwNTIzNjcsIm5iZiI6MTUzNjA1MjM2NywiZXhwIjoxNTY3NTU1MjAwLCJpZHAiOiJIYWJvb2sgQ29yZVNlcnZpY2UifQ.RGKDVtwFEp4OBctlHOuF6yqyI21fTz4cinCxjFCxkSQ",
-    "CreateTestSerialNumKey": "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJDcmVhdGVUZXN0U2VyaWFsIiwiYXVkIjoiY2hlbmdkdUNyZWF0ZVRlc3RTZXJpYWwiLCJpc3MiOiJodHRwczovL2FwaS5oYWJvb2thY2xhc3MuYml6IiwiaWF0IjoxNTM5NjgwMjUxLCJuYmYiOjE1Mzk2ODAyNTEsImV4cCI6MTU2NzU1NTIwMCwiaWRwIjoiSGFib29rIENvcmVTZXJ2aWNlIn0.K-4rqcJ8O2mFxIdSiSJTuvo_Nwb_NfZ1yjpXJFQjKM0",
-    "SmsKey": "Basic ZmYwMWM0YTJjODdmZmNkYTUyNjhmMDEwOmE0YTE5YTVjNTU2ZWVhZTNjZmZhNTI0Mg=="
-  },
-  "SmsSendCloud": {
-    "SmsUrl": "http://www.sendcloud.net/smsapi/send",
-    "SmsUser": "Chengdu",
-    "SmsKey": "XaHPbnPLd0NPTfnUCUD5cRlhY2nEEUCj"
-  },
-  "Language": [
-    {
-      "Name": "臺灣",
-      "CountryCode": "886",
-      "SmsLang": "CHT",
-      "Language": "zh-tw"
-    },
-    {
-      "Name": "香港",
-      "CountryCode": "852",
-      "SmsLang": "CHT",
-      "Language": "zh-hk"
-    },
-    {
-      "Name": "澳門",
-      "CountryCode": "853",
-      "SmsLang": "CHT",
-      "Language": "zh-mo"
-    },
-    {
-      "Name": "大陆",
-      "CountryCode": "86",
-      "SmsLang": "CHS",
-      "Language": "zh-ch"
-    },
-    {
-      "Name": "Other",
-      "CountryCode": "000",
-      "SmsLang": "EN",
-      "Language": "en"
-    }
-  ],
-  "JwtSetting": {
-    "SecurityKey": "JwtBearerSample_11231~#$%#%^2235",
-    "Issuer": "HaBook", //签发者
-    "Audience": "Habook.TeamModel.Contest",
-    "JwtClient": [
-      {
-        "Name": "WebApp",
-        "Exp": 86400
-      },
-      {
-        "Name": "Android",
-        "Exp": 60
-      },
-      {
-        "Name": "IOS",
-        "Exp": 60
-      },
-      {
-        "Exp": 60,
-        "Name": "WapApp"
-      },
-      {
-        "Name": "WeChat",
-        "Exp": 60
-      },
-      {
-        "Name": "MiniApp",
-        "Exp": 60
-      },
-      {
-        "Name": "RestApi",
-        "Exp": 60
-      },
-      {
-        "Name": "Other",
-        "Exp": 60
-      }
-    ]
-  },
-  "RoleUser": {
-    "Root": [
-      {
-        "name": "Power",
-        "phone": "886935180824"
-      },
-      {
-        "name": "黄贺彬",
-        "phone": "8615283771540"
-      },
-      {
-        "name": "李棋坤",
-        "phone": "8613096300695"
-      },
-      {
-        "name": "梁仁楷",
-        "phone": "8613263110175"
-      },
-      {
-        "name": "Jaelys",
-        "phone": "886988896630"
-      },
-      {
-        "name": "周胜",
-        "phone": "8617781294959"
-      },
-      {
-        "name": "李思淳",
-        "phone": "8615287300526"
-      },
-      {
-        "name": "田志杰",
-        "phone": "8618786723407"
-      }
-    ],
-    "Admin": [
-      {
-        "name": "陈权",
-        "phone": "8613880505117"
-      },
-      {
-        "name": "王彬琰",
-        "phone": "8613982151576"
-      },
-      {
-        "name": "刘彬",
-        "phone": "8618981903918"
-      },
-      {
-        "name": "黄贺彬",
-        "phone": "8615283771540"
-      },
-      {
-        "name": "李棋坤",
-        "phone": "8613096300695"
-      },
-      {
-        "name": "周胜",
-        "phone": "8617781294959"
-      },
-      {
-        "name": "李思淳",
-        "phone": "8615287300526"
-      },
-      {
-        "name": "田志杰",
-        "phone": "8618786723407"
-      }
-    ]
-  }
-}

+ 0 - 8
TEAMModelOS.Starter.CloudServer/appsettings.json

@@ -1,8 +0,0 @@
-{
-  "Logging": {
-    "LogLevel": {
-      "Default": "Warning"
-    }
-  },
-  "AllowedHosts": "*"
-}

+ 0 - 56
TEAMModelOS.Starter.CloudServer/wwwroot/css/site.css

@@ -1,56 +0,0 @@
-/* Please see documentation at https://docs.microsoft.com/aspnet/core/client-side/bundling-and-minification
-for details on configuring this project to bundle and minify static web assets. */
-
-a.navbar-brand {
-  white-space: normal;
-  text-align: center;
-  word-break: break-all;
-}
-
-/* Sticky footer styles
--------------------------------------------------- */
-html {
-  font-size: 14px;
-}
-@media (min-width: 768px) {
-  html {
-    font-size: 16px;
-  }
-}
-
-.border-top {
-  border-top: 1px solid #e5e5e5;
-}
-.border-bottom {
-  border-bottom: 1px solid #e5e5e5;
-}
-
-.box-shadow {
-  box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .05);
-}
-
-button.accept-policy {
-  font-size: 1rem;
-  line-height: inherit;
-}
-
-/* Sticky footer styles
--------------------------------------------------- */
-html {
-  position: relative;
-  min-height: 100%;
-}
-
-body {
-  /* Margin bottom by footer height */
-  margin-bottom: 60px;
-}
-.footer {
-  position: absolute;
-  bottom: 0;
-  width: 100%;
-  white-space: nowrap;
-  /* Set the fixed height of the footer here */
-  height: 60px;
-  line-height: 60px; /* Vertically center the text there */
-}

BIN
TEAMModelOS.Starter.CloudServer/wwwroot/favicon.ico


+ 0 - 4
TEAMModelOS.Starter.CloudServer/wwwroot/js/site.js

@@ -1,4 +0,0 @@
-// Please see documentation at https://docs.microsoft.com/aspnet/core/client-side/bundling-and-minification
-// for details on configuring this project to bundle and minify static web assets.
-
-// Write your JavaScript code.

+ 0 - 22
TEAMModelOS.Starter.CloudServer/wwwroot/lib/bootstrap/LICENSE

@@ -1,22 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2011-2018 Twitter, Inc.
-Copyright (c) 2011-2018 The Bootstrap Authors
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 3719
TEAMModelOS.Starter.CloudServer/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
TEAMModelOS.Starter.CloudServer/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.css.map


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 7
TEAMModelOS.Starter.CloudServer/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
TEAMModelOS.Starter.CloudServer/wwwroot/lib/bootstrap/dist/css/bootstrap-grid.min.css.map


+ 0 - 331
TEAMModelOS.Starter.CloudServer/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css

@@ -1,331 +0,0 @@
-/*!
- * Bootstrap Reboot v4.3.1 (https://getbootstrap.com/)
- * Copyright 2011-2019 The Bootstrap Authors
- * Copyright 2011-2019 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
- */
-*,
-*::before,
-*::after {
-  box-sizing: border-box;
-}
-
-html {
-  font-family: sans-serif;
-  line-height: 1.15;
-  -webkit-text-size-adjust: 100%;
-  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
-}
-
-article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {
-  display: block;
-}
-
-body {
-  margin: 0;
-  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
-  font-size: 1rem;
-  font-weight: 400;
-  line-height: 1.5;
-  color: #212529;
-  text-align: left;
-  background-color: #fff;
-}
-
-[tabindex="-1"]:focus {
-  outline: 0 !important;
-}
-
-hr {
-  box-sizing: content-box;
-  height: 0;
-  overflow: visible;
-}
-
-h1, h2, h3, h4, h5, h6 {
-  margin-top: 0;
-  margin-bottom: 0.5rem;
-}
-
-p {
-  margin-top: 0;
-  margin-bottom: 1rem;
-}
-
-abbr[title],
-abbr[data-original-title] {
-  text-decoration: underline;
-  -webkit-text-decoration: underline dotted;
-  text-decoration: underline dotted;
-  cursor: help;
-  border-bottom: 0;
-  -webkit-text-decoration-skip-ink: none;
-  text-decoration-skip-ink: none;
-}
-
-address {
-  margin-bottom: 1rem;
-  font-style: normal;
-  line-height: inherit;
-}
-
-ol,
-ul,
-dl {
-  margin-top: 0;
-  margin-bottom: 1rem;
-}
-
-ol ol,
-ul ul,
-ol ul,
-ul ol {
-  margin-bottom: 0;
-}
-
-dt {
-  font-weight: 700;
-}
-
-dd {
-  margin-bottom: .5rem;
-  margin-left: 0;
-}
-
-blockquote {
-  margin: 0 0 1rem;
-}
-
-b,
-strong {
-  font-weight: bolder;
-}
-
-small {
-  font-size: 80%;
-}
-
-sub,
-sup {
-  position: relative;
-  font-size: 75%;
-  line-height: 0;
-  vertical-align: baseline;
-}
-
-sub {
-  bottom: -.25em;
-}
-
-sup {
-  top: -.5em;
-}
-
-a {
-  color: #007bff;
-  text-decoration: none;
-  background-color: transparent;
-}
-
-a:hover {
-  color: #0056b3;
-  text-decoration: underline;
-}
-
-a:not([href]):not([tabindex]) {
-  color: inherit;
-  text-decoration: none;
-}
-
-a:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {
-  color: inherit;
-  text-decoration: none;
-}
-
-a:not([href]):not([tabindex]):focus {
-  outline: 0;
-}
-
-pre,
-code,
-kbd,
-samp {
-  font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
-  font-size: 1em;
-}
-
-pre {
-  margin-top: 0;
-  margin-bottom: 1rem;
-  overflow: auto;
-}
-
-figure {
-  margin: 0 0 1rem;
-}
-
-img {
-  vertical-align: middle;
-  border-style: none;
-}
-
-svg {
-  overflow: hidden;
-  vertical-align: middle;
-}
-
-table {
-  border-collapse: collapse;
-}
-
-caption {
-  padding-top: 0.75rem;
-  padding-bottom: 0.75rem;
-  color: #6c757d;
-  text-align: left;
-  caption-side: bottom;
-}
-
-th {
-  text-align: inherit;
-}
-
-label {
-  display: inline-block;
-  margin-bottom: 0.5rem;
-}
-
-button {
-  border-radius: 0;
-}
-
-button:focus {
-  outline: 1px dotted;
-  outline: 5px auto -webkit-focus-ring-color;
-}
-
-input,
-button,
-select,
-optgroup,
-textarea {
-  margin: 0;
-  font-family: inherit;
-  font-size: inherit;
-  line-height: inherit;
-}
-
-button,
-input {
-  overflow: visible;
-}
-
-button,
-select {
-  text-transform: none;
-}
-
-select {
-  word-wrap: normal;
-}
-
-button,
-[type="button"],
-[type="reset"],
-[type="submit"] {
-  -webkit-appearance: button;
-}
-
-button:not(:disabled),
-[type="button"]:not(:disabled),
-[type="reset"]:not(:disabled),
-[type="submit"]:not(:disabled) {
-  cursor: pointer;
-}
-
-button::-moz-focus-inner,
-[type="button"]::-moz-focus-inner,
-[type="reset"]::-moz-focus-inner,
-[type="submit"]::-moz-focus-inner {
-  padding: 0;
-  border-style: none;
-}
-
-input[type="radio"],
-input[type="checkbox"] {
-  box-sizing: border-box;
-  padding: 0;
-}
-
-input[type="date"],
-input[type="time"],
-input[type="datetime-local"],
-input[type="month"] {
-  -webkit-appearance: listbox;
-}
-
-textarea {
-  overflow: auto;
-  resize: vertical;
-}
-
-fieldset {
-  min-width: 0;
-  padding: 0;
-  margin: 0;
-  border: 0;
-}
-
-legend {
-  display: block;
-  width: 100%;
-  max-width: 100%;
-  padding: 0;
-  margin-bottom: .5rem;
-  font-size: 1.5rem;
-  line-height: inherit;
-  color: inherit;
-  white-space: normal;
-}
-
-progress {
-  vertical-align: baseline;
-}
-
-[type="number"]::-webkit-inner-spin-button,
-[type="number"]::-webkit-outer-spin-button {
-  height: auto;
-}
-
-[type="search"] {
-  outline-offset: -2px;
-  -webkit-appearance: none;
-}
-
-[type="search"]::-webkit-search-decoration {
-  -webkit-appearance: none;
-}
-
-::-webkit-file-upload-button {
-  font: inherit;
-  -webkit-appearance: button;
-}
-
-output {
-  display: inline-block;
-}
-
-summary {
-  display: list-item;
-  cursor: pointer;
-}
-
-template {
-  display: none;
-}
-
-[hidden] {
-  display: none !important;
-}
-/*# sourceMappingURL=bootstrap-reboot.css.map */

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
TEAMModelOS.Starter.CloudServer/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.css.map


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 8
TEAMModelOS.Starter.CloudServer/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
TEAMModelOS.Starter.CloudServer/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css.map


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 10039
TEAMModelOS.Starter.CloudServer/wwwroot/lib/bootstrap/dist/css/bootstrap.css


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
TEAMModelOS.Starter.CloudServer/wwwroot/lib/bootstrap/dist/css/bootstrap.css.map


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 7
TEAMModelOS.Starter.CloudServer/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
TEAMModelOS.Starter.CloudServer/wwwroot/lib/bootstrap/dist/css/bootstrap.min.css.map


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 7013
TEAMModelOS.Starter.CloudServer/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
TEAMModelOS.Starter.CloudServer/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 7
TEAMModelOS.Starter.CloudServer/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
TEAMModelOS.Starter.CloudServer/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 4435
TEAMModelOS.Starter.CloudServer/wwwroot/lib/bootstrap/dist/js/bootstrap.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
TEAMModelOS.Starter.CloudServer/wwwroot/lib/bootstrap/dist/js/bootstrap.js.map


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 7
TEAMModelOS.Starter.CloudServer/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
TEAMModelOS.Starter.CloudServer/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js.map


+ 0 - 12
TEAMModelOS.Starter.CloudServer/wwwroot/lib/jquery-validation-unobtrusive/LICENSE.txt

@@ -1,12 +0,0 @@
-Copyright (c) .NET Foundation. All rights reserved.
-
-Licensed under the Apache License, Version 2.0 (the "License"); you may not use
-these files except in compliance with the License. You may obtain a copy of the
-License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software distributed
-under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-CONDITIONS OF ANY KIND, either express or implied. See the License for the
-specific language governing permissions and limitations under the License.

+ 0 - 432
TEAMModelOS.Starter.CloudServer/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js

@@ -1,432 +0,0 @@
-// Unobtrusive validation support library for jQuery and jQuery Validate
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-// @version v3.2.11
-
-/*jslint white: true, browser: true, onevar: true, undef: true, nomen: true, eqeqeq: true, plusplus: true, bitwise: true, regexp: true, newcap: true, immed: true, strict: false */
-/*global document: false, jQuery: false */
-
-(function (factory) {
-    if (typeof define === 'function' && define.amd) {
-        // AMD. Register as an anonymous module.
-        define("jquery.validate.unobtrusive", ['jquery-validation'], factory);
-    } else if (typeof module === 'object' && module.exports) {
-        // CommonJS-like environments that support module.exports     
-        module.exports = factory(require('jquery-validation'));
-    } else {
-        // Browser global
-        jQuery.validator.unobtrusive = factory(jQuery);
-    }
-}(function ($) {
-    var $jQval = $.validator,
-        adapters,
-        data_validation = "unobtrusiveValidation";
-
-    function setValidationValues(options, ruleName, value) {
-        options.rules[ruleName] = value;
-        if (options.message) {
-            options.messages[ruleName] = options.message;
-        }
-    }
-
-    function splitAndTrim(value) {
-        return value.replace(/^\s+|\s+$/g, "").split(/\s*,\s*/g);
-    }
-
-    function escapeAttributeValue(value) {
-        // As mentioned on http://api.jquery.com/category/selectors/
-        return value.replace(/([!"#$%&'()*+,./:;<=>?@\[\\\]^`{|}~])/g, "\\$1");
-    }
-
-    function getModelPrefix(fieldName) {
-        return fieldName.substr(0, fieldName.lastIndexOf(".") + 1);
-    }
-
-    function appendModelPrefix(value, prefix) {
-        if (value.indexOf("*.") === 0) {
-            value = value.replace("*.", prefix);
-        }
-        return value;
-    }
-
-    function onError(error, inputElement) {  // 'this' is the form element
-        var container = $(this).find("[data-valmsg-for='" + escapeAttributeValue(inputElement[0].name) + "']"),
-            replaceAttrValue = container.attr("data-valmsg-replace"),
-            replace = replaceAttrValue ? $.parseJSON(replaceAttrValue) !== false : null;
-
-        container.removeClass("field-validation-valid").addClass("field-validation-error");
-        error.data("unobtrusiveContainer", container);
-
-        if (replace) {
-            container.empty();
-            error.removeClass("input-validation-error").appendTo(container);
-        }
-        else {
-            error.hide();
-        }
-    }
-
-    function onErrors(event, validator) {  // 'this' is the form element
-        var container = $(this).find("[data-valmsg-summary=true]"),
-            list = container.find("ul");
-
-        if (list && list.length && validator.errorList.length) {
-            list.empty();
-            container.addClass("validation-summary-errors").removeClass("validation-summary-valid");
-
-            $.each(validator.errorList, function () {
-                $("<li />").html(this.message).appendTo(list);
-            });
-        }
-    }
-
-    function onSuccess(error) {  // 'this' is the form element
-        var container = error.data("unobtrusiveContainer");
-
-        if (container) {
-            var replaceAttrValue = container.attr("data-valmsg-replace"),
-                replace = replaceAttrValue ? $.parseJSON(replaceAttrValue) : null;
-
-            container.addClass("field-validation-valid").removeClass("field-validation-error");
-            error.removeData("unobtrusiveContainer");
-
-            if (replace) {
-                container.empty();
-            }
-        }
-    }
-
-    function onReset(event) {  // 'this' is the form element
-        var $form = $(this),
-            key = '__jquery_unobtrusive_validation_form_reset';
-        if ($form.data(key)) {
-            return;
-        }
-        // Set a flag that indicates we're currently resetting the form.
-        $form.data(key, true);
-        try {
-            $form.data("validator").resetForm();
-        } finally {
-            $form.removeData(key);
-        }
-
-        $form.find(".validation-summary-errors")
-            .addClass("validation-summary-valid")
-            .removeClass("validation-summary-errors");
-        $form.find(".field-validation-error")
-            .addClass("field-validation-valid")
-            .removeClass("field-validation-error")
-            .removeData("unobtrusiveContainer")
-            .find(">*")  // If we were using valmsg-replace, get the underlying error
-            .removeData("unobtrusiveContainer");
-    }
-
-    function validationInfo(form) {
-        var $form = $(form),
-            result = $form.data(data_validation),
-            onResetProxy = $.proxy(onReset, form),
-            defaultOptions = $jQval.unobtrusive.options || {},
-            execInContext = function (name, args) {
-                var func = defaultOptions[name];
-                func && $.isFunction(func) && func.apply(form, args);
-            };
-
-        if (!result) {
-            result = {
-                options: {  // options structure passed to jQuery Validate's validate() method
-                    errorClass: defaultOptions.errorClass || "input-validation-error",
-                    errorElement: defaultOptions.errorElement || "span",
-                    errorPlacement: function () {
-                        onError.apply(form, arguments);
-                        execInContext("errorPlacement", arguments);
-                    },
-                    invalidHandler: function () {
-                        onErrors.apply(form, arguments);
-                        execInContext("invalidHandler", arguments);
-                    },
-                    messages: {},
-                    rules: {},
-                    success: function () {
-                        onSuccess.apply(form, arguments);
-                        execInContext("success", arguments);
-                    }
-                },
-                attachValidation: function () {
-                    $form
-                        .off("reset." + data_validation, onResetProxy)
-                        .on("reset." + data_validation, onResetProxy)
-                        .validate(this.options);
-                },
-                validate: function () {  // a validation function that is called by unobtrusive Ajax
-                    $form.validate();
-                    return $form.valid();
-                }
-            };
-            $form.data(data_validation, result);
-        }
-
-        return result;
-    }
-
-    $jQval.unobtrusive = {
-        adapters: [],
-
-        parseElement: function (element, skipAttach) {
-            /// <summary>
-            /// Parses a single HTML element for unobtrusive validation attributes.
-            /// </summary>
-            /// <param name="element" domElement="true">The HTML element to be parsed.</param>
-            /// <param name="skipAttach" type="Boolean">[Optional] true to skip attaching the
-            /// validation to the form. If parsing just this single element, you should specify true.
-            /// If parsing several elements, you should specify false, and manually attach the validation
-            /// to the form when you are finished. The default is false.</param>
-            var $element = $(element),
-                form = $element.parents("form")[0],
-                valInfo, rules, messages;
-
-            if (!form) {  // Cannot do client-side validation without a form
-                return;
-            }
-
-            valInfo = validationInfo(form);
-            valInfo.options.rules[element.name] = rules = {};
-            valInfo.options.messages[element.name] = messages = {};
-
-            $.each(this.adapters, function () {
-                var prefix = "data-val-" + this.name,
-                    message = $element.attr(prefix),
-                    paramValues = {};
-
-                if (message !== undefined) {  // Compare against undefined, because an empty message is legal (and falsy)
-                    prefix += "-";
-
-                    $.each(this.params, function () {
-                        paramValues[this] = $element.attr(prefix + this);
-                    });
-
-                    this.adapt({
-                        element: element,
-                        form: form,
-                        message: message,
-                        params: paramValues,
-                        rules: rules,
-                        messages: messages
-                    });
-                }
-            });
-
-            $.extend(rules, { "__dummy__": true });
-
-            if (!skipAttach) {
-                valInfo.attachValidation();
-            }
-        },
-
-        parse: function (selector) {
-            /// <summary>
-            /// Parses all the HTML elements in the specified selector. It looks for input elements decorated
-            /// with the [data-val=true] attribute value and enables validation according to the data-val-*
-            /// attribute values.
-            /// </summary>
-            /// <param name="selector" type="String">Any valid jQuery selector.</param>
-
-            // $forms includes all forms in selector's DOM hierarchy (parent, children and self) that have at least one
-            // element with data-val=true
-            var $selector = $(selector),
-                $forms = $selector.parents()
-                    .addBack()
-                    .filter("form")
-                    .add($selector.find("form"))
-                    .has("[data-val=true]");
-
-            $selector.find("[data-val=true]").each(function () {
-                $jQval.unobtrusive.parseElement(this, true);
-            });
-
-            $forms.each(function () {
-                var info = validationInfo(this);
-                if (info) {
-                    info.attachValidation();
-                }
-            });
-        }
-    };
-
-    adapters = $jQval.unobtrusive.adapters;
-
-    adapters.add = function (adapterName, params, fn) {
-        /// <summary>Adds a new adapter to convert unobtrusive HTML into a jQuery Validate validation.</summary>
-        /// <param name="adapterName" type="String">The name of the adapter to be added. This matches the name used
-        /// in the data-val-nnnn HTML attribute (where nnnn is the adapter name).</param>
-        /// <param name="params" type="Array" optional="true">[Optional] An array of parameter names (strings) that will
-        /// be extracted from the data-val-nnnn-mmmm HTML attributes (where nnnn is the adapter name, and
-        /// mmmm is the parameter name).</param>
-        /// <param name="fn" type="Function">The function to call, which adapts the values from the HTML
-        /// attributes into jQuery Validate rules and/or messages.</param>
-        /// <returns type="jQuery.validator.unobtrusive.adapters" />
-        if (!fn) {  // Called with no params, just a function
-            fn = params;
-            params = [];
-        }
-        this.push({ name: adapterName, params: params, adapt: fn });
-        return this;
-    };
-
-    adapters.addBool = function (adapterName, ruleName) {
-        /// <summary>Adds a new adapter to convert unobtrusive HTML into a jQuery Validate validation, where
-        /// the jQuery Validate validation rule has no parameter values.</summary>
-        /// <param name="adapterName" type="String">The name of the adapter to be added. This matches the name used
-        /// in the data-val-nnnn HTML attribute (where nnnn is the adapter name).</param>
-        /// <param name="ruleName" type="String" optional="true">[Optional] The name of the jQuery Validate rule. If not provided, the value
-        /// of adapterName will be used instead.</param>
-        /// <returns type="jQuery.validator.unobtrusive.adapters" />
-        return this.add(adapterName, function (options) {
-            setValidationValues(options, ruleName || adapterName, true);
-        });
-    };
-
-    adapters.addMinMax = function (adapterName, minRuleName, maxRuleName, minMaxRuleName, minAttribute, maxAttribute) {
-        /// <summary>Adds a new adapter to convert unobtrusive HTML into a jQuery Validate validation, where
-        /// the jQuery Validate validation has three potential rules (one for min-only, one for max-only, and
-        /// one for min-and-max). The HTML parameters are expected to be named -min and -max.</summary>
-        /// <param name="adapterName" type="String">The name of the adapter to be added. This matches the name used
-        /// in the data-val-nnnn HTML attribute (where nnnn is the adapter name).</param>
-        /// <param name="minRuleName" type="String">The name of the jQuery Validate rule to be used when you only
-        /// have a minimum value.</param>
-        /// <param name="maxRuleName" type="String">The name of the jQuery Validate rule to be used when you only
-        /// have a maximum value.</param>
-        /// <param name="minMaxRuleName" type="String">The name of the jQuery Validate rule to be used when you
-        /// have both a minimum and maximum value.</param>
-        /// <param name="minAttribute" type="String" optional="true">[Optional] The name of the HTML attribute that
-        /// contains the minimum value. The default is "min".</param>
-        /// <param name="maxAttribute" type="String" optional="true">[Optional] The name of the HTML attribute that
-        /// contains the maximum value. The default is "max".</param>
-        /// <returns type="jQuery.validator.unobtrusive.adapters" />
-        return this.add(adapterName, [minAttribute || "min", maxAttribute || "max"], function (options) {
-            var min = options.params.min,
-                max = options.params.max;
-
-            if (min && max) {
-                setValidationValues(options, minMaxRuleName, [min, max]);
-            }
-            else if (min) {
-                setValidationValues(options, minRuleName, min);
-            }
-            else if (max) {
-                setValidationValues(options, maxRuleName, max);
-            }
-        });
-    };
-
-    adapters.addSingleVal = function (adapterName, attribute, ruleName) {
-        /// <summary>Adds a new adapter to convert unobtrusive HTML into a jQuery Validate validation, where
-        /// the jQuery Validate validation rule has a single value.</summary>
-        /// <param name="adapterName" type="String">The name of the adapter to be added. This matches the name used
-        /// in the data-val-nnnn HTML attribute(where nnnn is the adapter name).</param>
-        /// <param name="attribute" type="String">[Optional] The name of the HTML attribute that contains the value.
-        /// The default is "val".</param>
-        /// <param name="ruleName" type="String" optional="true">[Optional] The name of the jQuery Validate rule. If not provided, the value
-        /// of adapterName will be used instead.</param>
-        /// <returns type="jQuery.validator.unobtrusive.adapters" />
-        return this.add(adapterName, [attribute || "val"], function (options) {
-            setValidationValues(options, ruleName || adapterName, options.params[attribute]);
-        });
-    };
-
-    $jQval.addMethod("__dummy__", function (value, element, params) {
-        return true;
-    });
-
-    $jQval.addMethod("regex", function (value, element, params) {
-        var match;
-        if (this.optional(element)) {
-            return true;
-        }
-
-        match = new RegExp(params).exec(value);
-        return (match && (match.index === 0) && (match[0].length === value.length));
-    });
-
-    $jQval.addMethod("nonalphamin", function (value, element, nonalphamin) {
-        var match;
-        if (nonalphamin) {
-            match = value.match(/\W/g);
-            match = match && match.length >= nonalphamin;
-        }
-        return match;
-    });
-
-    if ($jQval.methods.extension) {
-        adapters.addSingleVal("accept", "mimtype");
-        adapters.addSingleVal("extension", "extension");
-    } else {
-        // for backward compatibility, when the 'extension' validation method does not exist, such as with versions
-        // of JQuery Validation plugin prior to 1.10, we should use the 'accept' method for
-        // validating the extension, and ignore mime-type validations as they are not supported.
-        adapters.addSingleVal("extension", "extension", "accept");
-    }
-
-    adapters.addSingleVal("regex", "pattern");
-    adapters.addBool("creditcard").addBool("date").addBool("digits").addBool("email").addBool("number").addBool("url");
-    adapters.addMinMax("length", "minlength", "maxlength", "rangelength").addMinMax("range", "min", "max", "range");
-    adapters.addMinMax("minlength", "minlength").addMinMax("maxlength", "minlength", "maxlength");
-    adapters.add("equalto", ["other"], function (options) {
-        var prefix = getModelPrefix(options.element.name),
-            other = options.params.other,
-            fullOtherName = appendModelPrefix(other, prefix),
-            element = $(options.form).find(":input").filter("[name='" + escapeAttributeValue(fullOtherName) + "']")[0];
-
-        setValidationValues(options, "equalTo", element);
-    });
-    adapters.add("required", function (options) {
-        // jQuery Validate equates "required" with "mandatory" for checkbox elements
-        if (options.element.tagName.toUpperCase() !== "INPUT" || options.element.type.toUpperCase() !== "CHECKBOX") {
-            setValidationValues(options, "required", true);
-        }
-    });
-    adapters.add("remote", ["url", "type", "additionalfields"], function (options) {
-        var value = {
-            url: options.params.url,
-            type: options.params.type || "GET",
-            data: {}
-        },
-            prefix = getModelPrefix(options.element.name);
-
-        $.each(splitAndTrim(options.params.additionalfields || options.element.name), function (i, fieldName) {
-            var paramName = appendModelPrefix(fieldName, prefix);
-            value.data[paramName] = function () {
-                var field = $(options.form).find(":input").filter("[name='" + escapeAttributeValue(paramName) + "']");
-                // For checkboxes and radio buttons, only pick up values from checked fields.
-                if (field.is(":checkbox")) {
-                    return field.filter(":checked").val() || field.filter(":hidden").val() || '';
-                }
-                else if (field.is(":radio")) {
-                    return field.filter(":checked").val() || '';
-                }
-                return field.val();
-            };
-        });
-
-        setValidationValues(options, "remote", value);
-    });
-    adapters.add("password", ["min", "nonalphamin", "regex"], function (options) {
-        if (options.params.min) {
-            setValidationValues(options, "minlength", options.params.min);
-        }
-        if (options.params.nonalphamin) {
-            setValidationValues(options, "nonalphamin", options.params.nonalphamin);
-        }
-        if (options.params.regex) {
-            setValidationValues(options, "regex", options.params.regex);
-        }
-    });
-    adapters.add("fileextensions", ["extensions"], function (options) {
-        setValidationValues(options, "extension", options.params.extensions);
-    });
-
-    $(function () {
-        $jQval.unobtrusive.parse(document);
-    });
-
-    return $jQval.unobtrusive;
-}));

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 5
TEAMModelOS.Starter.CloudServer/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js


+ 0 - 22
TEAMModelOS.Starter.CloudServer/wwwroot/lib/jquery-validation/LICENSE.md

@@ -1,22 +0,0 @@
-The MIT License (MIT)
-=====================
-
-Copyright Jörn Zaefferer
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1158
TEAMModelOS.Starter.CloudServer/wwwroot/lib/jquery-validation/dist/additional-methods.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 4
TEAMModelOS.Starter.CloudServer/wwwroot/lib/jquery-validation/dist/additional-methods.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1601
TEAMModelOS.Starter.CloudServer/wwwroot/lib/jquery-validation/dist/jquery.validate.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 4
TEAMModelOS.Starter.CloudServer/wwwroot/lib/jquery-validation/dist/jquery.validate.min.js


+ 0 - 36
TEAMModelOS.Starter.CloudServer/wwwroot/lib/jquery/LICENSE.txt

@@ -1,36 +0,0 @@
-Copyright JS Foundation and other contributors, https://js.foundation/
-
-This software consists of voluntary contributions made by many
-individuals. For exact contribution history, see the revision history
-available at https://github.com/jquery/jquery
-
-The following license applies to all parts of this software except as
-documented below:
-
-====
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-====
-
-All files located in the node_modules and external directories are
-externally maintained libraries used by this software which have their
-own licenses; we recommend you read them, as their terms may differ from
-the terms above.

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 10364
TEAMModelOS.Starter.CloudServer/wwwroot/lib/jquery/dist/jquery.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 2
TEAMModelOS.Starter.CloudServer/wwwroot/lib/jquery/dist/jquery.min.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
TEAMModelOS.Starter.CloudServer/wwwroot/lib/jquery/dist/jquery.min.map


+ 2 - 30
TEAMModelOS.sln

@@ -11,17 +11,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "03-应用实体", "03-应
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "04-开发组件", "04-开发组件", "{BF88656C-756D-47B0-8395-1A0B4A426C92}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TEAMModelOS.Service.Common", "TEAMModelOS.Service.Common\TEAMModelOS.Service.Common.csproj", "{2039DAC8-818E-4A64-BBEF-39547496BC5B}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TEAMModelOS.Service", "TEAMModelOS.Service\TEAMModelOS.Service.csproj", "{9E0A942E-B04B-4875-9426-9019737A103B}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TEAMModelOS.Service.Syllabus", "TEAMModelOS.Service.Syllabus\TEAMModelOS.Service.Syllabus.csproj", "{5D3348A1-4507-49BF-9FC8-42009EEEB114}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TEAMModelOS.Service.Analysis", "TEAMModelOS.Service.Analysis\TEAMModelOS.Service.Analysis.csproj", "{9E0A942E-B04B-4875-9426-9019737A103B}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TEAMModelOS.Model.Common", "TEAMModelOS.Model.Common\TEAMModelOS.Model.Common.csproj", "{52E89322-019B-485E-AE58-D242C5A2A0D0}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TEAMModelOS.Model.Analysis", "TEAMModelOS.Model.Analysis\TEAMModelOS.Model.Analysis.csproj", "{D1341054-7A2A-4E33-9167-1CECDA91B590}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TEAMModelOS.Model.Syllabus", "TEAMModelOS.Model.Syllabus\TEAMModelOS.Model.Syllabus.csproj", "{B1251892-7F33-484F-B908-7DC68F36742F}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TEAMModelOS.Model", "TEAMModelOS.Model\TEAMModelOS.Model.csproj", "{B1251892-7F33-484F-B908-7DC68F36742F}"
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TEAMModelOS.SDK", "TEAMModelOS.SDK\TEAMModelOS.SDK.csproj", "{CE3C81B8-10DA-460F-AFD4-520F0B4D9CCD}"
 EndProject
@@ -33,26 +25,10 @@ Global
 		Release|Any CPU = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{2039DAC8-818E-4A64-BBEF-39547496BC5B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{2039DAC8-818E-4A64-BBEF-39547496BC5B}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{2039DAC8-818E-4A64-BBEF-39547496BC5B}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{2039DAC8-818E-4A64-BBEF-39547496BC5B}.Release|Any CPU.Build.0 = Release|Any CPU
-		{5D3348A1-4507-49BF-9FC8-42009EEEB114}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{5D3348A1-4507-49BF-9FC8-42009EEEB114}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{5D3348A1-4507-49BF-9FC8-42009EEEB114}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{5D3348A1-4507-49BF-9FC8-42009EEEB114}.Release|Any CPU.Build.0 = Release|Any CPU
 		{9E0A942E-B04B-4875-9426-9019737A103B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{9E0A942E-B04B-4875-9426-9019737A103B}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{9E0A942E-B04B-4875-9426-9019737A103B}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{9E0A942E-B04B-4875-9426-9019737A103B}.Release|Any CPU.Build.0 = Release|Any CPU
-		{52E89322-019B-485E-AE58-D242C5A2A0D0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{52E89322-019B-485E-AE58-D242C5A2A0D0}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{52E89322-019B-485E-AE58-D242C5A2A0D0}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{52E89322-019B-485E-AE58-D242C5A2A0D0}.Release|Any CPU.Build.0 = Release|Any CPU
-		{D1341054-7A2A-4E33-9167-1CECDA91B590}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{D1341054-7A2A-4E33-9167-1CECDA91B590}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{D1341054-7A2A-4E33-9167-1CECDA91B590}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{D1341054-7A2A-4E33-9167-1CECDA91B590}.Release|Any CPU.Build.0 = Release|Any CPU
 		{B1251892-7F33-484F-B908-7DC68F36742F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{B1251892-7F33-484F-B908-7DC68F36742F}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{B1251892-7F33-484F-B908-7DC68F36742F}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -70,11 +46,7 @@ Global
 		HideSolutionNode = FALSE
 	EndGlobalSection
 	GlobalSection(NestedProjects) = preSolution
-		{2039DAC8-818E-4A64-BBEF-39547496BC5B} = {5E19E4AC-807E-44D1-B54D-D9DB25AA9B5A}
-		{5D3348A1-4507-49BF-9FC8-42009EEEB114} = {5E19E4AC-807E-44D1-B54D-D9DB25AA9B5A}
 		{9E0A942E-B04B-4875-9426-9019737A103B} = {5E19E4AC-807E-44D1-B54D-D9DB25AA9B5A}
-		{52E89322-019B-485E-AE58-D242C5A2A0D0} = {6F5FF283-62C0-4511-82D9-3C78BB92919B}
-		{D1341054-7A2A-4E33-9167-1CECDA91B590} = {6F5FF283-62C0-4511-82D9-3C78BB92919B}
 		{B1251892-7F33-484F-B908-7DC68F36742F} = {6F5FF283-62C0-4511-82D9-3C78BB92919B}
 		{CE3C81B8-10DA-460F-AFD4-520F0B4D9CCD} = {BF88656C-756D-47B0-8395-1A0B4A426C92}
 		{E6B83AD9-95EF-4865-BD47-99874EB5A0FD} = {48CF39D8-3120-4F94-A03F-20EE2BC280E1}

+ 24 - 0
TEAMModelOS/.babelrc

@@ -0,0 +1,24 @@
+{
+  "presets": [
+    "@babel/preset-env"
+  ],
+  "plugins": [
+    "@babel/plugin-transform-runtime",
+    "@babel/plugin-transform-async-to-generator",
+    "@babel/plugin-syntax-dynamic-import",
+    "@babel/plugin-syntax-import-meta",
+    "@babel/plugin-proposal-class-properties",
+    "@babel/plugin-proposal-json-strings",
+    [
+      "@babel/plugin-proposal-decorators",
+      {
+        "legacy": true
+      }
+    ],
+    "@babel/plugin-proposal-function-sent",
+    "@babel/plugin-proposal-export-namespace-from",
+    "@babel/plugin-proposal-numeric-separator",
+    "@babel/plugin-proposal-throw-expressions"
+  ],
+  "comments": false
+}

+ 14 - 0
TEAMModelOS/.editorconfig

@@ -0,0 +1,14 @@
+root = true
+
+[*]
+charset = utf-8
+indent_style = space
+end_of_line = lf
+insert_final_newline = true
+trim_trailing_whitespace = true
+
+[*.cs]
+indent_size = 4
+
+[*.{js,json,vue}]
+indent_size = 2

+ 23 - 0
TEAMModelOS/.eslintrc.js

@@ -0,0 +1,23 @@
+module.exports = {
+  root: true,
+  parser: 'babel-eslint',
+  parserOptions: {
+    sourceType: 'module'
+  },
+  // https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style
+  extends: 'standard',
+  // We could also use the https://github.com/vuejs/eslint-plugin-vue
+  // required to lint *.vue files
+  plugins: [
+    'html'
+  ],
+  // add your custom rules here
+  'rules': {
+    // allow paren-less arrow functions
+    'arrow-parens': 0,
+    // allow async-await
+    'generator-star-spacing': 0,
+    // allow debugger during development
+    'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0
+  }
+}

+ 35 - 0
TEAMModelOS/.gitattributes

@@ -0,0 +1,35 @@
+###############################################################################
+# Auto detect text files and perform LF normalization
+###############################################################################
+* text=auto
+
+###############################################################################
+# Force text and use native line endings for configuration and plain text
+# files, for easier editing on any platform.
+###############################################################################
+*.cs     text
+*.cshtml text
+*.js     text
+*.vue    text
+*.json   text
+*.css    text
+*.md     text
+*.config text
+
+###############################################################################
+# Set default behavior for command prompt diff.
+###############################################################################
+*.cs        diff=csharp
+
+###############################################################################
+# Set the merge driver for project and solution files
+#
+# Merging from the command prompt will add diff markers to the files if there
+# are conflicts (Merging from VS is not affected by the settings below, in VS
+# the diff markers are never inserted). Diff markers may cause the following 
+# file extensions to fail to load in VS. An alternative would be to treat
+# these files as binary and thus will always conflict and require user
+# intervention with every merge. To do so, just uncomment the entries below
+###############################################################################
+*.sln       merge=binary
+*.csproj    merge=binary

+ 253 - 0
TEAMModelOS/.gitignore

@@ -0,0 +1,253 @@
+.DS_Store
+node_modules/
+npm-debug.log
+
+/Properties/launchSettings.json
+
+package-lock.json
+
+## Ignore Visual Studio temporary files, build results, and
+## files generated by popular Visual Studio add-ons.
+
+# User-specific files
+*.suo
+*.user
+*.userosscache
+*.sln.docstates
+
+# User-specific files (MonoDevelop/Xamarin Studio)
+*.userprefs
+
+# Build results
+[Dd]ebug/
+[Dd]ebugPublic/
+[Rr]elease/
+[Rr]eleases/
+x64/
+x86/
+build/
+bld/
+bin/
+Bin/
+obj/
+Obj/
+
+# Visual Studio 2015 cache/options directory
+.vs/
+/wwwroot/dist/**
+
+# Workaround for https://github.com/aspnet/JavaScriptServices/issues/235
+!/wwwroot/dist/_placeholder.txt
+
+/yarn.lock
+
+# MSTest test Results
+[Tt]est[Rr]esult*/
+[Bb]uild[Ll]og.*
+
+# NUNIT
+*.VisualState.xml
+TestResult.xml
+
+# Build Results of an ATL Project
+[Dd]ebugPS/
+[Rr]eleasePS/
+dlldata.c
+
+# DNX
+project.lock.json
+artifacts/
+
+*_i.c
+*_p.c
+*_i.h
+*.ilk
+*.meta
+*.obj
+*.pch
+*.pdb
+*.pgc
+*.pgd
+*.rsp
+*.sbr
+*.tlb
+*.tli
+*.tlh
+*.tmp
+*.tmp_proj
+*.log
+*.vspscc
+*.vssscc
+.builds
+*.pidb
+*.svclog
+*.scc
+
+# Chutzpah Test files
+_Chutzpah*
+
+# Visual C++ cache files
+ipch/
+*.aps
+*.ncb
+*.opendb
+*.opensdf
+*.sdf
+*.cachefile
+
+# Visual Studio profiler
+*.psess
+*.vsp
+*.vspx
+*.sap
+
+# TFS 2012 Local Workspace
+$tf/
+
+# Guidance Automation Toolkit
+*.gpState
+
+# ReSharper is a .NET coding add-in
+_ReSharper*/
+*.[Rr]e[Ss]harper
+*.DotSettings.user
+
+# JustCode is a .NET coding add-in
+.JustCode
+
+# TeamCity is a build add-in
+_TeamCity*
+
+# DotCover is a Code Coverage Tool
+*.dotCover
+
+# 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
+# TODO: 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
+
+# NuGet Packages
+*.nupkg
+# The packages folder can be ignored because of Package Restore
+**/packages/*
+# except build/, which is used as an MSBuild target.
+!**/packages/build/
+# Uncomment if necessary however generally it will be regenerated when needed
+#!**/packages/repositories.config
+
+# Microsoft Azure Build Output
+csx/
+*.build.csdef
+
+# Microsoft Azure Emulator
+ecf/
+rcf/
+
+# Microsoft Azure ApplicationInsights config file
+ApplicationInsights.config
+
+# Windows Store app package directory
+AppPackages/
+BundleArtifacts/
+
+# 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
+*.pfx
+*.publishsettings
+orleans.codegen.cs
+
+# Workaround for https://github.com/aspnet/JavaScriptServices/issues/235
+/node_modules/**
+!/node_modules/_placeholder.txt
+
+# 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
+
+# SQL Server files
+*.mdf
+*.ldf
+
+# Business Intelligence projects
+*.rdl.data
+*.bim.layout
+*.bim_*.settings
+
+# Microsoft Fakes
+FakesAssemblies/
+
+# GhostDoc plugin setting file
+*.GhostDoc.xml
+
+# Node.js Tools for Visual Studio
+.ntvs_analysis.dat
+
+# Visual Studio 6 build log
+*.plg
+
+# Visual Studio 6 workspace options file
+*.opt
+
+# 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
+
+# FAKE - F# Make
+.fake/
+
+.vscode/

+ 2 - 2
TEAMModelOS/Controllers/AnalysisControllers/ClassController.cs

@@ -1,4 +1,4 @@
-using Microsoft.AspNetCore.Hosting;
+using Microsoft.AspNetCore.Hosting;
 using Microsoft.AspNetCore.Mvc;
 using System;
 using System.Collections.Generic;
@@ -8,7 +8,7 @@ using System.Threading.Tasks;
 using TEAMModelOS.Helper.Common.FileHelper;
 using TEAMModelOS.SDK.Extension.DataResult.JsonRpcResponse;
 
-namespace TEAMModelOS.Starter.CloudServer.Controllers.AnalysisControllers
+namespace TEAMModelOS.Controllers.AnalysisControllers
 {
     [Route("api/[controller]")]
     [ApiController]

+ 2 - 2
TEAMModelOS/Controllers/OssController.cs

@@ -1,8 +1,8 @@
-using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Http;
 using Microsoft.AspNetCore.Mvc;
 using System.Linq;
 
-namespace TEAMModelOS.Starter.CloudServer.Controllers
+namespace TEAMModelOS.Controllers
 {
 
     [Route("api/[controller]")]

+ 2 - 2
TEAMModelOS/Controllers/Syllabus/SyllabusController.cs

@@ -1,10 +1,10 @@
-using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.Mvc;
 using System.Threading.Tasks;
 using TEAMModelOS.Model.Syllabus.Dtos;
 using TEAMModelOS.SDK.Extension.DataResult.JsonRpcRequest;
 using TEAMModelOS.SDK.Extension.HttpClient.Implements;
 
-namespace TEAMModelOS.Starter.CloudServer.Controllers.Syllabus
+namespace TEAMModelOS.Controllers.Syllabus
 {
     [Route("api/[controller]")]
     [ApiController]

+ 46 - 0
TEAMModelOS/Controllers/ValuesController.cs

@@ -0,0 +1,46 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+
+namespace TEAMModelOS.Controllers
+{
+    [Route("api/[controller]")]
+    [ApiController]
+    public class ValuesController : ControllerBase
+    {
+        // GET api/values
+        [HttpGet]
+        public ActionResult<IEnumerable<string>> Get()
+        {
+            return new string[] { "value1", "value2" };
+        }
+
+        // GET api/values/5
+        [HttpGet("{id}")]
+        public ActionResult<string> Get(int id)
+        {
+            return null;
+        }
+
+        // POST api/values
+        [HttpPost]
+        public void Post([FromBody] string value)
+        {
+        }
+
+        // PUT api/values/5
+        [HttpPut("{id}")]
+        public void Put(int id, [FromBody] string value)
+        {
+        }
+
+        // DELETE api/values/5
+        [HttpDelete("{id}")]
+        public void Delete(int id)
+        {
+        }
+    }
+}

+ 21 - 0
TEAMModelOS/Dockerfile

@@ -0,0 +1,21 @@
+# Stage 1 - Restoring & Compiling
+FROM microsoft/dotnet:2.2-sdk-alpine3.8 as builder
+WORKDIR /source
+RUN apk add --update nodejs nodejs-npm
+COPY *.csproj .
+RUN dotnet restore
+COPY package.json .
+RUN npm install
+COPY . .
+RUN dotnet publish -c Release -o /app/
+
+# Stage 2 - Creating Image for compiled app
+FROM microsoft/dotnet:2.2-aspnetcore-runtime-alpine3.8 as baseimage
+RUN apk add --update nodejs nodejs-npm
+WORKDIR /app
+COPY --from=builder /app .
+ENV ASPNETCORE_URLS=http://+:$port
+
+# Run the application. REPLACE the name of dll with the name of the dll produced by your application
+EXPOSE $port
+CMD ["dotnet", "TEAMModelOS.dll"]

+ 0 - 0
TEAMModelOS/README.md


+ 1 - 1
TEAMModelOS/Startup.cs

@@ -1,4 +1,4 @@
-using System.Linq;
+using System.Linq;
 using Microsoft.AspNetCore.Builder;
 using Microsoft.AspNetCore.Hosting;
 using Microsoft.AspNetCore.Http;

+ 27 - 8
TEAMModelOS/TEAMModelOS.csproj

@@ -1,21 +1,40 @@
 <Project Sdk="Microsoft.NET.Sdk.Web">
-
   <PropertyGroup>
     <TargetFramework>netcoreapp2.2</TargetFramework>
-    <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
   </PropertyGroup>
-
-
   <ItemGroup>
     <PackageReference Include="Microsoft.AspNetCore.App" />
-    <PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.2.0" PrivateAssets="All" />
   </ItemGroup>
+  <ItemGroup>
+    <!-- Files not to show in IDE -->
+    <None Remove="yarn.lock" />
 
-
+    <!-- Files not to publish (note that the 'dist' subfolders are re-added below) -->
+    <Content Remove="ClientApp\**" />
+  </ItemGroup>
+  <ItemGroup>
+    <Folder Include="Models\" />
+    <Folder Include="Providers\" />
+  </ItemGroup>
   <ItemGroup>
-    <ProjectReference Include="..\TEAMModelOS.Model.Syllabus\TEAMModelOS.Model.Syllabus.csproj" />
+    <ProjectReference Include="..\TEAMModelOS.Model\TEAMModelOS.Model.csproj" />
     <ProjectReference Include="..\TEAMModelOS.SDK\TEAMModelOS.SDK.csproj" />
-    <ProjectReference Include="..\TEAMModelOS.Service.Common\TEAMModelOS.Service.Common.csproj" />
+    <ProjectReference Include="..\TEAMModelOS.Service\TEAMModelOS.Service.csproj" />
   </ItemGroup>
 
+  <Target Name="RunWebpack" AfterTargets="ComputeFilesToPublish">
+    <!-- As part of publishing, ensure the JS resources are freshly built in production mode -->
+    <Exec Command="node -e &quot;console.log('NPM Installing dependencies...')&quot;" />
+    <Exec Command="npm install --ignore-scripts" />
+    <Exec Command="npm run build" />
+
+    <!-- Include the newly-built files in the publish output -->
+    <ItemGroup>
+      <DistFiles Include="wwwroot\dist\**; ClientApp\dist\**" />
+      <ResolvedFileToPublish Include="@(DistFiles->'%(FullPath)')" Exclude="@(ResolvedFileToPublish)">
+        <RelativePath>%(DistFiles.Identity)</RelativePath>
+        <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
+      </ResolvedFileToPublish>
+    </ItemGroup>
+  </Target>
 </Project>

+ 6 - 7
TEAMModelOS/Views/Home/Index.cshtml

@@ -1,8 +1,7 @@
-@{
-    ViewData["Title"] = "Home Page";
-}
+@{ ViewData["Title"] = "Home Page"; }
+
+<div id="app"></div>
 
-<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>
+@section scripts {
+    <script src="~/dist/main.js" asp-append-version="true"></script>
+}

+ 0 - 6
TEAMModelOS/Views/Home/Privacy.cshtml

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

+ 0 - 19
TEAMModelOS/Views/Shared/Error.cshtml

@@ -1,25 +1,6 @@
-@model ErrorViewModel
 @{
     ViewData["Title"] = "Error";
 }
 
 <h1 class="text-danger">Error.</h1>
 <h2 class="text-danger">An error occurred while processing your request.</h2>
-
-@if (Model.ShowRequestId)
-{
-    <p>
-        <strong>Request ID:</strong> <code>@Model.RequestId</code>
-    </p>
-}
-
-<h3>Development Mode</h3>
-<p>
-    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>
-    It can result in displaying sensitive information from exceptions to end users.
-    For local debugging, enable the <strong>Development</strong> environment by setting the <strong>ASPNETCORE_ENVIRONMENT</strong> environment variable to <strong>Development</strong>
-    and restarting the app.
-</p>

+ 0 - 25
TEAMModelOS/Views/Shared/_CookieConsentPartial.cshtml

@@ -1,25 +0,0 @@
-@using Microsoft.AspNetCore.Http.Features
-
-@{
-    var consentFeature = Context.Features.Get<ITrackingConsentFeature>();
-    var showBanner = !consentFeature?.CanTrack ?? false;
-    var cookieString = consentFeature?.CreateConsentCookie();
-}
-
-@if (showBanner)
-{
-    <div id="cookieConsent" class="alert alert-info alert-dismissible fade show" role="alert">
-        Use this space to summarize your privacy and cookie use policy. <a asp-area="" asp-controller="Home" asp-action="Privacy">Learn More</a>.
-        <button type="button" class="accept-policy close" data-dismiss="alert" aria-label="Close" data-cookie-string="@cookieString">
-            <span aria-hidden="true">Accept</span>
-        </button>
-    </div>
-    <script>
-        (function () {
-            var button = document.querySelector("#cookieConsent button[data-cookie-string]");
-            button.addEventListener("click", function (event) {
-                document.cookie = button.dataset.cookieString;
-            }, false);
-        })();
-    </script>
-}

+ 0 - 0
TEAMModelOS/Views/Shared/_Layout.cshtml


Vissa filer visades inte eftersom för många filer har ändrats