diff --git a/zotan.pw-web/Migrations.cs b/zotan.pw-web/Migrations.cs index 183f91a..13405c1 100644 --- a/zotan.pw-web/Migrations.cs +++ b/zotan.pw-web/Migrations.cs @@ -8,8 +8,7 @@ namespace zotanpw_web; public static class Migrations { private const int DbVer = 1; - private static readonly List _migrations = new() { - }; + private static readonly List _migrations = new(); public static void RunMigrations() { using var db = new Database.DbConn(); @@ -88,4 +87,4 @@ public static class Migrations { db.Execute(_sql); } } -} +} \ No newline at end of file diff --git a/zotan.pw-web/Pages/Error.cshtml b/zotan.pw-web/Pages/Error.cshtml index 090dc52..8f24ea4 100644 --- a/zotan.pw-web/Pages/Error.cshtml +++ b/zotan.pw-web/Pages/Error.cshtml @@ -22,4 +22,4 @@ It can result in displaying sensitive information from exceptions to end users. For local debugging, enable the Development environment by setting the ASPNETCORE_ENVIRONMENT environment variable to Development and restarting the app. -

+

\ No newline at end of file diff --git a/zotan.pw-web/Pages/Error.cshtml.cs b/zotan.pw-web/Pages/Error.cshtml.cs index f405c06..2bd8828 100644 --- a/zotan.pw-web/Pages/Error.cshtml.cs +++ b/zotan.pw-web/Pages/Error.cshtml.cs @@ -4,19 +4,16 @@ using Microsoft.AspNetCore.Mvc.RazorPages; namespace zotanpw_web.Pages; -[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] -[IgnoreAntiforgeryToken] +[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true), IgnoreAntiforgeryToken] public class ErrorModel : PageModel { + private readonly ILogger _logger; + + public ErrorModel(ILogger logger) => _logger = logger; + public string? RequestId { get; set; } public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); - private readonly ILogger _logger; - - public ErrorModel(ILogger logger) { - _logger = logger; - } - public void OnGet() { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier; } diff --git a/zotan.pw-web/Pages/Index.cshtml b/zotan.pw-web/Pages/Index.cshtml index 2125d23..8e3af70 100644 --- a/zotan.pw-web/Pages/Index.cshtml +++ b/zotan.pw-web/Pages/Index.cshtml @@ -158,5 +158,5 @@ @section postfooter { - -} + +} \ No newline at end of file diff --git a/zotan.pw-web/Pages/Index.cshtml.cs b/zotan.pw-web/Pages/Index.cshtml.cs index f5dff1b..6f93a5c 100644 --- a/zotan.pw-web/Pages/Index.cshtml.cs +++ b/zotan.pw-web/Pages/Index.cshtml.cs @@ -1,14 +1,11 @@ -using Microsoft.AspNetCore.Mvc; -using Microsoft.AspNetCore.Mvc.RazorPages; +using Microsoft.AspNetCore.Mvc.RazorPages; namespace zotanpw_web.Pages; public class IndexModel : PageModel { private readonly ILogger _logger; - public IndexModel(ILogger logger) { - _logger = logger; - } + public IndexModel(ILogger logger) => _logger = logger; public void OnGet() { } } \ No newline at end of file diff --git a/zotan.pw-web/Pages/NowPlaying.cshtml.cs b/zotan.pw-web/Pages/NowPlaying.cshtml.cs index a00f342..d65ff2e 100644 --- a/zotan.pw-web/Pages/NowPlaying.cshtml.cs +++ b/zotan.pw-web/Pages/NowPlaying.cshtml.cs @@ -1,9 +1,7 @@ using Microsoft.AspNetCore.Mvc.RazorPages; -namespace zotanpw_web.Pages; +namespace zotanpw_web.Pages; public class NowPlayingModel : PageModel { - public void OnGet() { - - } -} + public void OnGet() { } +} \ No newline at end of file diff --git a/zotan.pw-web/Pages/Shared/_Layout.cshtml b/zotan.pw-web/Pages/Shared/_Layout.cshtml index 607293d..e8ec981 100644 --- a/zotan.pw-web/Pages/Shared/_Layout.cshtml +++ b/zotan.pw-web/Pages/Shared/_Layout.cshtml @@ -16,7 +16,7 @@

zotan.pw >> @ViewData["Title"]

- @await RenderSectionAsync("head", required: false) + @await RenderSectionAsync("head", false) @@ -26,10 +26,10 @@ -
- @await RenderSectionAsync("prefooter", required: false) +
+ @await RenderSectionAsync("prefooter", false)

--- Served by @Environment.MachineName running zotan.pw-web @Utils.Version on .NET @Environment.Version ---

- @await RenderSectionAsync("postfooter", required: false) + @await RenderSectionAsync("postfooter", false)
diff --git a/zotan.pw-web/Pages/_ViewImports.cshtml b/zotan.pw-web/Pages/_ViewImports.cshtml index 7bdc882..e7dc425 100644 --- a/zotan.pw-web/Pages/_ViewImports.cshtml +++ b/zotan.pw-web/Pages/_ViewImports.cshtml @@ -1,3 +1,3 @@ @using zotanpw_web @namespace zotanpw_web.Pages -@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers +@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers \ No newline at end of file diff --git a/zotan.pw-web/Pages/blog/Blog.cshtml b/zotan.pw-web/Pages/blog/Blog.cshtml index 1740832..77ea81d 100644 --- a/zotan.pw-web/Pages/blog/Blog.cshtml +++ b/zotan.pw-web/Pages/blog/Blog.cshtml @@ -9,6 +9,8 @@

Posts

    @foreach (var post in BlogModel.Posts) { -
  • @post.PublishedOn.ToString("yyyy-MM-dd") @post.Title
  • +
  • + @post.PublishedOn.ToString("yyyy-MM-dd") @post.Title +
  • } -
+ \ No newline at end of file diff --git a/zotan.pw-web/Pages/blog/Blog.cshtml.cs b/zotan.pw-web/Pages/blog/Blog.cshtml.cs index 4026b06..8ec945b 100644 --- a/zotan.pw-web/Pages/blog/Blog.cshtml.cs +++ b/zotan.pw-web/Pages/blog/Blog.cshtml.cs @@ -7,7 +7,7 @@ namespace zotanpw_web.Pages.blog; public class BlogModel : PageModel { public static readonly List Posts = new() { new BlogPost("adhd-and-notes", "ADHD & Notetaking: an autistic perspective", DateOnly.Parse("2021-08-07")), - new BlogPost("ipv6-networking", "IPv6-native networking: a project report", DateOnly.Parse("2021-08-23")), + new BlogPost("ipv6-networking", "IPv6-native networking: a project report", DateOnly.Parse("2021-08-23")) }; static BlogModel() { @@ -17,11 +17,11 @@ public class BlogModel : PageModel { public void OnGet() { } public class BlogPost { - public readonly string Title; - public readonly string Shorthand; public readonly DateOnly PublishedOn; - public int ReadTimeMinutes; + public readonly string Shorthand; + public readonly string Title; public string Content = ""; + public int ReadTimeMinutes; public BlogPost(string shorthand, string title, DateOnly publishedOn) { Title = title; @@ -37,4 +37,4 @@ public class BlogModel : PageModel { ReadTimeMinutes = Regex.Matches(markdownText, @"\b\w+\b").Count / 150; } } -} +} \ No newline at end of file diff --git a/zotan.pw-web/Pages/blog/BlogPost.cshtml b/zotan.pw-web/Pages/blog/BlogPost.cshtml index 97c7d4c..5a3e59f 100644 --- a/zotan.pw-web/Pages/blog/BlogPost.cshtml +++ b/zotan.pw-web/Pages/blog/BlogPost.cshtml @@ -19,4 +19,4 @@

IPv6-native networking: a project report

@Html.Raw(post.Content) -
+
\ No newline at end of file diff --git a/zotan.pw-web/Pages/blog/posts/adhd-and-notes.md b/zotan.pw-web/Pages/blog/posts/adhd-and-notes.md index 4b72be5..05a4d88 100644 --- a/zotan.pw-web/Pages/blog/posts/adhd-and-notes.md +++ b/zotan.pw-web/Pages/blog/posts/adhd-and-notes.md @@ -7,7 +7,8 @@ probably give you answers ranging from "Oh I just have it all in my head" to "Just use a todo list / GTD system / bullet journal", both equally unhelpful to most neurodiverse folks I know. -Reading [this article](https://xeiaso.net/blog/gtd-on-paper-2021-06-13){target="_blank"} by Xe inspired me to tackle this +Reading [this article](https://xeiaso.net/blog/gtd-on-paper-2021-06-13){target="_blank"} by Xe inspired me to tackle +this problem for myself. (I highly encourage you to read the linked post along with the rest of their blog) @@ -82,6 +83,7 @@ project, to get something that offers creative freedom close to physical paper, without being convoluted to use. ### Putting it all together + So how does my setup look like exactly? Like [this](/files/blog/adhd-and-notes.png){target="_blank"}. Let me explain what you are looking at here. On the left there is a tree view diff --git a/zotan.pw-web/Pages/blog/posts/ipv6-networking.md b/zotan.pw-web/Pages/blog/posts/ipv6-networking.md index 28eeb69..8e0d463 100644 --- a/zotan.pw-web/Pages/blog/posts/ipv6-networking.md +++ b/zotan.pw-web/Pages/blog/posts/ipv6-networking.md @@ -1,11 +1,13 @@ -If you have reached this post, chances are you already know my [AS211579](https://zotan.network){target="_blank"} project. +If you have reached this post, chances are you already know my [AS211579](https://zotan.network){target="_blank"} +project. This post serves as a summary of the things I learnt and the roadblocks I had to overcome on the way to get the network to its current state. ### Goals and setup For those who don't know the project, here's a quick recap. After having -dabbled a bit with [DN42](https://dn42.eu){target="_blank"} last year during the first lockdown, I wanted to do the real thing, in +dabbled a bit with [DN42](https://dn42.eu){target="_blank"} last year during the first lockdown, I wanted to do the real +thing, in the same global routing system your ISP is using to reach this very web server. While this sounds unnecessarily convoluted and complicated to accomplish, it was actually pretty easy and not that expensive. The easy @@ -167,4 +169,4 @@ maybe with a few exceptions for critical services used by friends from Austria where major telcos still don't support IPv6. Maybe the end of IPv4 is actually near, at least in my small corner of -the internet. Thanks for reading, and have a wonderful day. \ No newline at end of file +the internet. Thanks for reading, and have a wonderful day. diff --git a/zotan.pw-web/PlaybackHistory/LogPlayback.cs b/zotan.pw-web/PlaybackHistory/LogPlayback.cs index 617972a..634148b 100644 --- a/zotan.pw-web/PlaybackHistory/LogPlayback.cs +++ b/zotan.pw-web/PlaybackHistory/LogPlayback.cs @@ -5,8 +5,7 @@ using zotanpw_web.database.Tables; namespace zotanpw_web.PlaybackHistory; -[ApiController] -[Route("/np/log")] +[ApiController, Route("/np/log")] public class LogPlayback : Controller { private static readonly string Token = System.IO.File.ReadAllLines(".bearer_token")[0]; @@ -15,7 +14,7 @@ public class LogPlayback : Controller { var token = Request.Headers.Authorization; if (token == Token) { var db = new Database.DbConn(); - if (!db.AlbumHistory.Any(p => p.Title == rq.Title && p.Artist == rq.Artist && p.DateTime.Between(DateTime.Now - TimeSpan.FromHours(8), DateTime.Now))) { + if (!db.AlbumHistory.Any(p => p.Title == rq.Title && p.Artist == rq.Artist && p.DateTime.Between(DateTime.Now - TimeSpan.FromHours(8), DateTime.Now))) if (!db.AlbumHistory.Any() || !(db.AlbumHistory.OrderByDescending(p => p.EntryId).First().Artist == rq.Artist && db.AlbumHistory.OrderByDescending(p => p.EntryId).First().Title == rq.Title)) { @@ -31,7 +30,6 @@ public class LogPlayback : Controller { Response.StatusCode = 201; return entry; } - } Response.StatusCode = 202; return null!; diff --git a/zotan.pw-web/Program.cs b/zotan.pw-web/Program.cs index faaa63c..c9619cd 100644 --- a/zotan.pw-web/Program.cs +++ b/zotan.pw-web/Program.cs @@ -1,4 +1,3 @@ -using System.Reflection; using LinqToDB.Data; using zotanpw_web; using zotanpw_web.database; @@ -41,4 +40,4 @@ app.UseAuthorization(); app.MapRazorPages(); app.MapControllers(); -app.Run(); +app.Run(); \ No newline at end of file diff --git a/zotan.pw-web/Properties/launchSettings.json b/zotan.pw-web/Properties/launchSettings.json index d70b83b..46cdbaa 100644 --- a/zotan.pw-web/Properties/launchSettings.json +++ b/zotan.pw-web/Properties/launchSettings.json @@ -1,5 +1,4 @@ { - "profiles": { "http": { "commandName": "Project", diff --git a/zotan.pw-web/Travelynx/Travelynx.cs b/zotan.pw-web/Travelynx/Travelynx.cs index 7b5657c..622c40d 100644 --- a/zotan.pw-web/Travelynx/Travelynx.cs +++ b/zotan.pw-web/Travelynx/Travelynx.cs @@ -5,8 +5,7 @@ using zotanpw_web.database.Tables; namespace zotanpw_web.Travelynx; -[ApiController] -[Route("/travelynx")] +[ApiController, Route("/travelynx")] public class Travelynx : Controller { private static readonly string TravelynxSecret = System.IO.File.ReadAllLines(".bearer_token")[0]; @@ -15,9 +14,8 @@ public class Travelynx : Controller { var token = Request.Headers.Authorization; if (token == TravelynxSecret) { var db = new Database.DbConn(); - if (!db.TravelynxInfo.Any()) { + if (!db.TravelynxInfo.Any()) db.InsertWithIdentity(new TravelynxInfo { CheckedIn = false }); - } var status = db.TravelynxInfo.First(); status.CheckedIn = rq.Status.CheckedIn; diff --git a/zotan.pw-web/Travelynx/WebhookRequest.cs b/zotan.pw-web/Travelynx/WebhookRequest.cs index 6828207..c3a924c 100644 --- a/zotan.pw-web/Travelynx/WebhookRequest.cs +++ b/zotan.pw-web/Travelynx/WebhookRequest.cs @@ -1,43 +1,41 @@ -namespace zotanpw_web.Travelynx { - using System.Collections.Generic; +namespace zotanpw_web.Travelynx; - public class WebhookRequest { - public string Reason { get; set; } - public Status Status { get; set; } - } - - public class Status { - public bool Deprecated { get; set; } - public bool CheckedIn { get; set; } - public Station? FromStation { get; set; } - public Station? ToStation { get; set; } - public List? IntermediateStops { get; set; } - public Train? Train { get; set; } - public long ActionTime { get; set; } - } - - public class Station { - public string? Name { get; set; } - public string? Ds100 { get; set; } - public long Uic { get; set; } - public double Latitude { get; set; } - public double Longitude { get; set; } - public long ScheduledTime { get; set; } - public long RealTime { get; set; } - } - - public class IntermediateStop { - public string? Name { get; set; } - public long ScheduledArrival { get; set; } - public long RealArrival { get; set; } - public long ScheduledDeparture { get; set; } - public long RealDeparture { get; set; } - } - - public class Train { - public string? Type { get; set; } - public string? Line { get; set; } - public string? No { get; set; } - public string? Id { get; set; } - } +public class WebhookRequest { + public string Reason { get; set; } + public Status Status { get; set; } +} + +public class Status { + public bool Deprecated { get; set; } + public bool CheckedIn { get; set; } + public Station? FromStation { get; set; } + public Station? ToStation { get; set; } + public List? IntermediateStops { get; set; } + public Train? Train { get; set; } + public long ActionTime { get; set; } +} + +public class Station { + public string? Name { get; set; } + public string? Ds100 { get; set; } + public long Uic { get; set; } + public double Latitude { get; set; } + public double Longitude { get; set; } + public long ScheduledTime { get; set; } + public long RealTime { get; set; } +} + +public class IntermediateStop { + public string? Name { get; set; } + public long ScheduledArrival { get; set; } + public long RealArrival { get; set; } + public long ScheduledDeparture { get; set; } + public long RealDeparture { get; set; } +} + +public class Train { + public string? Type { get; set; } + public string? Line { get; set; } + public string? No { get; set; } + public string? Id { get; set; } } diff --git a/zotan.pw-web/Utils.cs b/zotan.pw-web/Utils.cs index b77a697..f06f414 100644 --- a/zotan.pw-web/Utils.cs +++ b/zotan.pw-web/Utils.cs @@ -21,4 +21,4 @@ public static class Utils { _ => "a" }; } -} +} \ No newline at end of file diff --git a/zotan.pw-web/database/Database.cs b/zotan.pw-web/database/Database.cs index 73a4769..08a1666 100644 --- a/zotan.pw-web/database/Database.cs +++ b/zotan.pw-web/database/Database.cs @@ -27,8 +27,8 @@ public class Database { public class DbConn : DataConnection { public DbConn() : base("db") { } public ITable DbInfo => this.GetTable(); - public ITable TravelynxInfo => this.GetTable(); + public ITable TravelynxInfo => this.GetTable(); public ITable AlbumHistory => this.GetTable(); public ITable PlaylistHistory => this.GetTable(); } -} +} \ No newline at end of file diff --git a/zotan.pw-web/database/Tables/AlbumHistory.cs b/zotan.pw-web/database/Tables/AlbumHistory.cs index 02da010..955b556 100644 --- a/zotan.pw-web/database/Tables/AlbumHistory.cs +++ b/zotan.pw-web/database/Tables/AlbumHistory.cs @@ -1,4 +1,5 @@ using LinqToDB.Mapping; + #pragma warning disable CS8618 namespace zotanpw_web.database.Tables; diff --git a/zotan.pw-web/database/Tables/DbInfo.cs b/zotan.pw-web/database/Tables/DbInfo.cs index 2c2e60e..86eff1f 100644 --- a/zotan.pw-web/database/Tables/DbInfo.cs +++ b/zotan.pw-web/database/Tables/DbInfo.cs @@ -6,4 +6,4 @@ namespace zotanpw_web.database.Tables; public class DbInfo { [Column(Name = "ID"), PrimaryKey, Identity, NotNull] public int Id { get; set; } [Column(Name = "DbVer"), NotNull] public int DbVer { get; set; } -} +} \ No newline at end of file diff --git a/zotan.pw-web/database/Tables/PlaylistHistory.cs b/zotan.pw-web/database/Tables/PlaylistHistory.cs index da37741..b44768f 100644 --- a/zotan.pw-web/database/Tables/PlaylistHistory.cs +++ b/zotan.pw-web/database/Tables/PlaylistHistory.cs @@ -1,4 +1,5 @@ using LinqToDB.Mapping; + #pragma warning disable CS8618 namespace zotanpw_web.database.Tables; diff --git a/zotan.pw-web/wwwroot/files/help.svg b/zotan.pw-web/wwwroot/files/help.svg index 10067af..2d14a65 100644 --- a/zotan.pw-web/wwwroot/files/help.svg +++ b/zotan.pw-web/wwwroot/files/help.svg @@ -1,2421 +1,6758 @@ - - - - -image/svg+xml - - - - -fr2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + image/svg+xml + + + + + fr2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/zotan.pw-web/zotan.pw-web.csproj b/zotan.pw-web/zotan.pw-web.csproj index 50dabd6..e41927f 100644 --- a/zotan.pw-web/zotan.pw-web.csproj +++ b/zotan.pw-web/zotan.pw-web.csproj @@ -8,74 +8,74 @@ - <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-grid.css" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-grid.css.map" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-grid.min.css" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-grid.min.css.map" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-grid.rtl.css" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-grid.rtl.css.map" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-grid.rtl.min.css" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-grid.rtl.min.css.map" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-reboot.css" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-reboot.css.map" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-reboot.min.css" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-reboot.min.css.map" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-reboot.rtl.css" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-reboot.rtl.css.map" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-reboot.rtl.min.css" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-reboot.rtl.min.css.map" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-utilities.css" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-utilities.css.map" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-utilities.min.css" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-utilities.min.css.map" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-utilities.rtl.css" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-utilities.rtl.css.map" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-utilities.rtl.min.css" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-utilities.rtl.min.css.map" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap.css" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap.css.map" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap.min.css" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap.min.css.map" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap.rtl.css" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap.rtl.css.map" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap.rtl.min.css" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap.rtl.min.css.map" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\js\bootstrap.bundle.js" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\js\bootstrap.bundle.js.map" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\js\bootstrap.bundle.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\js\bootstrap.bundle.min.js.map" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\js\bootstrap.esm.js" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\js\bootstrap.esm.js.map" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\js\bootstrap.esm.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\js\bootstrap.esm.min.js.map" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\js\bootstrap.js" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\js\bootstrap.js.map" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\js\bootstrap.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\js\bootstrap.min.js.map" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\LICENSE" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\jquery-validation\dist\additional-methods.js" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\jquery-validation\dist\additional-methods.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\jquery-validation\dist\jquery.validate.js" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\jquery-validation\dist\jquery.validate.min.js" /> - <_ContentIncludedByDefault Remove="wwwroot\lib\jquery-validation\LICENSE.md" /> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-grid.css"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-grid.css.map"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-grid.min.css"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-grid.min.css.map"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-grid.rtl.css"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-grid.rtl.css.map"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-grid.rtl.min.css"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-grid.rtl.min.css.map"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-reboot.css"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-reboot.css.map"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-reboot.min.css"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-reboot.min.css.map"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-reboot.rtl.css"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-reboot.rtl.css.map"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-reboot.rtl.min.css"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-reboot.rtl.min.css.map"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-utilities.css"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-utilities.css.map"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-utilities.min.css"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-utilities.min.css.map"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-utilities.rtl.css"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-utilities.rtl.css.map"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-utilities.rtl.min.css"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap-utilities.rtl.min.css.map"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap.css"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap.css.map"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap.min.css"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap.min.css.map"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap.rtl.css"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap.rtl.css.map"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap.rtl.min.css"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\css\bootstrap.rtl.min.css.map"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\js\bootstrap.bundle.js"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\js\bootstrap.bundle.js.map"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\js\bootstrap.bundle.min.js"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\js\bootstrap.bundle.min.js.map"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\js\bootstrap.esm.js"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\js\bootstrap.esm.js.map"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\js\bootstrap.esm.min.js"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\js\bootstrap.esm.min.js.map"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\js\bootstrap.js"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\js\bootstrap.js.map"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\js\bootstrap.min.js"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\dist\js\bootstrap.min.js.map"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\bootstrap\LICENSE"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\jquery-validation\dist\additional-methods.js"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\jquery-validation\dist\additional-methods.min.js"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\jquery-validation\dist\jquery.validate.js"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\jquery-validation\dist\jquery.validate.min.js"/> + <_ContentIncludedByDefault Remove="wwwroot\lib\jquery-validation\LICENSE.md"/> - - - - - + + + + + - + - - - - - + + + + +