aboutsummaryrefslogtreecommitdiff
path: root/Main
diff options
context:
space:
mode:
Diffstat (limited to 'Main')
-rw-r--r--Main/.vscode/launch.json28
-rw-r--r--Main/.vscode/tasks.json2
-rw-r--r--Main/Main.csproj23
-rw-r--r--Main/Program.cs58
-rw-r--r--Main/Startup.cs47
-rw-r--r--Main/wwwroot/css/main.css0
-rw-r--r--Main/wwwroot/index.html18
-rw-r--r--Main/wwwroot/scripts/main.ts8
-rw-r--r--Main/wwwroot/tsconfig.json8
9 files changed, 131 insertions, 61 deletions
diff --git a/Main/.vscode/launch.json b/Main/.vscode/launch.json
index 618a536..7a4e712 100644
--- a/Main/.vscode/launch.json
+++ b/Main/.vscode/launch.json
@@ -5,18 +5,36 @@
"version": "0.2.0",
"configurations": [
{
- "name": ".NET Core Launch (console)",
+ "name": ".NET Core Launch (web)",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
// If you have changed target frameworks, make sure to update the program path.
- "program": "${workspaceFolder}/bin/Debug/netcoreapp2.1/Main.dll",
+ "program": "${workspaceFolder}/bin/Debug/netcoreapp2.1/Server.dll",
"args": [],
"cwd": "${workspaceFolder}",
- // For more information about the 'console' field, see https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md#console-terminal-window
- "console": "externalTerminal",
"stopAtEntry": false,
- "internalConsoleOptions": "openOnSessionStart"
+ "internalConsoleOptions": "openOnSessionStart",
+ "launchBrowser": {
+ "enabled": true,
+ "args": "${auto-detect-url}",
+ "windows": {
+ "command": "cmd.exe",
+ "args": "/C start ${auto-detect-url}"
+ },
+ "osx": {
+ "command": "open"
+ },
+ "linux": {
+ "command": "xdg-open"
+ }
+ },
+ "env": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ },
+ "sourceFileMap": {
+ "/Views": "${workspaceFolder}/Views"
+ }
},
{
"name": ".NET Core Attach",
diff --git a/Main/.vscode/tasks.json b/Main/.vscode/tasks.json
index 9f2ef21..93c8951 100644
--- a/Main/.vscode/tasks.json
+++ b/Main/.vscode/tasks.json
@@ -7,7 +7,7 @@
"type": "process",
"args": [
"build",
- "${workspaceFolder}/Main.csproj"
+ "${workspaceFolder}/Server.csproj"
],
"problemMatcher": "$msCompile"
}
diff --git a/Main/Main.csproj b/Main/Main.csproj
index d132460..fb94fca 100644
--- a/Main/Main.csproj
+++ b/Main/Main.csproj
@@ -1,4 +1,15 @@
-<Project Sdk="Microsoft.NET.Sdk">
+<Project Sdk="Microsoft.NET.Sdk.Web">
+
+ <PropertyGroup>
+ <TargetFramework>netcoreapp2.1</TargetFramework>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <PackageReference Include="Microsoft.AspNetCore.App" />
+ <PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.1.2" PrivateAssets="All" />
+ <PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.1.4" />
+ <PackageReference Include="MySql.Data.EntityFrameworkCore" Version="8.0.11" />
+ </ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Classes\Classes.csproj" />
@@ -6,14 +17,4 @@
<ProjectReference Include="..\Database\Database.csproj" />
</ItemGroup>
- <ItemGroup>
- <PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.2.1" />
- </ItemGroup>
-
- <PropertyGroup>
- <OutputType>Exe</OutputType>
- <TargetFramework>netcoreapp2.1</TargetFramework>
- <LangVersion>Latest</LangVersion>
- </PropertyGroup>
-
</Project>
diff --git a/Main/Program.cs b/Main/Program.cs
index 3d56b36..9db50bb 100644
--- a/Main/Program.cs
+++ b/Main/Program.cs
@@ -1,51 +1,21 @@
using System;
+using System.Collections.Generic;
+using System.IO;
using System.Linq;
using System.Threading.Tasks;
-using System.Collections.Generic;
-
-using Database;
-using Classes;
-using Aggregator.Parser;
+using Microsoft.AspNetCore;
+using Microsoft.AspNetCore.Hosting;
+using Microsoft.Extensions.Configuration;
+using Microsoft.Extensions.Logging;
-namespace Main {
- internal static class Program {
- private static async Task Main(string[] args) {
- List<Config> configs = new List<Config>() {
- new Config() { //BBC
- Source = "BBC",
- Title = 0,
- Description = 1,
- ArticleLink = 2,
- ImageLink = 5,
- PublishDate = 4
- },
- new Config(){ //Sky
- Source = "Sky",
- Title = 0,
- Description = 2,
- ArticleLink = 1,
- ImageLink = 7,
- PublishDate = 3
- },
- new Config(){ //ABC
- Source = "ABC",
- Title = 7,
- Description = 11,
- ArticleLink = 8,
- ImageLink = 0,
- PublishDate = 10
- }
- };
- string[] xmls = new[] {
- await Download.DownloadXML("http://feeds.bbci.co.uk/news/rss.xml"),
- await Download.DownloadXML("http://feeds.skynews.com/feeds/rss/world.xml"),
- await Download.DownloadXML("https://abcnews.go.com/abcnews/topstories")
- };
- List<Article> articles = ParserService.ParseMultiple(xmls, configs).ToList();
-
- using (var db = new DatabaseContext()) {
- await db.InsertArticles(articles);
- }
+namespace Server {
+ public class Program {
+ public static void Main(string[] args) {
+ CreateWebHostBuilder(args).Build().Run();
}
+
+ public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
+ WebHost.CreateDefaultBuilder(args)
+ .UseStartup<Startup>();
}
}
diff --git a/Main/Startup.cs b/Main/Startup.cs
new file mode 100644
index 0000000..7314290
--- /dev/null
+++ b/Main/Startup.cs
@@ -0,0 +1,47 @@
+using System;
+using System.Collections.Generic;
+
+using Microsoft.AspNetCore.Builder;
+using Microsoft.AspNetCore.Hosting;
+using Microsoft.AspNetCore.Http;
+using Microsoft.Extensions.Configuration;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Metadata;
+
+using Classes;
+using Database;
+using Aggregator.Parser;
+
+namespace Server {
+ public class Startup {
+ public Startup(IConfiguration configuration) {
+ Configuration = configuration;
+ }
+
+ public IConfiguration Configuration { get; }
+
+ public void ConfigureServices(IServiceCollection services) {
+ services.Configure<CookiePolicyOptions>(options => {
+ options.CheckConsentNeeded = context => true;
+ options.MinimumSameSitePolicy = SameSiteMode.None;
+ });
+
+ services.AddDbContext<DatabaseContext>(options => {
+ options.UseMySQL(Configuration.GetConnectionString("connectionString"));
+ });
+ }
+
+ public void Configure(IApplicationBuilder app, IHostingEnvironment env) {
+ if (env.IsDevelopment()) {
+ app.UseDeveloperExceptionPage();
+ }
+ else {
+ app.UseExceptionHandler("/Error");
+ app.UseHsts();
+ }
+
+ app.UseDefaultFiles();
+ }
+ }
+}
diff --git a/Main/wwwroot/css/main.css b/Main/wwwroot/css/main.css
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Main/wwwroot/css/main.css
diff --git a/Main/wwwroot/index.html b/Main/wwwroot/index.html
new file mode 100644
index 0000000..cd392d4
--- /dev/null
+++ b/Main/wwwroot/index.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <title>Page Title</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="stylesheet" type="text/css" media="screen" href="css/main.css">
+ <script src="js/main.js"></script>
+</head>
+
+<body>
+ <div class="app">
+ </div>
+</body>
+
+</html> \ No newline at end of file
diff --git a/Main/wwwroot/scripts/main.ts b/Main/wwwroot/scripts/main.ts
new file mode 100644
index 0000000..77a80d3
--- /dev/null
+++ b/Main/wwwroot/scripts/main.ts
@@ -0,0 +1,8 @@
+var root = document.getElementsByClassName('app');
+
+class Article {
+ Title: HTMLElement;
+ Description: string;
+ ArticleLink: string;
+ Image: HTMLElement;
+} \ No newline at end of file
diff --git a/Main/wwwroot/tsconfig.json b/Main/wwwroot/tsconfig.json
new file mode 100644
index 0000000..89d01c4
--- /dev/null
+++ b/Main/wwwroot/tsconfig.json
@@ -0,0 +1,8 @@
+{
+ "compilerOptions": {
+ "module": "commonjs",
+ "target": "esnext",
+ "sourceMap": true,
+ "outDir": "js/"
+ }
+} \ No newline at end of file