Compare commits
No commits in common. "2839a96c050a19dc638022243e4eb8633a8e879f" and "314a28bf8ff7028abdd8305908ee1062cbadf848" have entirely different histories.
2839a96c05
...
314a28bf8f
5
.gitignore
vendored
5
.gitignore
vendored
|
|
@ -1,5 +0,0 @@
|
|||
################################################################################
|
||||
# This .gitignore file was automatically created by Microsoft(R) Visual Studio.
|
||||
################################################################################
|
||||
|
||||
/.vs/CanRead.slnx/FileContentIndex/7fbc8a87-186b-4af6-b660-f4260ef6eeff.vsidx
|
||||
Binary file not shown.
Binary file not shown.
|
|
@ -1,31 +0,0 @@
|
|||
{
|
||||
"Version": 1,
|
||||
"WorkspaceRootPath": "C:\\Users\\Admin\\source\\repos\\CanRead\\",
|
||||
"Documents": [],
|
||||
"DocumentGroupContainers": [
|
||||
{
|
||||
"Orientation": 0,
|
||||
"VerticalTabListWidth": 256,
|
||||
"DocumentGroups": [
|
||||
{
|
||||
"DockedWidth": 200,
|
||||
"SelectedChildIndex": -1,
|
||||
"Children": [
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{1c64b9c2-e352-428e-a56d-0ace190b99a6}"
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{3ae79031-e1bc-11d0-8f78-00a0c9110057}"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
{
|
||||
"Version": 1,
|
||||
"WorkspaceRootPath": "C:\\Users\\Admin\\source\\repos\\CanRead\\",
|
||||
"Documents": [],
|
||||
"DocumentGroupContainers": [
|
||||
{
|
||||
"Orientation": 0,
|
||||
"VerticalTabListWidth": 256,
|
||||
"DocumentGroups": [
|
||||
{
|
||||
"DockedWidth": 200,
|
||||
"SelectedChildIndex": -1,
|
||||
"Children": [
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{1c64b9c2-e352-428e-a56d-0ace190b99a6}"
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{3ae79031-e1bc-11d0-8f78-00a0c9110057}"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Binary file not shown.
|
|
@ -1,8 +0,0 @@
|
|||
{
|
||||
"ExpandedNodes": [
|
||||
"",
|
||||
"\\BlazorApp",
|
||||
"\\BlazorApp\\bin\\Release\\net10.0"
|
||||
],
|
||||
"PreviewInSolutionExplorer": false
|
||||
}
|
||||
BIN
.vs/slnx.sqlite
BIN
.vs/slnx.sqlite
Binary file not shown.
|
|
@ -1,3 +0,0 @@
|
|||
<Solution>
|
||||
<Project Path="BlazorApp/BlazorApp.csproj" />
|
||||
</Solution>
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net10.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<BlazorDisableThrowNavigationException>true</BlazorDisableThrowNavigationException>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Peak.PCANBasic.NET" Version="4.10.1.968" />
|
||||
<PackageReference Include="SocketCANSharp" Version="0.13.0" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<ActiveDebugProfile>https</ActiveDebugProfile>
|
||||
<NameOfLastUsedPublishProfile>D:\CanRead\BlazorApp\BlazorApp\Properties\PublishProfiles\FolderProfile.pubxml</NameOfLastUsedPublishProfile>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<base href="/" />
|
||||
<ResourcePreloader />
|
||||
<link rel="stylesheet" href="@Assets["lib/bootstrap/dist/css/bootstrap.min.css"]" />
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap-icons/font/bootstrap-icons.css" rel="stylesheet">
|
||||
<link rel="stylesheet" href="@Assets["app.css"]" />
|
||||
<link rel="stylesheet" href="@Assets["BlazorApp.styles.css"]" />
|
||||
<ImportMap />
|
||||
<link rel="icon" type="image/png" href="favicon.png" />
|
||||
<HeadOutlet @rendermode="InteractiveServer" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<Routes @rendermode="InteractiveServer" />
|
||||
<ReconnectModal />
|
||||
<script src="@Assets["_framework/blazor.web.js"]"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
@inherits LayoutComponentBase
|
||||
|
||||
<div class="page">
|
||||
<div class="sidebar">
|
||||
<NavMenu />
|
||||
</div>
|
||||
|
||||
<main>
|
||||
<div class="top-row px-4">
|
||||
<a href="https://learn.microsoft.com/aspnet/core/" target="_blank">About</a>
|
||||
</div>
|
||||
|
||||
<article class="content px-4">
|
||||
@Body
|
||||
</article>
|
||||
</main>
|
||||
</div>
|
||||
|
||||
<div id="blazor-error-ui" data-nosnippet>
|
||||
An unhandled error has occurred.
|
||||
<a href="." class="reload">Reload</a>
|
||||
<span class="dismiss">🗙</span>
|
||||
</div>
|
||||
|
|
@ -1,98 +0,0 @@
|
|||
.page {
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
main {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.sidebar {
|
||||
background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%);
|
||||
}
|
||||
|
||||
.top-row {
|
||||
background-color: #f7f7f7;
|
||||
border-bottom: 1px solid #d6d5d5;
|
||||
justify-content: flex-end;
|
||||
height: 3.5rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.top-row ::deep a, .top-row ::deep .btn-link {
|
||||
white-space: nowrap;
|
||||
margin-left: 1.5rem;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.top-row ::deep a:hover, .top-row ::deep .btn-link:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.top-row ::deep a:first-child {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
@media (max-width: 640.98px) {
|
||||
.top-row {
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.top-row ::deep a, .top-row ::deep .btn-link {
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 641px) {
|
||||
.page {
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
.sidebar {
|
||||
width: 250px;
|
||||
height: 100vh;
|
||||
position: sticky;
|
||||
top: 0;
|
||||
}
|
||||
|
||||
.top-row {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.top-row.auth ::deep a:first-child {
|
||||
flex: 1;
|
||||
text-align: right;
|
||||
width: 0;
|
||||
}
|
||||
|
||||
.top-row, article {
|
||||
padding-left: 2rem !important;
|
||||
padding-right: 1.5rem !important;
|
||||
}
|
||||
}
|
||||
|
||||
#blazor-error-ui {
|
||||
color-scheme: light only;
|
||||
background: lightyellow;
|
||||
bottom: 0;
|
||||
box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
|
||||
box-sizing: border-box;
|
||||
display: none;
|
||||
left: 0;
|
||||
padding: 0.6rem 1.25rem 0.7rem 1.25rem;
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
#blazor-error-ui .dismiss {
|
||||
cursor: pointer;
|
||||
position: absolute;
|
||||
right: 0.75rem;
|
||||
top: 0.5rem;
|
||||
}
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
<div class="top-row ps-3 navbar navbar-dark">
|
||||
<div class="container-fluid">
|
||||
<a class="navbar-brand" href="">BlazorApp</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<input type="checkbox" title="Navigation menu" class="navbar-toggler" />
|
||||
|
||||
<div class="nav-scrollable" onclick="document.querySelector('.navbar-toggler').click()">
|
||||
<nav class="nav flex-column">
|
||||
<div class="nav-item px-3">
|
||||
<NavLink class="nav-link" href="" Match="NavLinkMatch.All">
|
||||
<span class="bi bi-house-door-fill-nav-menu" aria-hidden="true"></span> Home
|
||||
</NavLink>
|
||||
</div>
|
||||
<div class="nav-item px-3">
|
||||
<NavLink class="nav-link d-flex align-items-center" href="can">
|
||||
<span class="bi bi-book-half nav-icon"></span>
|
||||
<span>Can Read</span>
|
||||
</NavLink>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
|
|
@ -1,105 +0,0 @@
|
|||
.navbar-toggler {
|
||||
appearance: none;
|
||||
cursor: pointer;
|
||||
width: 3.5rem;
|
||||
height: 2.5rem;
|
||||
color: white;
|
||||
position: absolute;
|
||||
top: 0.5rem;
|
||||
right: 1rem;
|
||||
border: 1px solid rgba(255, 255, 255, 0.1);
|
||||
background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") no-repeat center/1.75rem rgba(255, 255, 255, 0.1);
|
||||
}
|
||||
|
||||
.navbar-toggler:checked {
|
||||
background-color: rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
|
||||
.top-row {
|
||||
min-height: 3.5rem;
|
||||
background-color: rgba(0,0,0,0.4);
|
||||
}
|
||||
|
||||
.navbar-brand {
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
|
||||
.bi {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
width: 1.25rem;
|
||||
height: 1.25rem;
|
||||
margin-right: 0.75rem;
|
||||
top: -1px;
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
.bi-house-door-fill-nav-menu {
|
||||
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-house-door-fill' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 14.5v-3.505c0-.245.25-.495.5-.495h2c.25 0 .5.25.5.5v3.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5Z'/%3E%3C/svg%3E");
|
||||
}
|
||||
|
||||
.bi-plus-square-fill-nav-menu {
|
||||
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-plus-square-fill' viewBox='0 0 16 16'%3E%3Cpath d='M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2zm6.5 4.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3a.5.5 0 0 1 1 0z'/%3E%3C/svg%3E");
|
||||
}
|
||||
|
||||
.bi-list-nested-nav-menu {
|
||||
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-list-nested' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M4.5 11.5A.5.5 0 0 1 5 11h10a.5.5 0 0 1 0 1H5a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 3 7h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 1 3h10a.5.5 0 0 1 0 1H1a.5.5 0 0 1-.5-.5z'/%3E%3C/svg%3E");
|
||||
}
|
||||
|
||||
.nav-item {
|
||||
font-size: 0.9rem;
|
||||
padding-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
.nav-item:first-of-type {
|
||||
padding-top: 1rem;
|
||||
}
|
||||
|
||||
.nav-item:last-of-type {
|
||||
padding-bottom: 1rem;
|
||||
}
|
||||
|
||||
.nav-item ::deep .nav-link {
|
||||
color: #d7d7d7;
|
||||
background: none;
|
||||
border: none;
|
||||
border-radius: 4px;
|
||||
height: 3rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
line-height: 3rem;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.nav-item ::deep a.active {
|
||||
background-color: rgba(255,255,255,0.37);
|
||||
color: white;
|
||||
}
|
||||
|
||||
.nav-item ::deep .nav-link:hover {
|
||||
background-color: rgba(255,255,255,0.1);
|
||||
color: white;
|
||||
}
|
||||
|
||||
.nav-scrollable {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.navbar-toggler:checked ~ .nav-scrollable {
|
||||
display: block;
|
||||
}
|
||||
|
||||
@media (min-width: 641px) {
|
||||
.navbar-toggler {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.nav-scrollable {
|
||||
/* Never collapse the sidebar for wide screens */
|
||||
display: block;
|
||||
|
||||
/* Allow sidebar to scroll for tall menus */
|
||||
height: calc(100vh - 3.5rem);
|
||||
overflow-y: auto;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
<script type="module" src="@Assets["Components/Layout/ReconnectModal.razor.js"]"></script>
|
||||
|
||||
<dialog id="components-reconnect-modal" data-nosnippet>
|
||||
<div class="components-reconnect-container">
|
||||
<div class="components-rejoining-animation" aria-hidden="true">
|
||||
<div></div>
|
||||
<div></div>
|
||||
</div>
|
||||
<p class="components-reconnect-first-attempt-visible">
|
||||
Rejoining the server...
|
||||
</p>
|
||||
<p class="components-reconnect-repeated-attempt-visible">
|
||||
Rejoin failed... trying again in <span id="components-seconds-to-next-attempt"></span> seconds.
|
||||
</p>
|
||||
<p class="components-reconnect-failed-visible">
|
||||
Failed to rejoin.<br />Please retry or reload the page.
|
||||
</p>
|
||||
<button id="components-reconnect-button" class="components-reconnect-failed-visible">
|
||||
Retry
|
||||
</button>
|
||||
<p class="components-pause-visible">
|
||||
The session has been paused by the server.
|
||||
</p>
|
||||
<button id="components-resume-button" class="components-pause-visible">
|
||||
Resume
|
||||
</button>
|
||||
<p class="components-resume-failed-visible">
|
||||
Failed to resume the session.<br />Please reload the page.
|
||||
</p>
|
||||
</div>
|
||||
</dialog>
|
||||
|
|
@ -1,157 +0,0 @@
|
|||
.components-reconnect-first-attempt-visible,
|
||||
.components-reconnect-repeated-attempt-visible,
|
||||
.components-reconnect-failed-visible,
|
||||
.components-pause-visible,
|
||||
.components-resume-failed-visible,
|
||||
.components-rejoining-animation {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible,
|
||||
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation,
|
||||
#components-reconnect-modal.components-reconnect-paused .components-pause-visible,
|
||||
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible,
|
||||
#components-reconnect-modal.components-reconnect-retrying,
|
||||
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible,
|
||||
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation,
|
||||
#components-reconnect-modal.components-reconnect-failed,
|
||||
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible {
|
||||
display: block;
|
||||
}
|
||||
|
||||
|
||||
#components-reconnect-modal {
|
||||
background-color: white;
|
||||
width: 20rem;
|
||||
margin: 20vh auto;
|
||||
padding: 2rem;
|
||||
border: 0;
|
||||
border-radius: 0.5rem;
|
||||
box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
|
||||
opacity: 0;
|
||||
transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
|
||||
animation: components-reconnect-modal-fadeOutOpacity 0.5s both;
|
||||
&[open]
|
||||
|
||||
{
|
||||
animation: components-reconnect-modal-slideUp 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity 0.5s ease-in-out 0.3s;
|
||||
animation-fill-mode: both;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#components-reconnect-modal::backdrop {
|
||||
background-color: rgba(0, 0, 0, 0.4);
|
||||
animation: components-reconnect-modal-fadeInOpacity 0.5s ease-in-out;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
@keyframes components-reconnect-modal-slideUp {
|
||||
0% {
|
||||
transform: translateY(30px) scale(0.95);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes components-reconnect-modal-fadeInOpacity {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes components-reconnect-modal-fadeOutOpacity {
|
||||
0% {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.components-reconnect-container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
gap: 1rem;
|
||||
}
|
||||
|
||||
#components-reconnect-modal p {
|
||||
margin: 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#components-reconnect-modal button {
|
||||
border: 0;
|
||||
background-color: #6b9ed2;
|
||||
color: white;
|
||||
padding: 4px 24px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
#components-reconnect-modal button:hover {
|
||||
background-color: #3b6ea2;
|
||||
}
|
||||
|
||||
#components-reconnect-modal button:active {
|
||||
background-color: #6b9ed2;
|
||||
}
|
||||
|
||||
.components-rejoining-animation {
|
||||
position: relative;
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
}
|
||||
|
||||
.components-rejoining-animation div {
|
||||
position: absolute;
|
||||
border: 3px solid #0087ff;
|
||||
opacity: 1;
|
||||
border-radius: 50%;
|
||||
animation: components-rejoining-animation 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
|
||||
}
|
||||
|
||||
.components-rejoining-animation div:nth-child(2) {
|
||||
animation-delay: -0.5s;
|
||||
}
|
||||
|
||||
@keyframes components-rejoining-animation {
|
||||
0% {
|
||||
top: 40px;
|
||||
left: 40px;
|
||||
width: 0;
|
||||
height: 0;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
4.9% {
|
||||
top: 40px;
|
||||
left: 40px;
|
||||
width: 0;
|
||||
height: 0;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
5% {
|
||||
top: 40px;
|
||||
left: 40px;
|
||||
width: 0;
|
||||
height: 0;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,63 +0,0 @@
|
|||
// Set up event handlers
|
||||
const reconnectModal = document.getElementById("components-reconnect-modal");
|
||||
reconnectModal.addEventListener("components-reconnect-state-changed", handleReconnectStateChanged);
|
||||
|
||||
const retryButton = document.getElementById("components-reconnect-button");
|
||||
retryButton.addEventListener("click", retry);
|
||||
|
||||
const resumeButton = document.getElementById("components-resume-button");
|
||||
resumeButton.addEventListener("click", resume);
|
||||
|
||||
function handleReconnectStateChanged(event) {
|
||||
if (event.detail.state === "show") {
|
||||
reconnectModal.showModal();
|
||||
} else if (event.detail.state === "hide") {
|
||||
reconnectModal.close();
|
||||
} else if (event.detail.state === "failed") {
|
||||
document.addEventListener("visibilitychange", retryWhenDocumentBecomesVisible);
|
||||
} else if (event.detail.state === "rejected") {
|
||||
location.reload();
|
||||
}
|
||||
}
|
||||
|
||||
async function retry() {
|
||||
document.removeEventListener("visibilitychange", retryWhenDocumentBecomesVisible);
|
||||
|
||||
try {
|
||||
// Reconnect will asynchronously return:
|
||||
// - true to mean success
|
||||
// - false to mean we reached the server, but it rejected the connection (e.g., unknown circuit ID)
|
||||
// - exception to mean we didn't reach the server (this can be sync or async)
|
||||
const successful = await Blazor.reconnect();
|
||||
if (!successful) {
|
||||
// We have been able to reach the server, but the circuit is no longer available.
|
||||
// We'll reload the page so the user can continue using the app as quickly as possible.
|
||||
const resumeSuccessful = await Blazor.resumeCircuit();
|
||||
if (!resumeSuccessful) {
|
||||
location.reload();
|
||||
} else {
|
||||
reconnectModal.close();
|
||||
}
|
||||
}
|
||||
} catch (err) {
|
||||
// We got an exception, server is currently unavailable
|
||||
document.addEventListener("visibilitychange", retryWhenDocumentBecomesVisible);
|
||||
}
|
||||
}
|
||||
|
||||
async function resume() {
|
||||
try {
|
||||
const successful = await Blazor.resumeCircuit();
|
||||
if (!successful) {
|
||||
location.reload();
|
||||
}
|
||||
} catch {
|
||||
location.reload();
|
||||
}
|
||||
}
|
||||
|
||||
async function retryWhenDocumentBecomesVisible() {
|
||||
if (document.visibilityState === "visible") {
|
||||
await retry();
|
||||
}
|
||||
}
|
||||
|
|
@ -1,127 +0,0 @@
|
|||
@page "/can"
|
||||
@inject ICanService CanService
|
||||
@implements IDisposable
|
||||
|
||||
<div class="container mt-4">
|
||||
<div class="card shadow-sm">
|
||||
|
||||
<!-- HEADER -->
|
||||
<div class="card-header d-flex justify-content-between align-items-center">
|
||||
<h5 class="mb-0">CAN Monitor (Live View)</h5>
|
||||
|
||||
<div>
|
||||
<button class="btn btn-success btn-sm me-2"
|
||||
@onclick="Start"
|
||||
disabled="@isRunning">
|
||||
▶ Start
|
||||
</button>
|
||||
|
||||
<button class="btn btn-danger btn-sm"
|
||||
@onclick="Stop"
|
||||
disabled="@(!isRunning)">
|
||||
■ Stop
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- TABLE -->
|
||||
<div class="card-body p-0" style="max-height: 420px; overflow-y: auto;">
|
||||
<table class="table table-striped table-hover table-sm mb-0">
|
||||
<thead class="table-dark sticky-top">
|
||||
<tr>
|
||||
<th style="width:140px">Time</th>
|
||||
<th style="width:80px">CAN-ID</th>
|
||||
<th style="width:120px">Meaning</th>
|
||||
<th style="width:60px">Length</th>
|
||||
<th>Raw Data</th>
|
||||
<th style="width:200px">Result</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach (var msg in messages.Values.OrderBy(m => m.Id))
|
||||
{
|
||||
<tr>
|
||||
<td>@msg.Timestamp.ToString("HH:mm:ss.fff")</td>
|
||||
<td class="fw-bold text-primary">
|
||||
@msg.Id.ToString("X3")
|
||||
</td>
|
||||
<td>@msg.Meaning</td>
|
||||
<td>@msg.Length</td>
|
||||
<td class="font-monospace">
|
||||
@BitConverter.ToString(
|
||||
msg.Data.Take(msg.Length).ToArray())
|
||||
</td>
|
||||
<td class="fw-semibold">
|
||||
@msg.ValueText
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<!-- FOOTER -->
|
||||
<div class="card-footer text-muted small d-flex justify-content-between">
|
||||
<span>Total CAN IDs: <b>@messages.Count</b></span>
|
||||
<span>Status: <b>@status</b></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@code {
|
||||
// DATA STORAGE (1 ID = 1 ROW)
|
||||
private Dictionary<uint, CanMessage> messages = new();
|
||||
|
||||
private bool isRunning = false;
|
||||
private string status = "STOPPED";
|
||||
|
||||
// INIT
|
||||
protected override void OnInitialized()
|
||||
{
|
||||
CanService.OnMessageReceived += OnCanMessage;
|
||||
}
|
||||
|
||||
// RECEIVE CAN FRAME
|
||||
private void OnCanMessage(CanMessage msg)
|
||||
{
|
||||
InvokeAsync(() =>
|
||||
{
|
||||
// 🔴 Update data on the SAME row by CAN-ID
|
||||
messages[msg.Id] = msg;
|
||||
|
||||
StateHasChanged();
|
||||
});
|
||||
}
|
||||
|
||||
// START
|
||||
private async Task Start()
|
||||
{
|
||||
if (isRunning) return;
|
||||
|
||||
status = "INITIALIZING...";
|
||||
StateHasChanged();
|
||||
|
||||
await CanService.InitAsync(); // BẮT BUỘC
|
||||
CanService.StartStream();
|
||||
|
||||
isRunning = true;
|
||||
status = "RUNNING";
|
||||
}
|
||||
|
||||
// STOP
|
||||
private void Stop()
|
||||
{
|
||||
if (!isRunning) return;
|
||||
|
||||
CanService.StopStream();
|
||||
isRunning = false;
|
||||
status = "STOPPED";
|
||||
}
|
||||
|
||||
// CLEANUP
|
||||
public void Dispose()
|
||||
{
|
||||
CanService.OnMessageReceived -= OnCanMessage;
|
||||
CanService.StopStream();
|
||||
}
|
||||
}
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
@page "/counter"
|
||||
|
||||
<PageTitle>Counter</PageTitle>
|
||||
|
||||
<h1>Counter</h1>
|
||||
|
||||
<p role="status">Current count: @currentCount</p>
|
||||
|
||||
<button class="btn btn-primary" @onclick="IncrementCount">Click me</button>
|
||||
|
||||
@code {
|
||||
private int currentCount = 0;
|
||||
|
||||
private void IncrementCount()
|
||||
{
|
||||
currentCount++;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
@page "/Error"
|
||||
@using System.Diagnostics
|
||||
|
||||
<PageTitle>Error</PageTitle>
|
||||
|
||||
<h1 class="text-danger">Error.</h1>
|
||||
<h2 class="text-danger">An error occurred while processing your request.</h2>
|
||||
|
||||
@if (ShowRequestId)
|
||||
{
|
||||
<p>
|
||||
<strong>Request ID:</strong> <code>@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>
|
||||
|
||||
@code{
|
||||
[CascadingParameter]
|
||||
private HttpContext? HttpContext { get; set; }
|
||||
|
||||
private string? RequestId { get; set; }
|
||||
private bool ShowRequestId => !string.IsNullOrEmpty(RequestId);
|
||||
|
||||
protected override void OnInitialized() =>
|
||||
RequestId = Activity.Current?.Id ?? HttpContext?.TraceIdentifier;
|
||||
}
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
@page "/"
|
||||
|
||||
<PageTitle>Home</PageTitle>
|
||||
|
||||
<h1>Hello, world!</h1>
|
||||
|
||||
Welcome to your new app.
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
@page "/not-found"
|
||||
@layout MainLayout
|
||||
|
||||
<h3>Not Found</h3>
|
||||
<p>Sorry, the content you are looking for does not exist.</p>
|
||||
|
|
@ -1,63 +0,0 @@
|
|||
@page "/weather"
|
||||
|
||||
<PageTitle>Weather</PageTitle>
|
||||
|
||||
<h1>Weather</h1>
|
||||
|
||||
<p>This component demonstrates showing data.</p>
|
||||
|
||||
@if (forecasts == null)
|
||||
{
|
||||
<p><em>Loading...</em></p>
|
||||
}
|
||||
else
|
||||
{
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Date</th>
|
||||
<th aria-label="Temperature in Celsius">Temp. (C)</th>
|
||||
<th aria-label="Temperature in Fahrenheit">Temp. (F)</th>
|
||||
<th>Summary</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach (var forecast in forecasts)
|
||||
{
|
||||
<tr>
|
||||
<td>@forecast.Date.ToShortDateString()</td>
|
||||
<td>@forecast.TemperatureC</td>
|
||||
<td>@forecast.TemperatureF</td>
|
||||
<td>@forecast.Summary</td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
}
|
||||
|
||||
@code {
|
||||
private WeatherForecast[]? forecasts;
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
// Simulate asynchronous loading to demonstrate a loading indicator
|
||||
await Task.Delay(500);
|
||||
|
||||
var startDate = DateOnly.FromDateTime(DateTime.Now);
|
||||
var summaries = new[] { "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" };
|
||||
forecasts = Enumerable.Range(1, 5).Select(index => new WeatherForecast
|
||||
{
|
||||
Date = startDate.AddDays(index),
|
||||
TemperatureC = Random.Shared.Next(-20, 55),
|
||||
Summary = summaries[Random.Shared.Next(summaries.Length)]
|
||||
}).ToArray();
|
||||
}
|
||||
|
||||
private class WeatherForecast
|
||||
{
|
||||
public DateOnly Date { get; set; }
|
||||
public int TemperatureC { get; set; }
|
||||
public string? Summary { get; set; }
|
||||
public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
<Router AppAssembly="typeof(Program).Assembly" NotFoundPage="typeof(Pages.NotFound)">
|
||||
<Found Context="routeData">
|
||||
<RouteView RouteData="routeData" DefaultLayout="typeof(Layout.MainLayout)" />
|
||||
<FocusOnNavigate RouteData="routeData" Selector="h1" />
|
||||
</Found>
|
||||
</Router>
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
@using System.Net.Http
|
||||
@using System.Net.Http.Json
|
||||
@using Microsoft.AspNetCore.Components.Forms
|
||||
@using Microsoft.AspNetCore.Components.Routing
|
||||
@using Microsoft.AspNetCore.Components.Web
|
||||
@using static Microsoft.AspNetCore.Components.Web.RenderMode
|
||||
@using Microsoft.AspNetCore.Components.Web.Virtualization
|
||||
@using Microsoft.JSInterop
|
||||
@using BlazorApp
|
||||
@using BlazorApp.Components
|
||||
@using BlazorApp.Components.Layout
|
||||
@using BlazorApp.Models
|
||||
@using BlazorApp.Services
|
||||
@using BlazorApp.Services.Interfaces
|
||||
@using BlazorApp.Services.Windows
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
namespace BlazorApp.Models
|
||||
{
|
||||
public class CanMessage
|
||||
{
|
||||
public uint Id { get; set; }
|
||||
public byte Length { get; set; }
|
||||
public byte[] Data { get; set; } = new byte[8];
|
||||
public DateTime Timestamp { get; set; }
|
||||
|
||||
// ===== CANopen Info =====
|
||||
public string Meaning => CanopenDecoder.GetMeaning(Id);
|
||||
public string ValueText => CanopenDecoder.GetValue(Id, Data, Length);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1,50 +0,0 @@
|
|||
using BlazorApp.Models.Canopen.Eds;
|
||||
namespace BlazorApp.Models.Canopen
|
||||
{
|
||||
public static class CanopenDeviceRegistry
|
||||
{
|
||||
private static readonly Dictionary<int, ICanopenDeviceDecoder> _decoders
|
||||
= new();
|
||||
|
||||
static CanopenDeviceRegistry()
|
||||
{
|
||||
// 🔹 Ví dụ cấu hình từ EDS
|
||||
var encoderEds = new EdsDevice
|
||||
{
|
||||
NodeId = 5,
|
||||
DeviceName = "Encoder GXMMW",
|
||||
Tpdos =
|
||||
{
|
||||
[1] = new EdsTpdo
|
||||
{
|
||||
PdoIndex = 1,
|
||||
Objects =
|
||||
{
|
||||
new EdsObject
|
||||
{
|
||||
Index = 0x6004,
|
||||
Name = "Position",
|
||||
BitOffset = 0,
|
||||
BitLength = 32,
|
||||
Factor = 0.094,
|
||||
Unit = "mm"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Register(new EdsDeviceDecoder(encoderEds));
|
||||
}
|
||||
|
||||
public static void Register(ICanopenDeviceDecoder decoder)
|
||||
{
|
||||
_decoders[decoder.NodeId] = decoder;
|
||||
}
|
||||
public static ICanopenDeviceDecoder? GetDecoder(int nodeId)
|
||||
{
|
||||
return _decoders.TryGetValue(nodeId, out var d) ? d : null;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
namespace BlazorApp.Models.Canopen.Eds
|
||||
{
|
||||
public class EdsDevice
|
||||
{
|
||||
public int NodeId { get; set; }
|
||||
public string DeviceName { get; set; } = "";
|
||||
|
||||
public Dictionary<int, EdsTpdo> Tpdos { get; set; } = new();
|
||||
}
|
||||
}
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
using BlazorApp.Models.Canopen;
|
||||
using BlazorApp.Models.Canopen.Eds;
|
||||
namespace BlazorApp.Models.Canopen.Eds
|
||||
{
|
||||
public class EdsDeviceDecoder : ICanopenDeviceDecoder
|
||||
{
|
||||
private readonly EdsDevice _device;
|
||||
|
||||
public int NodeId => _device.NodeId;
|
||||
|
||||
public EdsDeviceDecoder(EdsDevice device)
|
||||
{
|
||||
_device = device;
|
||||
}
|
||||
|
||||
public string DecodeTpdo(int pdoIndex, byte[] data, byte length)
|
||||
{
|
||||
if (!_device.Tpdos.TryGetValue(pdoIndex, out var tpdo))
|
||||
return "-";
|
||||
|
||||
var results = new List<string>();
|
||||
|
||||
foreach (var obj in tpdo.Objects)
|
||||
{
|
||||
ulong raw = ReadBits(data, obj.BitOffset, obj.BitLength);
|
||||
double value = raw * obj.Factor;
|
||||
|
||||
results.Add($"{obj.Name}: {value:F2} {obj.Unit}");
|
||||
}
|
||||
|
||||
return string.Join(" | ", results);
|
||||
}
|
||||
|
||||
private static ulong ReadBits(byte[] data, int bitOffset, int bitLength)
|
||||
{
|
||||
ulong value = 0;
|
||||
int byteOffset = bitOffset / 8;
|
||||
|
||||
for (int i = 0; i < bitLength / 8; i++)
|
||||
{
|
||||
value |= (ulong)data[byteOffset + i] << (8 * i);
|
||||
}
|
||||
|
||||
return value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
namespace BlazorApp.Models.Canopen.Eds
|
||||
{
|
||||
public class EdsObject
|
||||
{
|
||||
public ushort Index { get; set; }
|
||||
public byte SubIndex { get; set; }
|
||||
public string Name { get; set; } = "";
|
||||
public double Factor { get; set; } = 1.0;
|
||||
public string Unit { get; set; } = "";
|
||||
public int BitOffset { get; set; }
|
||||
public int BitLength { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
namespace BlazorApp.Models.Canopen.Eds
|
||||
{
|
||||
public class EdsTpdo
|
||||
{
|
||||
public int PdoIndex { get; set; }
|
||||
public List<EdsObject> Objects { get; set; } = new();
|
||||
}
|
||||
}
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
using BlazorApp.Models;
|
||||
namespace BlazorApp.Models.Canopen
|
||||
{
|
||||
public interface ICanopenDeviceDecoder
|
||||
{
|
||||
int NodeId { get; }
|
||||
|
||||
string DecodeTpdo(int pdoIndex, byte[] data, byte length);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,56 +0,0 @@
|
|||
using BlazorApp.Models.Canopen;
|
||||
namespace BlazorApp.Models
|
||||
{
|
||||
public class CanopenDecoder
|
||||
{
|
||||
public static string GetMeaning(uint id)
|
||||
{
|
||||
if (id == 0x080) return "SYNC";
|
||||
|
||||
if (id >= 0x081 && id <= 0x0FF)
|
||||
return $"EMCY (Node {id - 0x080})";
|
||||
|
||||
if (id >= 0x700 && id <= 0x77F)
|
||||
return $"Heartbeat (Node {id - 0x700})";
|
||||
|
||||
if (id >= 0x180 && id <= 0x4FF)
|
||||
{
|
||||
int pdoIndex = (int)((id - 0x180) / 0x100) + 1;
|
||||
int nodeId = (int)(id - (0x180 + (pdoIndex - 1) * 0x100));
|
||||
return $"TPDO{pdoIndex} (Node {nodeId})";
|
||||
}
|
||||
|
||||
return "Unknown";
|
||||
}
|
||||
|
||||
public static string GetValue(uint id, byte[] data, byte length)
|
||||
{
|
||||
if (id >= 0x180 && id <= 0x4FF)
|
||||
{
|
||||
int pdoIndex = (int)((id - 0x180) / 0x100) + 1;
|
||||
int nodeId = (int)(id - (0x180 + (pdoIndex - 1) * 0x100));
|
||||
|
||||
var decoder = CanopenDeviceRegistry.GetDecoder(nodeId);
|
||||
if (decoder != null)
|
||||
return decoder.DecodeTpdo(pdoIndex, data, length);
|
||||
}
|
||||
|
||||
if (id >= 0x700 && id <= 0x77F && length >= 1)
|
||||
return DecodeNmtState(data[0]);
|
||||
|
||||
return "No Error";
|
||||
}
|
||||
|
||||
private static string DecodeNmtState(byte value)
|
||||
{
|
||||
return value switch
|
||||
{
|
||||
0x00 => "Boot-up",
|
||||
0x04 => "Stopped",
|
||||
0x05 => "Operational",
|
||||
0x7F => "Pre-operational",
|
||||
_ => $"Unknown (0x{value:X2})"
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
using BlazorApp.Components;
|
||||
using BlazorApp.Services.Interfaces;
|
||||
using BlazorApp.Services.Windows;
|
||||
|
||||
var builder = WebApplication.CreateBuilder(args);
|
||||
|
||||
// Add services to the container.
|
||||
if (OperatingSystem.IsWindows())
|
||||
{
|
||||
builder.Services.AddSingleton<ICanService, PcanCanService>();
|
||||
}
|
||||
builder.Services.AddRazorComponents()
|
||||
.AddInteractiveServerComponents();
|
||||
|
||||
var app = builder.Build();
|
||||
|
||||
// Configure the HTTP request pipeline.
|
||||
if (!app.Environment.IsDevelopment())
|
||||
{
|
||||
app.UseExceptionHandler("/Error", createScopeForErrors: true);
|
||||
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
|
||||
app.UseHsts();
|
||||
}
|
||||
app.UseStatusCodePagesWithReExecute("/not-found", createScopeForStatusCodePages: true);
|
||||
app.UseHttpsRedirection();
|
||||
|
||||
app.UseAntiforgery();
|
||||
|
||||
app.MapStaticAssets();
|
||||
app.MapRazorComponents<App>()
|
||||
.AddInteractiveServerRenderMode();
|
||||
|
||||
app.Run();
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- https://go.microsoft.com/fwlink/?LinkID=208121. -->
|
||||
<Project>
|
||||
<PropertyGroup>
|
||||
<DeleteExistingFiles>false</DeleteExistingFiles>
|
||||
<ExcludeApp_Data>false</ExcludeApp_Data>
|
||||
<LaunchSiteAfterPublish>true</LaunchSiteAfterPublish>
|
||||
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
|
||||
<LastUsedPlatform>Any CPU</LastUsedPlatform>
|
||||
<PublishProvider>FileSystem</PublishProvider>
|
||||
<PublishUrl>D:\CanRead\BlazorApp\publish\</PublishUrl>
|
||||
<WebPublishMethod>FileSystem</WebPublishMethod>
|
||||
<_TargetId>Folder</_TargetId>
|
||||
<SiteUrlToLaunchAfterPublish />
|
||||
<TargetFramework>net10.0</TargetFramework>
|
||||
<RuntimeIdentifier>linux-x64</RuntimeIdentifier>
|
||||
<ProjectGuid>d120649d-2906-09dd-7896-0626a755fff4</ProjectGuid>
|
||||
<SelfContained>false</SelfContained>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- https://go.microsoft.com/fwlink/?LinkID=208121. -->
|
||||
<Project>
|
||||
<PropertyGroup>
|
||||
<_PublishTargetUrl>D:\CanRead\BlazorApp\publish\</_PublishTargetUrl>
|
||||
<History>True|2026-01-14T02:29:51.0511608Z||;True|2026-01-13T14:26:13.6767019+07:00||;True|2026-01-13T09:37:31.0751103+07:00||;</History>
|
||||
<LastFailureDetails />
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
{
|
||||
"$schema": "https://json.schemastore.org/launchsettings.json",
|
||||
"profiles": {
|
||||
"http": {
|
||||
"commandName": "Project",
|
||||
"dotnetRunMessages": true,
|
||||
"launchBrowser": true,
|
||||
"applicationUrl": "http://localhost:5119",
|
||||
"environmentVariables": {
|
||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||
}
|
||||
},
|
||||
"https": {
|
||||
"commandName": "Project",
|
||||
"dotnetRunMessages": true,
|
||||
"launchBrowser": true,
|
||||
"applicationUrl": "https://localhost:7122;http://localhost:5119",
|
||||
"environmentVariables": {
|
||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
using BlazorApp.Models;
|
||||
|
||||
namespace BlazorApp.Services.Interfaces
|
||||
{
|
||||
public interface ICanService
|
||||
{
|
||||
Task InitAsync();
|
||||
Task<List<CanMessage>> ReadAsync();
|
||||
|
||||
// STREAM
|
||||
event Action<CanMessage>? OnMessageReceived;
|
||||
void StartStream();
|
||||
void StopStream();
|
||||
}
|
||||
}
|
||||
|
|
@ -1,94 +0,0 @@
|
|||
using BlazorApp.Models;
|
||||
using BlazorApp.Services.Interfaces;
|
||||
using Peak.Can.Basic.BackwardCompatibility;
|
||||
|
||||
namespace BlazorApp.Services.Windows
|
||||
{
|
||||
public class PcanCanService : ICanService, IDisposable
|
||||
{
|
||||
private const ushort PCAN_USBBUS1 = 0x51;
|
||||
private CancellationTokenSource? _cts;
|
||||
private bool _initialized;
|
||||
public event Action<CanMessage>? OnMessageReceived;
|
||||
|
||||
public Task InitAsync()
|
||||
{
|
||||
if (_initialized) return Task.CompletedTask;
|
||||
|
||||
var status = PCANBasic.Initialize(
|
||||
PCAN_USBBUS1,
|
||||
TPCANBaudrate.PCAN_BAUD_250K
|
||||
);
|
||||
|
||||
if (status != TPCANStatus.PCAN_ERROR_OK)
|
||||
throw new Exception($"PCAN init failed: {status}");
|
||||
|
||||
_initialized = true;
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
public Task<List<CanMessage>> ReadAsync()
|
||||
{
|
||||
var list = new List<CanMessage>();
|
||||
TPCANMsg msg;
|
||||
TPCANTimestamp ts;
|
||||
|
||||
if (PCANBasic.Read(PCAN_USBBUS1, out msg, out ts)
|
||||
== TPCANStatus.PCAN_ERROR_OK)
|
||||
{
|
||||
list.Add(Map(msg));
|
||||
}
|
||||
|
||||
return Task.FromResult(list);
|
||||
}
|
||||
|
||||
public void StartStream()
|
||||
{
|
||||
if (_cts != null) return;
|
||||
|
||||
_cts = new CancellationTokenSource();
|
||||
|
||||
Task.Run(() =>
|
||||
{
|
||||
while (!_cts.IsCancellationRequested)
|
||||
{
|
||||
TPCANMsg msg;
|
||||
TPCANTimestamp ts;
|
||||
|
||||
var result = PCANBasic.Read(
|
||||
PCAN_USBBUS1,
|
||||
out msg,
|
||||
out ts
|
||||
);
|
||||
|
||||
if (result == TPCANStatus.PCAN_ERROR_OK)
|
||||
OnMessageReceived?.Invoke(Map(msg));
|
||||
else
|
||||
Thread.Sleep(1);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void StopStream()
|
||||
{
|
||||
_cts?.Cancel();
|
||||
_cts = null;
|
||||
|
||||
if (_initialized)
|
||||
{
|
||||
PCANBasic.Uninitialize(PCAN_USBBUS1);
|
||||
_initialized = false;
|
||||
}
|
||||
}
|
||||
|
||||
private static CanMessage Map(TPCANMsg msg) => new()
|
||||
{
|
||||
Id = msg.ID,
|
||||
Length = msg.LEN,
|
||||
Data = msg.DATA,
|
||||
Timestamp = DateTime.Now
|
||||
};
|
||||
|
||||
public void Dispose() => StopStream();
|
||||
}
|
||||
}
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
{
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Information",
|
||||
"Microsoft.AspNetCore": "Warning"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
{
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Information",
|
||||
"Microsoft.AspNetCore": "Warning"
|
||||
}
|
||||
},
|
||||
"AllowedHosts": "*"
|
||||
}
|
||||
|
|
@ -1,57 +0,0 @@
|
|||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v10.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v10.0": {
|
||||
"BlazorApp/1.0.0": {
|
||||
"dependencies": {
|
||||
"Peak.PCANBasic.NET": "4.10.1.968",
|
||||
"SocketCANSharp": "0.13.0"
|
||||
},
|
||||
"runtime": {
|
||||
"BlazorApp.dll": {}
|
||||
}
|
||||
},
|
||||
"Peak.PCANBasic.NET/4.10.1.968": {
|
||||
"runtime": {
|
||||
"lib/netstandard2.0/PCANBasic.NET.dll": {
|
||||
"assemblyVersion": "4.10.1.968",
|
||||
"fileVersion": "4.10.1.968"
|
||||
}
|
||||
}
|
||||
},
|
||||
"SocketCANSharp/0.13.0": {
|
||||
"runtime": {
|
||||
"lib/netstandard2.0/SocketCANSharp.dll": {
|
||||
"assemblyVersion": "0.13.0.0",
|
||||
"fileVersion": "0.13.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"BlazorApp/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"Peak.PCANBasic.NET/4.10.1.968": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-sUxW8dhaIB+x7XFcpepad1DaD1N5a9l6qB2cyOgDCv7M+SmF87hOIK/EsT42Th92exA02PfCr6+ilnZ0XYeyrg==",
|
||||
"path": "peak.pcanbasic.net/4.10.1.968",
|
||||
"hashPath": "peak.pcanbasic.net.4.10.1.968.nupkg.sha512"
|
||||
},
|
||||
"SocketCANSharp/0.13.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-71mLS40IMpnyWeKf0zeWKGlgO6lkll36DdhKmsJ9z/SGnENcq/8XhOYFgLKJ8Wbs2a4WaFelmlz8cKBU82lWyA==",
|
||||
"path": "socketcansharp/0.13.0",
|
||||
"hashPath": "socketcansharp.0.13.0.nupkg.sha512"
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -1,20 +0,0 @@
|
|||
{
|
||||
"runtimeOptions": {
|
||||
"tfm": "net10.0",
|
||||
"frameworks": [
|
||||
{
|
||||
"name": "Microsoft.NETCore.App",
|
||||
"version": "10.0.0"
|
||||
},
|
||||
{
|
||||
"name": "Microsoft.AspNetCore.App",
|
||||
"version": "10.0.0"
|
||||
}
|
||||
],
|
||||
"configProperties": {
|
||||
"System.GC.Server": true,
|
||||
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false,
|
||||
"Microsoft.AspNetCore.Components.Endpoints.NavigationManager.DisableThrowNavigationException": true
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
|
|
@ -1,57 +0,0 @@
|
|||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v10.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v10.0": {
|
||||
"BlazorApp/1.0.0": {
|
||||
"dependencies": {
|
||||
"Peak.PCANBasic.NET": "4.10.1.968",
|
||||
"SocketCANSharp": "0.13.0"
|
||||
},
|
||||
"runtime": {
|
||||
"BlazorApp.dll": {}
|
||||
}
|
||||
},
|
||||
"Peak.PCANBasic.NET/4.10.1.968": {
|
||||
"runtime": {
|
||||
"lib/netstandard2.0/PCANBasic.NET.dll": {
|
||||
"assemblyVersion": "4.10.1.968",
|
||||
"fileVersion": "4.10.1.968"
|
||||
}
|
||||
}
|
||||
},
|
||||
"SocketCANSharp/0.13.0": {
|
||||
"runtime": {
|
||||
"lib/netstandard2.0/SocketCANSharp.dll": {
|
||||
"assemblyVersion": "0.13.0.0",
|
||||
"fileVersion": "0.13.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"BlazorApp/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"Peak.PCANBasic.NET/4.10.1.968": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-sUxW8dhaIB+x7XFcpepad1DaD1N5a9l6qB2cyOgDCv7M+SmF87hOIK/EsT42Th92exA02PfCr6+ilnZ0XYeyrg==",
|
||||
"path": "peak.pcanbasic.net/4.10.1.968",
|
||||
"hashPath": "peak.pcanbasic.net.4.10.1.968.nupkg.sha512"
|
||||
},
|
||||
"SocketCANSharp/0.13.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-71mLS40IMpnyWeKf0zeWKGlgO6lkll36DdhKmsJ9z/SGnENcq/8XhOYFgLKJ8Wbs2a4WaFelmlz8cKBU82lWyA==",
|
||||
"path": "socketcansharp/0.13.0",
|
||||
"hashPath": "socketcansharp.0.13.0.nupkg.sha512"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
{
|
||||
"runtimeOptions": {
|
||||
"tfm": "net10.0",
|
||||
"frameworks": [
|
||||
{
|
||||
"name": "Microsoft.NETCore.App",
|
||||
"version": "10.0.0"
|
||||
},
|
||||
{
|
||||
"name": "Microsoft.AspNetCore.App",
|
||||
"version": "10.0.0"
|
||||
}
|
||||
],
|
||||
"configProperties": {
|
||||
"System.GC.Server": true,
|
||||
"System.Reflection.Metadata.MetadataUpdater.IsSupported": false,
|
||||
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false,
|
||||
"Microsoft.AspNetCore.Components.Endpoints.NavigationManager.DisableThrowNavigationException": true
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -1,8 +0,0 @@
|
|||
{
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Information",
|
||||
"Microsoft.AspNetCore": "Warning"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
{
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Information",
|
||||
"Microsoft.AspNetCore": "Warning"
|
||||
}
|
||||
},
|
||||
"AllowedHosts": "*"
|
||||
}
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<location path="." inheritInChildApplications="false">
|
||||
<system.webServer>
|
||||
<handlers>
|
||||
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
|
||||
</handlers>
|
||||
<aspNetCore processPath="dotnet" arguments=".\BlazorApp.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
|
||||
</system.webServer>
|
||||
</location>
|
||||
</configuration>
|
||||
Binary file not shown.
|
|
@ -1,8 +0,0 @@
|
|||
{
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Information",
|
||||
"Microsoft.AspNetCore": "Warning"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
{
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Information",
|
||||
"Microsoft.AspNetCore": "Warning"
|
||||
}
|
||||
},
|
||||
"AllowedHosts": "*"
|
||||
}
|
||||
|
|
@ -1,506 +0,0 @@
|
|||
{
|
||||
"format": 1,
|
||||
"restore": {
|
||||
"C:\\Users\\Admin\\source\\repos\\CanRead\\BlazorApp\\BlazorApp.csproj": {}
|
||||
},
|
||||
"projects": {
|
||||
"C:\\Users\\Admin\\source\\repos\\CanRead\\BlazorApp\\BlazorApp.csproj": {
|
||||
"version": "1.0.0",
|
||||
"restore": {
|
||||
"projectUniqueName": "C:\\Users\\Admin\\source\\repos\\CanRead\\BlazorApp\\BlazorApp.csproj",
|
||||
"projectName": "BlazorApp",
|
||||
"projectPath": "C:\\Users\\Admin\\source\\repos\\CanRead\\BlazorApp\\BlazorApp.csproj",
|
||||
"packagesPath": "C:\\Users\\Admin\\.nuget\\packages\\",
|
||||
"outputPath": "C:\\Users\\Admin\\source\\repos\\CanRead\\BlazorApp\\obj\\",
|
||||
"projectStyle": "PackageReference",
|
||||
"fallbackFolders": [
|
||||
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
|
||||
],
|
||||
"configFilePaths": [
|
||||
"C:\\Users\\Admin\\AppData\\Roaming\\NuGet\\NuGet.Config",
|
||||
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
|
||||
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
|
||||
],
|
||||
"originalTargetFrameworks": [
|
||||
"net10.0"
|
||||
],
|
||||
"sources": {
|
||||
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
|
||||
"https://api.nuget.org/v3/index.json": {}
|
||||
},
|
||||
"frameworks": {
|
||||
"net10.0": {
|
||||
"targetAlias": "net10.0",
|
||||
"projectReferences": {}
|
||||
}
|
||||
},
|
||||
"warningProperties": {
|
||||
"warnAsError": [
|
||||
"NU1605"
|
||||
]
|
||||
},
|
||||
"restoreAuditProperties": {
|
||||
"enableAudit": "true",
|
||||
"auditLevel": "low",
|
||||
"auditMode": "all"
|
||||
},
|
||||
"SdkAnalysisLevel": "10.0.100"
|
||||
},
|
||||
"frameworks": {
|
||||
"net10.0": {
|
||||
"targetAlias": "net10.0",
|
||||
"dependencies": {
|
||||
"Microsoft.AspNetCore.App.Internal.Assets": {
|
||||
"suppressParent": "All",
|
||||
"target": "Package",
|
||||
"version": "[10.0.1, )",
|
||||
"autoReferenced": true
|
||||
},
|
||||
"Peak.PCANBasic.NET": {
|
||||
"target": "Package",
|
||||
"version": "[4.10.1.968, )"
|
||||
},
|
||||
"SocketCANSharp": {
|
||||
"target": "Package",
|
||||
"version": "[0.13.0, )"
|
||||
}
|
||||
},
|
||||
"imports": [
|
||||
"net461",
|
||||
"net462",
|
||||
"net47",
|
||||
"net471",
|
||||
"net472",
|
||||
"net48",
|
||||
"net481"
|
||||
],
|
||||
"assetTargetFallback": true,
|
||||
"warn": true,
|
||||
"frameworkReferences": {
|
||||
"Microsoft.AspNetCore.App": {
|
||||
"privateAssets": "none"
|
||||
},
|
||||
"Microsoft.NETCore.App": {
|
||||
"privateAssets": "all"
|
||||
}
|
||||
},
|
||||
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\10.0.101/PortableRuntimeIdentifierGraph.json",
|
||||
"packagesToPrune": {
|
||||
"Microsoft.AspNetCore": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Antiforgery": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.App": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Authentication": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Authentication.Abstractions": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Authentication.BearerToken": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Authentication.Cookies": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Authentication.Core": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Authentication.OAuth": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Authorization": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Authorization.Policy": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Components": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Components.Authorization": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Components.Endpoints": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Components.Forms": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Components.Server": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Components.Web": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Connections.Abstractions": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.CookiePolicy": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Cors": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Cryptography.Internal": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Cryptography.KeyDerivation": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.DataProtection": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.DataProtection.Abstractions": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.DataProtection.Extensions": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Diagnostics": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Diagnostics.Abstractions": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Diagnostics.HealthChecks": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.HostFiltering": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Hosting": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Hosting.Abstractions": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Hosting.Server.Abstractions": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Html.Abstractions": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Http": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Http.Abstractions": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Http.Connections": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Http.Connections.Common": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Http.Extensions": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Http.Features": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Http.Results": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.HttpLogging": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.HttpOverrides": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.HttpsPolicy": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Identity": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Localization": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Localization.Routing": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Metadata": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Mvc": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Mvc.Abstractions": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Mvc.ApiExplorer": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Mvc.Core": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Mvc.Cors": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Mvc.DataAnnotations": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Mvc.Formatters.Json": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Mvc.Formatters.Xml": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Mvc.Localization": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Mvc.Razor": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Mvc.RazorPages": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Mvc.TagHelpers": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Mvc.ViewFeatures": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.OutputCaching": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.RateLimiting": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Razor": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Razor.Runtime": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.RequestDecompression": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.ResponseCaching": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.ResponseCaching.Abstractions": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.ResponseCompression": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Rewrite": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Routing": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Routing.Abstractions": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Server.HttpSys": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Server.IIS": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Server.IISIntegration": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Server.Kestrel": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Server.Kestrel.Core": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Server.Kestrel.Transport.Quic": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.Session": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.SignalR": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.SignalR.Common": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.SignalR.Core": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.SignalR.Protocols.Json": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.StaticAssets": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.StaticFiles": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.WebSockets": "(,10.0.32767]",
|
||||
"Microsoft.AspNetCore.WebUtilities": "(,10.0.32767]",
|
||||
"Microsoft.CSharp": "(,4.7.32767]",
|
||||
"Microsoft.Extensions.Caching.Abstractions": "(,10.0.32767]",
|
||||
"Microsoft.Extensions.Caching.Memory": "(,10.0.32767]",
|
||||
"Microsoft.Extensions.Configuration": "(,10.0.32767]",
|
||||
"Microsoft.Extensions.Configuration.Abstractions": "(,10.0.32767]",
|
||||
"Microsoft.Extensions.Configuration.Binder": "(,10.0.32767]",
|
||||
"Microsoft.Extensions.Configuration.CommandLine": "(,10.0.32767]",
|
||||
"Microsoft.Extensions.Configuration.EnvironmentVariables": "(,10.0.32767]",
|
||||
"Microsoft.Extensions.Configuration.FileExtensions": "(,10.0.32767]",
|
||||
"Microsoft.Extensions.Configuration.Ini": "(,10.0.32767]",
|
||||
"Microsoft.Extensions.Configuration.Json": "(,10.0.32767]",
|
||||
"Microsoft.Extensions.Configuration.KeyPerFile": "(,10.0.32767]",
|
||||
"Microsoft.Extensions.Configuration.UserSecrets": "(,10.0.32767]",
|
||||
"Microsoft.Extensions.Configuration.Xml": "(,10.0.32767]",
|
||||
"Microsoft.Extensions.DependencyInjection": "(,10.0.32767]",
|
||||
"Microsoft.Extensions.DependencyInjection.Abstractions": "(,10.0.32767]",
|
||||
"Microsoft.Extensions.Diagnostics": "(,10.0.32767]",
|
||||
"Microsoft.Extensions.Diagnostics.Abstractions": "(,10.0.32767]",
|
||||
"Microsoft.Extensions.Diagnostics.HealthChecks": "(,10.0.32767]",
|
||||
"Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": "(,10.0.32767]",
|
||||
"Microsoft.Extensions.Features": "(,10.0.32767]",
|
||||
"Microsoft.Extensions.FileProviders.Abstractions": "(,10.0.32767]",
|
||||
"Microsoft.Extensions.FileProviders.Composite": "(,10.0.32767]",
|
||||
"Microsoft.Extensions.FileProviders.Physical": "(,10.0.32767]",
|
||||
"Microsoft.Extensions.FileSystemGlobbing": "(,10.0.32767]",
|
||||
"Microsoft.Extensions.Hosting": "(,10.0.32767]",
|
||||
"Microsoft.Extensions.Hosting.Abstractions": "(,10.0.32767]",
|
||||
"Microsoft.Extensions.Http": "(,10.0.32767]",
|
||||
"Microsoft.Extensions.Identity.Core": "(,10.0.32767]",
|
||||
"Microsoft.Extensions.Identity.Stores": "(,10.0.32767]",
|
||||
"Microsoft.Extensions.Localization": "(,10.0.32767]",
|
||||
"Microsoft.Extensions.Localization.Abstractions": "(,10.0.32767]",
|
||||
"Microsoft.Extensions.Logging": "(,10.0.32767]",
|
||||
"Microsoft.Extensions.Logging.Abstractions": "(,10.0.32767]",
|
||||
"Microsoft.Extensions.Logging.Configuration": "(,10.0.32767]",
|
||||
"Microsoft.Extensions.Logging.Console": "(,10.0.32767]",
|
||||
"Microsoft.Extensions.Logging.Debug": "(,10.0.32767]",
|
||||
"Microsoft.Extensions.Logging.EventLog": "(,10.0.32767]",
|
||||
"Microsoft.Extensions.Logging.EventSource": "(,10.0.32767]",
|
||||
"Microsoft.Extensions.Logging.TraceSource": "(,10.0.32767]",
|
||||
"Microsoft.Extensions.ObjectPool": "(,10.0.32767]",
|
||||
"Microsoft.Extensions.Options": "(,10.0.32767]",
|
||||
"Microsoft.Extensions.Options.ConfigurationExtensions": "(,10.0.32767]",
|
||||
"Microsoft.Extensions.Options.DataAnnotations": "(,10.0.32767]",
|
||||
"Microsoft.Extensions.Primitives": "(,10.0.32767]",
|
||||
"Microsoft.Extensions.Validation": "(,10.0.32767]",
|
||||
"Microsoft.Extensions.WebEncoders": "(,10.0.32767]",
|
||||
"Microsoft.JSInterop": "(,10.0.32767]",
|
||||
"Microsoft.Net.Http.Headers": "(,10.0.32767]",
|
||||
"Microsoft.VisualBasic": "(,10.4.32767]",
|
||||
"Microsoft.Win32.Primitives": "(,4.3.32767]",
|
||||
"Microsoft.Win32.Registry": "(,5.0.32767]",
|
||||
"runtime.any.System.Collections": "(,4.3.32767]",
|
||||
"runtime.any.System.Diagnostics.Tools": "(,4.3.32767]",
|
||||
"runtime.any.System.Diagnostics.Tracing": "(,4.3.32767]",
|
||||
"runtime.any.System.Globalization": "(,4.3.32767]",
|
||||
"runtime.any.System.Globalization.Calendars": "(,4.3.32767]",
|
||||
"runtime.any.System.IO": "(,4.3.32767]",
|
||||
"runtime.any.System.Reflection": "(,4.3.32767]",
|
||||
"runtime.any.System.Reflection.Extensions": "(,4.3.32767]",
|
||||
"runtime.any.System.Reflection.Primitives": "(,4.3.32767]",
|
||||
"runtime.any.System.Resources.ResourceManager": "(,4.3.32767]",
|
||||
"runtime.any.System.Runtime": "(,4.3.32767]",
|
||||
"runtime.any.System.Runtime.Handles": "(,4.3.32767]",
|
||||
"runtime.any.System.Runtime.InteropServices": "(,4.3.32767]",
|
||||
"runtime.any.System.Text.Encoding": "(,4.3.32767]",
|
||||
"runtime.any.System.Text.Encoding.Extensions": "(,4.3.32767]",
|
||||
"runtime.any.System.Threading.Tasks": "(,4.3.32767]",
|
||||
"runtime.any.System.Threading.Timer": "(,4.3.32767]",
|
||||
"runtime.aot.System.Collections": "(,4.3.32767]",
|
||||
"runtime.aot.System.Diagnostics.Tools": "(,4.3.32767]",
|
||||
"runtime.aot.System.Diagnostics.Tracing": "(,4.3.32767]",
|
||||
"runtime.aot.System.Globalization": "(,4.3.32767]",
|
||||
"runtime.aot.System.Globalization.Calendars": "(,4.3.32767]",
|
||||
"runtime.aot.System.IO": "(,4.3.32767]",
|
||||
"runtime.aot.System.Reflection": "(,4.3.32767]",
|
||||
"runtime.aot.System.Reflection.Extensions": "(,4.3.32767]",
|
||||
"runtime.aot.System.Reflection.Primitives": "(,4.3.32767]",
|
||||
"runtime.aot.System.Resources.ResourceManager": "(,4.3.32767]",
|
||||
"runtime.aot.System.Runtime": "(,4.3.32767]",
|
||||
"runtime.aot.System.Runtime.Handles": "(,4.3.32767]",
|
||||
"runtime.aot.System.Runtime.InteropServices": "(,4.3.32767]",
|
||||
"runtime.aot.System.Text.Encoding": "(,4.3.32767]",
|
||||
"runtime.aot.System.Text.Encoding.Extensions": "(,4.3.32767]",
|
||||
"runtime.aot.System.Threading.Tasks": "(,4.3.32767]",
|
||||
"runtime.aot.System.Threading.Timer": "(,4.3.32767]",
|
||||
"runtime.debian.8-x64.runtime.native.System": "(,4.3.32767]",
|
||||
"runtime.debian.8-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||
"runtime.debian.8-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
|
||||
"runtime.debian.8-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
|
||||
"runtime.debian.8-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
|
||||
"runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
|
||||
"runtime.debian.9-x64.runtime.native.System": "(,4.3.32767]",
|
||||
"runtime.debian.9-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||
"runtime.debian.9-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
|
||||
"runtime.debian.9-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
|
||||
"runtime.fedora.23-x64.runtime.native.System": "(,4.3.32767]",
|
||||
"runtime.fedora.23-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||
"runtime.fedora.23-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
|
||||
"runtime.fedora.23-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
|
||||
"runtime.fedora.23-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
|
||||
"runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
|
||||
"runtime.fedora.24-x64.runtime.native.System": "(,4.3.32767]",
|
||||
"runtime.fedora.24-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||
"runtime.fedora.24-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
|
||||
"runtime.fedora.24-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
|
||||
"runtime.fedora.24-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
|
||||
"runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
|
||||
"runtime.fedora.27-x64.runtime.native.System": "(,4.3.32767]",
|
||||
"runtime.fedora.27-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||
"runtime.fedora.27-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
|
||||
"runtime.fedora.27-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
|
||||
"runtime.fedora.28-x64.runtime.native.System": "(,4.3.32767]",
|
||||
"runtime.fedora.28-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||
"runtime.fedora.28-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
|
||||
"runtime.fedora.28-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
|
||||
"runtime.opensuse.13.2-x64.runtime.native.System": "(,4.3.32767]",
|
||||
"runtime.opensuse.13.2-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||
"runtime.opensuse.13.2-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
|
||||
"runtime.opensuse.13.2-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
|
||||
"runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
|
||||
"runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
|
||||
"runtime.opensuse.42.1-x64.runtime.native.System": "(,4.3.32767]",
|
||||
"runtime.opensuse.42.1-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||
"runtime.opensuse.42.1-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
|
||||
"runtime.opensuse.42.1-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
|
||||
"runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
|
||||
"runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
|
||||
"runtime.opensuse.42.3-x64.runtime.native.System": "(,4.3.32767]",
|
||||
"runtime.opensuse.42.3-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||
"runtime.opensuse.42.3-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
|
||||
"runtime.opensuse.42.3-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
|
||||
"runtime.osx.10.10-x64.runtime.native.System": "(,4.3.32767]",
|
||||
"runtime.osx.10.10-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||
"runtime.osx.10.10-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
|
||||
"runtime.osx.10.10-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
|
||||
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
|
||||
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "(,4.3.32767]",
|
||||
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
|
||||
"runtime.rhel.7-x64.runtime.native.System": "(,4.3.32767]",
|
||||
"runtime.rhel.7-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||
"runtime.rhel.7-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
|
||||
"runtime.rhel.7-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
|
||||
"runtime.rhel.7-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
|
||||
"runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
|
||||
"runtime.ubuntu.14.04-x64.runtime.native.System": "(,4.3.32767]",
|
||||
"runtime.ubuntu.14.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||
"runtime.ubuntu.14.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
|
||||
"runtime.ubuntu.14.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
|
||||
"runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
|
||||
"runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
|
||||
"runtime.ubuntu.16.04-x64.runtime.native.System": "(,4.3.32767]",
|
||||
"runtime.ubuntu.16.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||
"runtime.ubuntu.16.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
|
||||
"runtime.ubuntu.16.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
|
||||
"runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
|
||||
"runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
|
||||
"runtime.ubuntu.16.10-x64.runtime.native.System": "(,4.3.32767]",
|
||||
"runtime.ubuntu.16.10-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||
"runtime.ubuntu.16.10-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
|
||||
"runtime.ubuntu.16.10-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
|
||||
"runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
|
||||
"runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
|
||||
"runtime.ubuntu.18.04-x64.runtime.native.System": "(,4.3.32767]",
|
||||
"runtime.ubuntu.18.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||
"runtime.ubuntu.18.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
|
||||
"runtime.ubuntu.18.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
|
||||
"runtime.unix.Microsoft.Win32.Primitives": "(,4.3.32767]",
|
||||
"runtime.unix.System.Console": "(,4.3.32767]",
|
||||
"runtime.unix.System.Diagnostics.Debug": "(,4.3.32767]",
|
||||
"runtime.unix.System.IO.FileSystem": "(,4.3.32767]",
|
||||
"runtime.unix.System.Net.Primitives": "(,4.3.32767]",
|
||||
"runtime.unix.System.Net.Sockets": "(,4.3.32767]",
|
||||
"runtime.unix.System.Private.Uri": "(,4.3.32767]",
|
||||
"runtime.unix.System.Runtime.Extensions": "(,4.3.32767]",
|
||||
"runtime.win.Microsoft.Win32.Primitives": "(,4.3.32767]",
|
||||
"runtime.win.System.Console": "(,4.3.32767]",
|
||||
"runtime.win.System.Diagnostics.Debug": "(,4.3.32767]",
|
||||
"runtime.win.System.IO.FileSystem": "(,4.3.32767]",
|
||||
"runtime.win.System.Net.Primitives": "(,4.3.32767]",
|
||||
"runtime.win.System.Net.Sockets": "(,4.3.32767]",
|
||||
"runtime.win.System.Runtime.Extensions": "(,4.3.32767]",
|
||||
"runtime.win10-arm-aot.runtime.native.System.IO.Compression": "(,4.0.32767]",
|
||||
"runtime.win10-arm64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||
"runtime.win10-x64-aot.runtime.native.System.IO.Compression": "(,4.0.32767]",
|
||||
"runtime.win10-x86-aot.runtime.native.System.IO.Compression": "(,4.0.32767]",
|
||||
"runtime.win7-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||
"runtime.win7-x86.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||
"runtime.win7.System.Private.Uri": "(,4.3.32767]",
|
||||
"runtime.win8-arm.runtime.native.System.IO.Compression": "(,4.3.32767]",
|
||||
"System.AppContext": "(,4.3.32767]",
|
||||
"System.Buffers": "(,5.0.32767]",
|
||||
"System.Collections": "(,4.3.32767]",
|
||||
"System.Collections.Concurrent": "(,4.3.32767]",
|
||||
"System.Collections.Immutable": "(,10.0.32767]",
|
||||
"System.Collections.NonGeneric": "(,4.3.32767]",
|
||||
"System.Collections.Specialized": "(,4.3.32767]",
|
||||
"System.ComponentModel": "(,4.3.32767]",
|
||||
"System.ComponentModel.Annotations": "(,4.3.32767]",
|
||||
"System.ComponentModel.EventBasedAsync": "(,4.3.32767]",
|
||||
"System.ComponentModel.Primitives": "(,4.3.32767]",
|
||||
"System.ComponentModel.TypeConverter": "(,4.3.32767]",
|
||||
"System.Console": "(,4.3.32767]",
|
||||
"System.Data.Common": "(,4.3.32767]",
|
||||
"System.Data.DataSetExtensions": "(,4.4.32767]",
|
||||
"System.Diagnostics.Contracts": "(,4.3.32767]",
|
||||
"System.Diagnostics.Debug": "(,4.3.32767]",
|
||||
"System.Diagnostics.DiagnosticSource": "(,10.0.32767]",
|
||||
"System.Diagnostics.EventLog": "(,10.0.32767]",
|
||||
"System.Diagnostics.FileVersionInfo": "(,4.3.32767]",
|
||||
"System.Diagnostics.Process": "(,4.3.32767]",
|
||||
"System.Diagnostics.StackTrace": "(,4.3.32767]",
|
||||
"System.Diagnostics.TextWriterTraceListener": "(,4.3.32767]",
|
||||
"System.Diagnostics.Tools": "(,4.3.32767]",
|
||||
"System.Diagnostics.TraceSource": "(,4.3.32767]",
|
||||
"System.Diagnostics.Tracing": "(,4.3.32767]",
|
||||
"System.Drawing.Primitives": "(,4.3.32767]",
|
||||
"System.Dynamic.Runtime": "(,4.3.32767]",
|
||||
"System.Formats.Asn1": "(,10.0.32767]",
|
||||
"System.Formats.Cbor": "(,10.0.32767]",
|
||||
"System.Formats.Tar": "(,10.0.32767]",
|
||||
"System.Globalization": "(,4.3.32767]",
|
||||
"System.Globalization.Calendars": "(,4.3.32767]",
|
||||
"System.Globalization.Extensions": "(,4.3.32767]",
|
||||
"System.IO": "(,4.3.32767]",
|
||||
"System.IO.Compression": "(,4.3.32767]",
|
||||
"System.IO.Compression.ZipFile": "(,4.3.32767]",
|
||||
"System.IO.FileSystem": "(,4.3.32767]",
|
||||
"System.IO.FileSystem.AccessControl": "(,4.4.32767]",
|
||||
"System.IO.FileSystem.DriveInfo": "(,4.3.32767]",
|
||||
"System.IO.FileSystem.Primitives": "(,4.3.32767]",
|
||||
"System.IO.FileSystem.Watcher": "(,4.3.32767]",
|
||||
"System.IO.IsolatedStorage": "(,4.3.32767]",
|
||||
"System.IO.MemoryMappedFiles": "(,4.3.32767]",
|
||||
"System.IO.Pipelines": "(,10.0.32767]",
|
||||
"System.IO.Pipes": "(,4.3.32767]",
|
||||
"System.IO.Pipes.AccessControl": "(,5.0.32767]",
|
||||
"System.IO.UnmanagedMemoryStream": "(,4.3.32767]",
|
||||
"System.Linq": "(,4.3.32767]",
|
||||
"System.Linq.AsyncEnumerable": "(,10.0.32767]",
|
||||
"System.Linq.Expressions": "(,4.3.32767]",
|
||||
"System.Linq.Parallel": "(,4.3.32767]",
|
||||
"System.Linq.Queryable": "(,4.3.32767]",
|
||||
"System.Memory": "(,5.0.32767]",
|
||||
"System.Net.Http": "(,4.3.32767]",
|
||||
"System.Net.Http.Json": "(,10.0.32767]",
|
||||
"System.Net.NameResolution": "(,4.3.32767]",
|
||||
"System.Net.NetworkInformation": "(,4.3.32767]",
|
||||
"System.Net.Ping": "(,4.3.32767]",
|
||||
"System.Net.Primitives": "(,4.3.32767]",
|
||||
"System.Net.Requests": "(,4.3.32767]",
|
||||
"System.Net.Security": "(,4.3.32767]",
|
||||
"System.Net.ServerSentEvents": "(,10.0.32767]",
|
||||
"System.Net.Sockets": "(,4.3.32767]",
|
||||
"System.Net.WebHeaderCollection": "(,4.3.32767]",
|
||||
"System.Net.WebSockets": "(,4.3.32767]",
|
||||
"System.Net.WebSockets.Client": "(,4.3.32767]",
|
||||
"System.Numerics.Vectors": "(,5.0.32767]",
|
||||
"System.ObjectModel": "(,4.3.32767]",
|
||||
"System.Private.DataContractSerialization": "(,4.3.32767]",
|
||||
"System.Private.Uri": "(,4.3.32767]",
|
||||
"System.Reflection": "(,4.3.32767]",
|
||||
"System.Reflection.DispatchProxy": "(,6.0.32767]",
|
||||
"System.Reflection.Emit": "(,4.7.32767]",
|
||||
"System.Reflection.Emit.ILGeneration": "(,4.7.32767]",
|
||||
"System.Reflection.Emit.Lightweight": "(,4.7.32767]",
|
||||
"System.Reflection.Extensions": "(,4.3.32767]",
|
||||
"System.Reflection.Metadata": "(,10.0.32767]",
|
||||
"System.Reflection.Primitives": "(,4.3.32767]",
|
||||
"System.Reflection.TypeExtensions": "(,4.3.32767]",
|
||||
"System.Resources.Reader": "(,4.3.32767]",
|
||||
"System.Resources.ResourceManager": "(,4.3.32767]",
|
||||
"System.Resources.Writer": "(,4.3.32767]",
|
||||
"System.Runtime": "(,4.3.32767]",
|
||||
"System.Runtime.CompilerServices.Unsafe": "(,7.0.32767]",
|
||||
"System.Runtime.CompilerServices.VisualC": "(,4.3.32767]",
|
||||
"System.Runtime.Extensions": "(,4.3.32767]",
|
||||
"System.Runtime.Handles": "(,4.3.32767]",
|
||||
"System.Runtime.InteropServices": "(,4.3.32767]",
|
||||
"System.Runtime.InteropServices.RuntimeInformation": "(,4.3.32767]",
|
||||
"System.Runtime.Loader": "(,4.3.32767]",
|
||||
"System.Runtime.Numerics": "(,4.3.32767]",
|
||||
"System.Runtime.Serialization.Formatters": "(,4.3.32767]",
|
||||
"System.Runtime.Serialization.Json": "(,4.3.32767]",
|
||||
"System.Runtime.Serialization.Primitives": "(,4.3.32767]",
|
||||
"System.Runtime.Serialization.Xml": "(,4.3.32767]",
|
||||
"System.Security.AccessControl": "(,6.0.32767]",
|
||||
"System.Security.Claims": "(,4.3.32767]",
|
||||
"System.Security.Cryptography.Algorithms": "(,4.3.32767]",
|
||||
"System.Security.Cryptography.Cng": "(,5.0.32767]",
|
||||
"System.Security.Cryptography.Csp": "(,4.3.32767]",
|
||||
"System.Security.Cryptography.Encoding": "(,4.3.32767]",
|
||||
"System.Security.Cryptography.OpenSsl": "(,5.0.32767]",
|
||||
"System.Security.Cryptography.Primitives": "(,4.3.32767]",
|
||||
"System.Security.Cryptography.X509Certificates": "(,4.3.32767]",
|
||||
"System.Security.Cryptography.Xml": "(,10.0.32767]",
|
||||
"System.Security.Principal": "(,4.3.32767]",
|
||||
"System.Security.Principal.Windows": "(,5.0.32767]",
|
||||
"System.Security.SecureString": "(,4.3.32767]",
|
||||
"System.Text.Encoding": "(,4.3.32767]",
|
||||
"System.Text.Encoding.CodePages": "(,10.0.32767]",
|
||||
"System.Text.Encoding.Extensions": "(,4.3.32767]",
|
||||
"System.Text.Encodings.Web": "(,10.0.32767]",
|
||||
"System.Text.Json": "(,10.0.32767]",
|
||||
"System.Text.RegularExpressions": "(,4.3.32767]",
|
||||
"System.Threading": "(,4.3.32767]",
|
||||
"System.Threading.AccessControl": "(,10.0.32767]",
|
||||
"System.Threading.Channels": "(,10.0.32767]",
|
||||
"System.Threading.Overlapped": "(,4.3.32767]",
|
||||
"System.Threading.RateLimiting": "(,10.0.32767]",
|
||||
"System.Threading.Tasks": "(,4.3.32767]",
|
||||
"System.Threading.Tasks.Dataflow": "(,10.0.32767]",
|
||||
"System.Threading.Tasks.Extensions": "(,5.0.32767]",
|
||||
"System.Threading.Tasks.Parallel": "(,4.3.32767]",
|
||||
"System.Threading.Thread": "(,4.3.32767]",
|
||||
"System.Threading.ThreadPool": "(,4.3.32767]",
|
||||
"System.Threading.Timer": "(,4.3.32767]",
|
||||
"System.ValueTuple": "(,4.5.32767]",
|
||||
"System.Xml.ReaderWriter": "(,4.3.32767]",
|
||||
"System.Xml.XDocument": "(,4.3.32767]",
|
||||
"System.Xml.XmlDocument": "(,4.3.32767]",
|
||||
"System.Xml.XmlSerializer": "(,4.3.32767]",
|
||||
"System.Xml.XPath": "(,4.3.32767]",
|
||||
"System.Xml.XPath.XDocument": "(,5.0.32767]"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
|
||||
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
|
||||
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
|
||||
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
|
||||
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\Admin\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders>
|
||||
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
|
||||
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">7.0.0</NuGetToolVersion>
|
||||
</PropertyGroup>
|
||||
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<SourceRoot Include="C:\Users\Admin\.nuget\packages\" />
|
||||
<SourceRoot Include="C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" />
|
||||
</ItemGroup>
|
||||
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<Import Project="$(NuGetPackageRoot)microsoft.aspnetcore.app.internal.assets\10.0.1\build\Microsoft.AspNetCore.App.Internal.Assets.props" Condition="Exists('$(NuGetPackageRoot)microsoft.aspnetcore.app.internal.assets\10.0.1\build\Microsoft.AspNetCore.App.Internal.Assets.props')" />
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<Import Project="$(NuGetPackageRoot)microsoft.aspnetcore.app.internal.assets\10.0.1\buildTransitive\Microsoft.AspNetCore.App.Internal.Assets.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.aspnetcore.app.internal.assets\10.0.1\buildTransitive\Microsoft.AspNetCore.App.Internal.Assets.targets')" />
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
// <autogenerated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v10.0", FrameworkDisplayName = ".NET 10.0")]
|
||||
|
|
@ -1 +0,0 @@
|
|||
[]
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("BlazorApp")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+314a28bf8ff7028abdd8305908ee1062cbadf848")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("BlazorApp")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("BlazorApp")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
|
||||
// Generated by the MSBuild WriteCodeFragment class.
|
||||
|
||||
|
|
@ -1 +0,0 @@
|
|||
8b3c00ab1ba2f661a2f6812224109506d90ffd56f94a6bb600073091fa8f61a0
|
||||
|
|
@ -1,71 +0,0 @@
|
|||
is_global = true
|
||||
build_property.TargetFramework = net10.0
|
||||
build_property.TargetFrameworkIdentifier = .NETCoreApp
|
||||
build_property.TargetFrameworkVersion = v10.0
|
||||
build_property.TargetPlatformMinVersion =
|
||||
build_property.UsingMicrosoftNETSdkWeb = true
|
||||
build_property.ProjectTypeGuids =
|
||||
build_property.InvariantGlobalization =
|
||||
build_property.PlatformNeutralAssembly =
|
||||
build_property.EnforceExtendedAnalyzerRules =
|
||||
build_property._SupportedPlatformList = Linux,macOS,Windows
|
||||
build_property.RootNamespace = BlazorApp
|
||||
build_property.RootNamespace = BlazorApp
|
||||
build_property.ProjectDir = C:\Users\Admin\source\repos\CanRead\BlazorApp\
|
||||
build_property.EnableComHosting =
|
||||
build_property.EnableGeneratedComInterfaceComImportInterop =
|
||||
build_property.RazorLangVersion = 9.0
|
||||
build_property.SupportLocalizedComponentNames =
|
||||
build_property.GenerateRazorMetadataSourceChecksumAttributes =
|
||||
build_property.MSBuildProjectDirectory = C:\Users\Admin\source\repos\CanRead\BlazorApp
|
||||
build_property._RazorSourceGeneratorDebug =
|
||||
build_property.EffectiveAnalysisLevelStyle = 10.0
|
||||
build_property.EnableCodeStyleSeverity =
|
||||
|
||||
[C:/Users/Admin/source/repos/CanRead/BlazorApp/Components/App.razor]
|
||||
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50c1xBcHAucmF6b3I=
|
||||
build_metadata.AdditionalFiles.CssScope =
|
||||
|
||||
[C:/Users/Admin/source/repos/CanRead/BlazorApp/Components/Pages/Can.razor]
|
||||
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50c1xQYWdlc1xDYW4ucmF6b3I=
|
||||
build_metadata.AdditionalFiles.CssScope =
|
||||
|
||||
[C:/Users/Admin/source/repos/CanRead/BlazorApp/Components/Pages/Counter.razor]
|
||||
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50c1xQYWdlc1xDb3VudGVyLnJhem9y
|
||||
build_metadata.AdditionalFiles.CssScope =
|
||||
|
||||
[C:/Users/Admin/source/repos/CanRead/BlazorApp/Components/Pages/Error.razor]
|
||||
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50c1xQYWdlc1xFcnJvci5yYXpvcg==
|
||||
build_metadata.AdditionalFiles.CssScope =
|
||||
|
||||
[C:/Users/Admin/source/repos/CanRead/BlazorApp/Components/Pages/Home.razor]
|
||||
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50c1xQYWdlc1xIb21lLnJhem9y
|
||||
build_metadata.AdditionalFiles.CssScope =
|
||||
|
||||
[C:/Users/Admin/source/repos/CanRead/BlazorApp/Components/Pages/NotFound.razor]
|
||||
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50c1xQYWdlc1xOb3RGb3VuZC5yYXpvcg==
|
||||
build_metadata.AdditionalFiles.CssScope =
|
||||
|
||||
[C:/Users/Admin/source/repos/CanRead/BlazorApp/Components/Pages/Weather.razor]
|
||||
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50c1xQYWdlc1xXZWF0aGVyLnJhem9y
|
||||
build_metadata.AdditionalFiles.CssScope =
|
||||
|
||||
[C:/Users/Admin/source/repos/CanRead/BlazorApp/Components/Routes.razor]
|
||||
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50c1xSb3V0ZXMucmF6b3I=
|
||||
build_metadata.AdditionalFiles.CssScope =
|
||||
|
||||
[C:/Users/Admin/source/repos/CanRead/BlazorApp/Components/_Imports.razor]
|
||||
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50c1xfSW1wb3J0cy5yYXpvcg==
|
||||
build_metadata.AdditionalFiles.CssScope =
|
||||
|
||||
[C:/Users/Admin/source/repos/CanRead/BlazorApp/Components/Layout/MainLayout.razor]
|
||||
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50c1xMYXlvdXRcTWFpbkxheW91dC5yYXpvcg==
|
||||
build_metadata.AdditionalFiles.CssScope = b-qgsvw684bo
|
||||
|
||||
[C:/Users/Admin/source/repos/CanRead/BlazorApp/Components/Layout/NavMenu.razor]
|
||||
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50c1xMYXlvdXRcTmF2TWVudS5yYXpvcg==
|
||||
build_metadata.AdditionalFiles.CssScope = b-g8o6n169oq
|
||||
|
||||
[C:/Users/Admin/source/repos/CanRead/BlazorApp/Components/Layout/ReconnectModal.razor]
|
||||
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50c1xMYXlvdXRcUmVjb25uZWN0TW9kYWwucmF6b3I=
|
||||
build_metadata.AdditionalFiles.CssScope = b-pphnjiao61
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
// <auto-generated/>
|
||||
global using Microsoft.AspNetCore.Builder;
|
||||
global using Microsoft.AspNetCore.Hosting;
|
||||
global using Microsoft.AspNetCore.Http;
|
||||
global using Microsoft.AspNetCore.Routing;
|
||||
global using Microsoft.Extensions.Configuration;
|
||||
global using Microsoft.Extensions.DependencyInjection;
|
||||
global using Microsoft.Extensions.Hosting;
|
||||
global using Microsoft.Extensions.Logging;
|
||||
global using Microsoft.Extensions.Validation.Embedded;
|
||||
global using System;
|
||||
global using System.Collections.Generic;
|
||||
global using System.IO;
|
||||
global using System.Linq;
|
||||
global using System.Net.Http;
|
||||
global using System.Net.Http.Json;
|
||||
global using System.Threading;
|
||||
global using System.Threading.Tasks;
|
||||
Binary file not shown.
Binary file not shown.
|
|
@ -1 +0,0 @@
|
|||
dcbb699325d1f189632edd97c075e7ab80e2dbfd360d3ed8a4839026314a16b0
|
||||
|
|
@ -1,91 +0,0 @@
|
|||
D:\CanRead\BlazorApp\BlazorApp\bin\Debug\net10.0\appsettings.Development.json
|
||||
D:\CanRead\BlazorApp\BlazorApp\bin\Debug\net10.0\appsettings.json
|
||||
D:\CanRead\BlazorApp\BlazorApp\bin\Debug\net10.0\BlazorApp.staticwebassets.runtime.json
|
||||
D:\CanRead\BlazorApp\BlazorApp\bin\Debug\net10.0\BlazorApp.staticwebassets.endpoints.json
|
||||
D:\CanRead\BlazorApp\BlazorApp\bin\Debug\net10.0\BlazorApp.exe
|
||||
D:\CanRead\BlazorApp\BlazorApp\bin\Debug\net10.0\BlazorApp.deps.json
|
||||
D:\CanRead\BlazorApp\BlazorApp\bin\Debug\net10.0\BlazorApp.runtimeconfig.json
|
||||
D:\CanRead\BlazorApp\BlazorApp\bin\Debug\net10.0\BlazorApp.dll
|
||||
D:\CanRead\BlazorApp\BlazorApp\bin\Debug\net10.0\BlazorApp.pdb
|
||||
D:\CanRead\BlazorApp\BlazorApp\bin\Debug\net10.0\PCANBasic.NET.dll
|
||||
D:\CanRead\BlazorApp\BlazorApp\bin\Debug\net10.0\SocketCANSharp.dll
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\EmbeddedAttribute.cs
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\ValidatableTypeAttribute.cs
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\BlazorApp.csproj.AssemblyReference.cache
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\rpswa.dswa.cache.json
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\BlazorApp.GeneratedMSBuildEditorConfig.editorconfig
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\BlazorApp.AssemblyInfoInputs.cache
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\BlazorApp.AssemblyInfo.cs
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\BlazorApp.csproj.CoreCompileInputs.cache
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\BlazorApp.MvcApplicationPartsAssemblyInfo.cache
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\rjimswa.dswa.cache.json
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\rjsmrazor.dswa.cache.json
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\rjsmcshtml.dswa.cache.json
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\scopedcss\Components\Layout\MainLayout.razor.rz.scp.css
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\scopedcss\Components\Layout\NavMenu.razor.rz.scp.css
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\scopedcss\Components\Layout\ReconnectModal.razor.rz.scp.css
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\scopedcss\bundle\BlazorApp.styles.css
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\scopedcss\projectbundle\BlazorApp.bundle.scp.css
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\v7vyzcc6qh-{0}-bqjiyaj88i-bqjiyaj88i.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\m5e6rnmcep-{0}-c2jlpeoesf-c2jlpeoesf.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\o0q64zz2g2-{0}-erw9l3u2r3-erw9l3u2r3.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\7joa6vf0w2-{0}-aexeepp0ev-aexeepp0ev.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\taqldvnaul-{0}-d7shbmvgxk-d7shbmvgxk.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\jfzlrv9cgx-{0}-ausgxo2sd3-ausgxo2sd3.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\rogc4sk0pw-{0}-k8d9w2qqmf-k8d9w2qqmf.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\9wb38qhjvq-{0}-cosvhxvwiu-cosvhxvwiu.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\e0tkuniv2q-{0}-ub07r2b239-ub07r2b239.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\5exm1mo63l-{0}-fvhpjtyr6v-fvhpjtyr6v.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\sgf5lx3sbn-{0}-b7pk76d08c-b7pk76d08c.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\xifcgn9ief-{0}-fsbi9cje9m-fsbi9cje9m.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\xcqk6qv13p-{0}-rzd6atqjts-rzd6atqjts.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\65ii6i50cu-{0}-ee0r1s7dh0-ee0r1s7dh0.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\8ny1ssfslj-{0}-dxx9fxp4il-dxx9fxp4il.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\loo7f5x1gx-{0}-jd9uben2k1-jd9uben2k1.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\p45ce5yffh-{0}-khv3u5hwcm-khv3u5hwcm.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\0546dfdd6f-{0}-r4e9w2rdcm-r4e9w2rdcm.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\03xqw0swdg-{0}-lcd1t2u6c8-lcd1t2u6c8.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\lf383621gq-{0}-c2oey78nd0-c2oey78nd0.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\dcz3aqb7og-{0}-tdbxkamptv-tdbxkamptv.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\oej83ydp7q-{0}-j5mq2jizvt-j5mq2jizvt.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\n5un2q0rmp-{0}-06098lyss8-06098lyss8.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\72hk1wsa3c-{0}-nvvlpmu67g-nvvlpmu67g.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\jt3e1rdii1-{0}-s35ty4nyc5-s35ty4nyc5.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\3til2bm5ay-{0}-pj5nd1wqec-pj5nd1wqec.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\kdgbnj3stq-{0}-46ein0sx1k-46ein0sx1k.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\pgyksi01id-{0}-v0zj4ognzu-v0zj4ognzu.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\k2mw846ued-{0}-37tfw0ft22-37tfw0ft22.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\hevz5itu9o-{0}-hrwsygsryq-hrwsygsryq.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\1qbqjgk7wr-{0}-pk9g2wxc8p-pk9g2wxc8p.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\kay38lw82v-{0}-ft3s53vfgj-ft3s53vfgj.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\vrc98ic1o2-{0}-6cfz1n2cew-6cfz1n2cew.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\h56f1aupc7-{0}-6pdc2jztkx-6pdc2jztkx.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\gh25061luz-{0}-493y06b0oq-493y06b0oq.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\byvyapvtmi-{0}-iovd86k7lj-iovd86k7lj.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\lxae500s9q-{0}-vr1egmr9el-vr1egmr9el.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\5whq523p0y-{0}-kbrnm935zg-kbrnm935zg.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\08cqgvfzcy-{0}-jj8uyg4cgr-jj8uyg4cgr.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\zp2adb4uhm-{0}-y7v9cxd14o-y7v9cxd14o.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\onq1f5nzz4-{0}-notf2xhcfb-notf2xhcfb.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\mxp9w50l4b-{0}-h1s4sie4z3-h1s4sie4z3.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\l2mhd45r4z-{0}-63fj8s7r0e-63fj8s7r0e.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\i0oilot2q1-{0}-0j3bgjxly4-0j3bgjxly4.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\hsa0fwp5ls-{0}-13ja33weya-13ja33weya.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\0txged01c1-{0}-wmp8iwak4q-wmp8iwak4q.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\e2p7e3doxt-{0}-2lgipwaf5j-2lgipwaf5j.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\8v4adbxxmx-{0}-2mc2qwa0tf-2mc2qwa0tf.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\rrzzv9ip5o-{0}-2mc2qwa0tf-2mc2qwa0tf.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\staticwebassets.build.json
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\staticwebassets.build.json.cache
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\staticwebassets.development.json
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\staticwebassets.build.endpoints.json
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\swae.build.ex.cache
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\BlazorApp.csproj.Up2Date
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\BlazorApp.dll
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\refint\BlazorApp.dll
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\BlazorApp.pdb
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\BlazorApp.genruntimeconfig.cache
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\ref\BlazorApp.dll
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\compressed\hh92lrx13d-{0}-ag9i8ft9fn-ag9i8ft9fn.gz
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\BlazorApp.sourcelink.json
|
||||
D:\CanRead\BlazorApp\BlazorApp\obj\Debug\net10.0\staticwebassets.upToDateCheck.txt
|
||||
Binary file not shown.
|
|
@ -1 +0,0 @@
|
|||
23bd4f7a70c83ce2f9a3ca44dc14b3ee4f327b3cb9f8b52a1d346110324da545
|
||||
Binary file not shown.
|
|
@ -1 +0,0 @@
|
|||
{"documents":{"D:\\CanRead\\BlazorApp\\*":"https://raw.githubusercontent.com/DTQuan1212/BlazorApp/96751a2cf1944c4425809e0d870e8df75a4252da/*"}}
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
// <auto-generated/>
|
||||
namespace Microsoft.CodeAnalysis
|
||||
{
|
||||
internal sealed partial class EmbeddedAttribute : global::System.Attribute
|
||||
{
|
||||
}
|
||||
}
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
// <auto-generated/>
|
||||
namespace Microsoft.Extensions.Validation.Embedded
|
||||
{
|
||||
[global::Microsoft.CodeAnalysis.EmbeddedAttribute]
|
||||
[global::System.AttributeUsage(global::System.AttributeTargets.Class)]
|
||||
internal sealed class ValidatableTypeAttribute : global::System.Attribute
|
||||
{
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user