Skip to content

Commit 3c5155d

Browse files
committed
feat: C# 10 related changes + backend status reporting via IBackendStatus
1 parent db9d470 commit 3c5155d

File tree

110 files changed

+277
-417
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

110 files changed

+277
-417
lines changed

Diff for: Samples.sln

+6
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00
33
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "docs", "docs", "{01FE6776-E788-46B2-93E4-1CEDB01AA851}"
44
EndProject
55
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{B5A8469D-C4BB-4808-8E44-FF4DFCA57BDE}"
6+
ProjectSection(SolutionItems) = preProject
7+
src\Directory.Build.props = src\Directory.Build.props
8+
EndProjectSection
69
EndProject
710
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tutorial", "docs\tutorial\Tutorial.csproj", "{B3AC9B52-96D7-4CBD-9873-8B427BB09BEB}"
811
EndProject
@@ -37,6 +40,9 @@ EndProject
3740
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "templates", "templates", "{A0720149-962C-4F9E-A128-9EF0846D5393}"
3841
EndProject
3942
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TodoApp", "TodoApp", "{073BAF33-E1DA-4285-B19B-F81887226006}"
43+
ProjectSection(SolutionItems) = preProject
44+
templates\TodoApp\Directory.Build.props = templates\TodoApp\Directory.Build.props
45+
EndProjectSection
4046
EndProject
4147
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "HelloBlazorHybrid", "HelloBlazorHybrid", "{ABFD1214-E544-44FC-A46E-7EE97AB1C20C}"
4248
EndProject

Diff for: src/Blazor/Abstractions/IChatService.cs

-8
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,8 @@
1-
using System;
21
using System.Collections.Generic;
32
using System.ComponentModel.DataAnnotations;
43
using System.ComponentModel.DataAnnotations.Schema;
5-
using System.Linq;
64
using System.Text.Json.Serialization;
7-
using System.Threading;
8-
using System.Threading.Tasks;
95
using Microsoft.EntityFrameworkCore;
10-
using Stl;
11-
using Stl.CommandR.Configuration;
12-
using Stl.Fusion;
13-
using Stl.Fusion.Authentication;
146

157
namespace Samples.Blazor.Abstractions;
168

Diff for: src/Blazor/Abstractions/IComposerService.cs

-5
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
1-
using System.Threading;
2-
using System.Threading.Tasks;
3-
using Stl.Fusion;
4-
using Stl.Fusion.Authentication;
5-
61
namespace Samples.Blazor.Abstractions;
72

83
public record ComposedValue

Diff for: src/Blazor/Abstractions/IScreenshotService.cs

-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
11
using System.Text.Json.Serialization;
2-
using System.Threading;
3-
using System.Threading.Tasks;
4-
using Stl.Fusion;
52

63
namespace Samples.Blazor.Abstractions;
74

Diff for: src/Blazor/Abstractions/ISumService.cs

-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
1-
using System.Threading;
2-
using System.Threading.Tasks;
3-
using Stl.Fusion;
4-
51
namespace Samples.Blazor.Abstractions;
62

73
public interface ISumService

Diff for: src/Blazor/Abstractions/ITimeService.cs

-5
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
1-
using System;
2-
using System.Threading;
3-
using System.Threading.Tasks;
4-
using Stl.Fusion;
5-
61
namespace Samples.Blazor.Abstractions;
72

83
public interface ITimeService

Diff for: src/Blazor/Client/Clients.cs

-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
1-
using System;
2-
using System.Threading;
3-
using System.Threading.Tasks;
41
using RestEase;
52
using Samples.Blazor.Abstractions;
6-
using Stl.Fusion.Authentication;
73

84
namespace Samples.Blazor.Client;
95

Diff for: src/Blazor/ConsoleClient/Program.cs

-5
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,6 @@
1-
using System;
2-
using System.Collections.Concurrent;
3-
using System.Reactive;
41
using Microsoft.Extensions.DependencyInjection;
5-
using Microsoft.Extensions.Logging;
62
using Samples.Blazor.Abstractions;
73
using Samples.Blazor.Client;
8-
using Stl.Fusion;
94
using Stl.Fusion.Client;
105
using Stl.Fusion.Extensions;
116
using Stl.Fusion.UI;

Diff for: src/Blazor/Server/Controllers/ChatController.cs

-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
1-
using System.Threading;
2-
using System.Threading.Tasks;
31
using Microsoft.AspNetCore.Mvc;
42
using Stl.Fusion.Server;
53
using Samples.Blazor.Abstractions;
6-
using Stl.Fusion.Authentication;
74

85
namespace Samples.Blazor.Server.Controllers;
96

Diff for: src/Blazor/Server/Controllers/ComposerController.cs

-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
1-
using System.Threading;
2-
using System.Threading.Tasks;
31
using Microsoft.AspNetCore.Mvc;
42
using Stl.Fusion.Server;
53
using Samples.Blazor.Abstractions;
6-
using Stl.Fusion.Authentication;
74

85
namespace Samples.Blazor.Server.Controllers;
96

Diff for: src/Blazor/Server/Controllers/ScreenshotController.cs

-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
using System.Threading;
2-
using System.Threading.Tasks;
31
using Microsoft.AspNetCore.Mvc;
42
using Stl.Fusion.Server;
53
using Samples.Blazor.Abstractions;

Diff for: src/Blazor/Server/Controllers/SumController.cs

-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
using System.Threading;
2-
using System.Threading.Tasks;
31
using Microsoft.AspNetCore.Mvc;
42
using Samples.Blazor.Abstractions;
53
using Stl.Fusion.Server;

Diff for: src/Blazor/Server/Controllers/TimeController.cs

-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
using System;
2-
using System.Threading;
3-
using System.Threading.Tasks;
41
using Microsoft.AspNetCore.Mvc;
52
using Stl.Fusion.Server;
63
using Samples.Blazor.Abstractions;

Diff for: src/Blazor/Server/ServerSettings.cs

-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
using System;
2-
using System.Text;
3-
41
namespace Samples.Blazor.Server;
52

63
public class ServerSettings

Diff for: src/Blazor/Server/Services/ChatService.cs

-13
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,10 @@
1-
using System;
21
using System.Collections.Generic;
3-
using System.Linq;
4-
using System.Reactive;
52
using System.Security.Authentication;
6-
using System.Threading;
7-
using System.Threading.Tasks;
83
using Microsoft.EntityFrameworkCore;
9-
using Microsoft.Extensions.Logging;
10-
using Microsoft.Extensions.Logging.Abstractions;
114
using Newtonsoft.Json.Linq;
12-
using Stl.Async;
13-
using Stl.Fusion;
145
using Samples.Blazor.Abstractions;
15-
using Stl.CommandR;
16-
using Stl.CommandR.Configuration;
17-
using Stl.Fusion.Authentication;
186
using Stl.Fusion.Authentication.Commands;
197
using Stl.Fusion.EntityFramework;
20-
using Stl.Fusion.Operations;
218

229
namespace Samples.Blazor.Server.Services;
2310

Diff for: src/Blazor/Server/Services/ComposerService.cs

-7
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,4 @@
1-
using System;
2-
using System.Linq;
3-
using System.Threading;
4-
using System.Threading.Tasks;
5-
using Microsoft.Extensions.Logging;
6-
using Microsoft.Extensions.Logging.Abstractions;
71
using Samples.Blazor.Abstractions;
8-
using Stl.Fusion.Authentication;
92

103
namespace Samples.Blazor.Server.Services;
114

Diff for: src/Blazor/Server/Services/DirectBitmap.cs

-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
using System;
21
using System.Drawing;
32
using System.Drawing.Imaging;
43
using System.Runtime.InteropServices;
5-
using System.Threading;
64
using SixLabors.ImageSharp;
75
using SixLabors.ImageSharp.PixelFormats;
86

Diff for: src/Blazor/Server/Services/HttpContextExtensions.cs

+1-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
using System;
2-
using System.Linq;
3-
using System.Threading.Tasks;
4-
using Microsoft.AspNetCore.Authentication;
1+
using Microsoft.AspNetCore.Authentication;
52
using Microsoft.AspNetCore.Http;
63
using Microsoft.Extensions.DependencyInjection;
74

Diff for: src/Blazor/Server/Services/IForismaticClient.cs

-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
using System.Threading;
2-
using System.Threading.Tasks;
31
using RestEase;
42

53
namespace Samples.Blazor.Server.Services;

Diff for: src/Blazor/Server/Services/ScreenshotService.cs

+1-5
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,9 @@
1-
using System;
21
using System.Diagnostics;
32
using System.Drawing;
43
using System.Drawing.Drawing2D;
54
using System.Drawing.Imaging;
65
using System.IO;
7-
using System.Linq;
86
using System.Reflection;
9-
using System.Threading;
10-
using System.Threading.Tasks;
11-
using Stl.Fusion;
127
using Stl.OS;
138
using Samples.Blazor.Abstractions;
149
using SixLabors.Fonts;
@@ -18,6 +13,7 @@
1813
using SixLabors.ImageSharp.PixelFormats;
1914
using SixLabors.ImageSharp.Processing;
2015
using Color = SixLabors.ImageSharp.Color;
16+
using Encoder = System.Drawing.Imaging.Encoder;
2117
using Image = SixLabors.ImageSharp.Image;
2218
using PointF = SixLabors.ImageSharp.PointF;
2319
using Point = SixLabors.ImageSharp.Point;

Diff for: src/Blazor/Server/Services/SumService.cs

-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,4 @@
1-
using System.Linq;
2-
using System.Threading;
3-
using System.Threading.Tasks;
41
using Samples.Blazor.Abstractions;
5-
using Stl.Fusion;
62

73
namespace Samples.Blazor.Server.Services;
84

Diff for: src/Blazor/Server/Services/TimeService.cs

-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
1-
using System;
2-
using System.Threading;
3-
using System.Threading.Tasks;
4-
using Stl.Fusion;
51
using Samples.Blazor.Abstractions;
62

73
namespace Samples.Blazor.Server.Services;

Diff for: src/Blazor/Server/Startup.cs

-5
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
using System;
21
using System.IO;
32
using System.Reflection;
43
using System.Text.RegularExpressions;
@@ -15,14 +14,10 @@
1514
using Microsoft.Extensions.DependencyInjection;
1615
using Microsoft.Extensions.FileProviders;
1716
using Microsoft.Extensions.Hosting;
18-
using Microsoft.Extensions.Logging;
19-
using Microsoft.Extensions.Logging.Abstractions;
2017
using Microsoft.OpenApi.Models;
2118
using Samples.Blazor.Abstractions;
2219
using Samples.Blazor.Server.Services;
2320
using Stl.DependencyInjection;
24-
using Stl.Fusion;
25-
using Stl.Fusion.Authentication;
2621
using Stl.Fusion.Blazor;
2722
using Stl.Fusion.Bridge;
2823
using Stl.Fusion.Client;

Diff for: src/Blazor/UI/Program.cs

+1-4
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,11 @@
1-
using System;
2-
using System.Threading.Tasks;
31
using Blazorise;
42
using Blazorise.Bootstrap;
53
using Blazorise.Icons.FontAwesome;
64
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
75
using Microsoft.Extensions.DependencyInjection;
8-
using Microsoft.Extensions.Logging;
96
using Samples.Blazor.Abstractions;
107
using Samples.Blazor.Client;
118
using Samples.Blazor.UI.Services;
12-
using Stl.Fusion;
139
using Stl.Fusion.Client;
1410
using Stl.OS;
1511
using Stl.DependencyInjection;
@@ -73,6 +69,7 @@ public static void ConfigureSharedServices(IServiceCollection services)
7369
// Fusion services
7470
var fusion = services.AddFusion();
7571
fusion.AddFusionTime();
72+
fusion.AddBackendStatus();
7673
fusion.AddComputeService<ILocalComposerService, LocalComposerService>();
7774

7875
// Default update delay is 0.1s

Diff for: src/Blazor/UI/Services/LocalComposerService.cs

-7
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,4 @@
1-
using System;
2-
using System.Linq;
3-
using System.Threading;
4-
using System.Threading.Tasks;
5-
using Microsoft.Extensions.Logging;
6-
using Microsoft.Extensions.Logging.Abstractions;
71
using Samples.Blazor.Abstractions;
8-
using Stl.Fusion.Authentication;
92

103
namespace Samples.Blazor.UI.Services;
114

Diff for: src/Blazor/UI/Shared/BarBackendStatus.razor

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
@using Stl
2+
@inherits ComputedStateComponent<ImmutableList<(string Backend, Exception Error)>>
3+
@inject Session _session
4+
@inject IBackendStatus _backendStatus
5+
6+
@{
7+
var errors = State.ValueOrDefault ?? ImmutableList<(string Backend, Exception Error)>.Empty;
8+
}
9+
10+
@if (errors.Any()) {
11+
<BarItem>
12+
<BarDropdown Class="@CssClass">
13+
<BarDropdownToggle>
14+
<BarIcon IconName="@FontAwesomeIcons.ExclamationTriangle" TextColor="TextColor.Danger"></BarIcon>
15+
</BarDropdownToggle>
16+
<BarDropdownMenu RightAligned="true">
17+
@foreach (var (backend, error) in errors) {
18+
<BarDropdownItem TextColor="TextColor.Danger">
19+
<b>@backend:</b> @(error.Message.NullIfEmpty() ?? "Unknown error")
20+
</BarDropdownItem>
21+
}
22+
</BarDropdownMenu>
23+
</BarDropdown>
24+
</BarItem>
25+
}
26+
27+
@code {
28+
[Parameter]
29+
public string CssClass { get; set; } = "";
30+
31+
protected override Task<ImmutableList<(string Backend, Exception Error)>> ComputeState(CancellationToken cancellationToken)
32+
=> _backendStatus.GetAllErrors(_session, cancellationToken);
33+
}

Diff for: src/Blazor/UI/Shared/FormatEx.cs

-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
using System;
2-
31
namespace Samples.Blazor.UI.Shared;
42

53
public static class FormatEx

Diff for: src/Blazor/UI/Shared/TopBar.razor

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
</BarBrand>
1111
<BarMenu>
1212
<BarEnd>
13+
<BarBackendStatus/>
1314
<BarItem>
1415
<BarAccount/>
1516
</BarItem>

Diff for: src/Blazor/UI/_Imports.razor

+2-6
Original file line numberDiff line numberDiff line change
@@ -5,24 +5,20 @@
55
@using Microsoft.AspNetCore.Components.Routing
66
@using Microsoft.AspNetCore.Components.Web
77
@using Microsoft.AspNetCore.Components.WebAssembly.Http
8-
@using Microsoft.Extensions.Logging
98
@using Microsoft.JSInterop
109
@using Blazorise
1110
@using Blazorise.DataGrid
1211
@using Blazorise.Icons.FontAwesome
1312
@using Blazorise.Sidebar
13+
@using Samples.Blazor.Abstractions;
1414
@using Samples.Blazor.Client
1515
@using Samples.Blazor.UI
1616
@using Samples.Blazor.UI.Services
1717
@using Samples.Blazor.UI.Shared
1818
@using Samples.Blazor.Abstractions
19-
@using Stl.CommandR
20-
@using Stl.CommandR.Commands
21-
@using Stl.Fusion
22-
@using Stl.Fusion.Authentication
2319
@using Stl.Fusion.Blazor
2420
@using Stl.Fusion.Blazor.Authentication
2521
@using Stl.Fusion.Bridge
2622
@using Stl.Fusion.Bridge.Messages
2723
@using Stl.Fusion.UI
28-
@using Stl.Serialization
24+
@using Stl.Fusion.Extensions

Diff for: src/Caching/Client/BenchmarkBase.cs

-6
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,5 @@
1-
using System;
21
using System.Collections.Generic;
32
using System.Diagnostics;
4-
using System.Linq;
5-
using System.Reactive;
6-
using System.Threading;
7-
using System.Threading.Tasks;
8-
using Stl.Async;
93
using Stl.OS;
104
using static System.Console;
115

Diff for: src/Caching/Client/ClientSettings.cs

-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
using System;
2-
31
namespace Samples.Caching.Client;
42

53
public class ClientSettings

Diff for: src/Caching/Client/Clients.cs

-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
using System.Threading;
2-
using System.Threading.Tasks;
31
using RestEase;
42
using Samples.Caching.Common;
53

Diff for: src/Caching/Client/Counters.cs

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
using System;
21
using System.Collections.Generic;
32

43
namespace Samples.Caching.Client;

0 commit comments

Comments
 (0)