Skip to content

Commit a2ebbe1

Browse files
committed
(#204) Upgrade .Net 8
1 parent 0859344 commit a2ebbe1

File tree

128 files changed

+597
-685
lines changed

Some content is hidden

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

128 files changed

+597
-685
lines changed

.github/workflows/.net-build-microservices.yml

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222
- name: Setup .NET Core
2323
uses: actions/setup-dotnet@v1
2424
with:
25-
dotnet-version: 7.0.101
25+
dotnet-version: 8.0.100
2626

2727
- name: Build
2828
run: dotnet build --configuration Release
@@ -61,58 +61,58 @@ jobs:
6161
uses: actions/[email protected]
6262
with:
6363
name: ClassifiedAds.Services.AuditLog.Api
64-
path: src/Microservices/Services.AuditLog/ClassifiedAds.Services.AuditLog.Api/bin/Release/net7.0/publish
64+
path: src/Microservices/Services.AuditLog/ClassifiedAds.Services.AuditLog.Api/bin/Release/net8.0/publish
6565

6666
- name: Upload ClassifiedAds.Services.AuditLog.Grpc
6767
uses: actions/[email protected]
6868
with:
6969
name: ClassifiedAds.Services.AuditLog.Grpc
70-
path: src/Microservices/Services.AuditLog/ClassifiedAds.Services.AuditLog.Grpc/bin/Release/net7.0/publish
70+
path: src/Microservices/Services.AuditLog/ClassifiedAds.Services.AuditLog.Grpc/bin/Release/net8.0/publish
7171

7272
- name: Upload ClassifiedAds.Services.Identity.Api
7373
uses: actions/[email protected]
7474
with:
7575
name: ClassifiedAds.Services.Identity.Api
76-
path: src/Microservices/Services.Identity/ClassifiedAds.Services.Identity.Api/bin/Release/net7.0/publish
76+
path: src/Microservices/Services.Identity/ClassifiedAds.Services.Identity.Api/bin/Release/net8.0/publish
7777

7878
- name: Upload ClassifiedAds.Services.Identity.Grpc
7979
uses: actions/[email protected]
8080
with:
8181
name: ClassifiedAds.Services.Identity.Grpc
82-
path: src/Microservices/Services.Identity/ClassifiedAds.Services.Identity.Grpc/bin/Release/net7.0/publish
82+
path: src/Microservices/Services.Identity/ClassifiedAds.Services.Identity.Grpc/bin/Release/net8.0/publish
8383

8484
- name: Upload ClassifiedAds.Services.Notification.Api
8585
uses: actions/[email protected]
8686
with:
8787
name: ClassifiedAds.Services.Notification.Api
88-
path: src/Microservices/Services.Notification/ClassifiedAds.Services.Notification.Api/bin/Release/net7.0/publish
88+
path: src/Microservices/Services.Notification/ClassifiedAds.Services.Notification.Api/bin/Release/net8.0/publish
8989

9090
- name: Upload ClassifiedAds.Services.Notification.Background
9191
uses: actions/[email protected]
9292
with:
9393
name: ClassifiedAds.Services.Notification.Background
94-
path: src/Microservices/Services.Notification/ClassifiedAds.Services.Notification.Background/bin/Release/net7.0/publish
94+
path: src/Microservices/Services.Notification/ClassifiedAds.Services.Notification.Background/bin/Release/net8.0/publish
9595

9696
- name: Upload ClassifiedAds.Services.Notification.Grpc
9797
uses: actions/[email protected]
9898
with:
9999
name: ClassifiedAds.Services.Notification.Grpc
100-
path: src/Microservices/Services.Notification/ClassifiedAds.Services.Notification.Grpc/bin/Release/net7.0/publish
100+
path: src/Microservices/Services.Notification/ClassifiedAds.Services.Notification.Grpc/bin/Release/net8.0/publish
101101

102102
- name: Upload ClassifiedAds.Services.Product.Api
103103
uses: actions/[email protected]
104104
with:
105105
name: ClassifiedAds.Services.Product.Api
106-
path: src/Microservices/Services.Product/ClassifiedAds.Services.Product.Api/bin/Release/net7.0/publish
106+
path: src/Microservices/Services.Product/ClassifiedAds.Services.Product.Api/bin/Release/net8.0/publish
107107

108108
- name: Upload ClassifiedAds.Services.Storage.Api
109109
uses: actions/[email protected]
110110
with:
111111
name: ClassifiedAds.Services.Storage.Api
112-
path: src/Microservices/Services.Storage/ClassifiedAds.Services.Storage.Api/bin/Release/net7.0/publish
112+
path: src/Microservices/Services.Storage/ClassifiedAds.Services.Storage.Api/bin/Release/net8.0/publish
113113

114114
- name: Upload ClassifiedAds.Gateways.WebAPI
115115
uses: actions/[email protected]
116116
with:
117117
name: ClassifiedAds.Gateways.WebAPI
118-
path: src/Microservices/Gateways.WebAPI/ClassifiedAds.Gateways.WebAPI/bin/Release/net7.0/publish
118+
path: src/Microservices/Gateways.WebAPI/ClassifiedAds.Gateways.WebAPI/bin/Release/net8.0/publish

.github/workflows/.net-build-modularmonolith.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222
- name: Setup .NET Core
2323
uses: actions/setup-dotnet@v1
2424
with:
25-
dotnet-version: 7.0.101
25+
dotnet-version: 8.0.100
2626

2727
- name: Build
2828
run: dotnet build --configuration Release
@@ -40,16 +40,16 @@ jobs:
4040
uses: actions/[email protected]
4141
with:
4242
name: ClassifiedAds.BackgroundServer
43-
path: src/ModularMonolith/ClassifiedAds.BackgroundServer/bin/Release/net7.0/publish
43+
path: src/ModularMonolith/ClassifiedAds.BackgroundServer/bin/Release/net8.0/publish
4444

4545
- name: Upload ClassifiedAds.Migrator
4646
uses: actions/[email protected]
4747
with:
4848
name: ClassifiedAds.Migrator
49-
path: src/ModularMonolith/ClassifiedAds.Migrator/bin/Release/net7.0/publish
49+
path: src/ModularMonolith/ClassifiedAds.Migrator/bin/Release/net8.0/publish
5050

5151
- name: Upload ClassifiedAds.WebAPI
5252
uses: actions/[email protected]
5353
with:
5454
name: ClassifiedAds.WebAPI
55-
path: src/ModularMonolith/ClassifiedAds.WebAPI/bin/Release/net7.0/publish
55+
path: src/ModularMonolith/ClassifiedAds.WebAPI/bin/Release/net8.0/publish

.github/workflows/.net-build-monolith.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222
- name: Setup .NET Core
2323
uses: actions/setup-dotnet@v1
2424
with:
25-
dotnet-version: 7.0.101
25+
dotnet-version: 8.0.100
2626

2727
- name: Build
2828
run: dotnet build --configuration Release
@@ -52,40 +52,40 @@ jobs:
5252
uses: actions/[email protected]
5353
with:
5454
name: ClassifiedAds.BackgroundServer
55-
path: src/Monolith/ClassifiedAds.BackgroundServer/bin/Release/net7.0/publish
55+
path: src/Monolith/ClassifiedAds.BackgroundServer/bin/Release/net8.0/publish
5656

5757
- name: Upload ClassifiedAds.GraphQL
5858
uses: actions/[email protected]
5959
with:
6060
name: ClassifiedAds.GraphQL
61-
path: src/Monolith/ClassifiedAds.GraphQL/bin/Release/net7.0/publish
61+
path: src/Monolith/ClassifiedAds.GraphQL/bin/Release/net8.0/publish
6262

6363
- name: Upload ClassifiedAds.Migrator
6464
uses: actions/[email protected]
6565
with:
6666
name: ClassifiedAds.Migrator
67-
path: src/Monolith/ClassifiedAds.Migrator/bin/Release/net7.0/publish
67+
path: src/Monolith/ClassifiedAds.Migrator/bin/Release/net8.0/publish
6868

6969
- name: Upload ClassifiedAds.WebAPI
7070
uses: actions/[email protected]
7171
with:
7272
name: ClassifiedAds.WebAPI
73-
path: src/Monolith/ClassifiedAds.WebAPI/bin/Release/net7.0/publish
73+
path: src/Monolith/ClassifiedAds.WebAPI/bin/Release/net8.0/publish
7474

7575
- name: Upload ClassifiedAds.WebMVC
7676
uses: actions/[email protected]
7777
with:
7878
name: ClassifiedAds.WebMVC
79-
path: src/Monolith/ClassifiedAds.WebMVC/bin/Release/net7.0/publish
79+
path: src/Monolith/ClassifiedAds.WebMVC/bin/Release/net8.0/publish
8080

8181
- name: Upload ClassifiedAds.BlazorServerSide
8282
uses: actions/[email protected]
8383
with:
8484
name: ClassifiedAds.BlazorServerSide
85-
path: src/Monolith/ClassifiedAds.BlazorServerSide/bin/Release/net7.0/publish
85+
path: src/Monolith/ClassifiedAds.BlazorServerSide/bin/Release/net8.0/publish
8686

8787
- name: Upload ClassifiedAds.BlazorWebAssembly
8888
uses: actions/[email protected]
8989
with:
9090
name: ClassifiedAds.BlazorWebAssembly
91-
path: src/Monolith/ClassifiedAds.BlazorWebAssembly/bin/Release/net7.0/publish
91+
path: src/Monolith/ClassifiedAds.BlazorWebAssembly/bin/Release/net8.0/publish

src/IdentityServer/Duende/ClassifiedAds.Application/ClassifiedAds.Application.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>net7.0</TargetFramework>
4+
<TargetFramework>net8.0</TargetFramework>
55
<AnalysisMode>Recommended</AnalysisMode>
66
<AnalysisModeSecurity>All</AnalysisModeSecurity>
77
</PropertyGroup>
88

99
<ItemGroup>
10-
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="7.0.0" />
11-
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="7.0.1" />
10+
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="8.0.0" />
11+
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.0" />
1212
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118">
1313
<PrivateAssets>all</PrivateAssets>
1414
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>net7.0</TargetFramework>
4+
<TargetFramework>net8.0</TargetFramework>
55
<AnalysisMode>Recommended</AnalysisMode>
66
<AnalysisModeSecurity>All</AnalysisModeSecurity>
77
</PropertyGroup>
@@ -11,7 +11,7 @@
1111
<PrivateAssets>all</PrivateAssets>
1212
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1313
</PackageReference>
14-
<PackageReference Include="System.Text.Json" Version="7.0.3" />
14+
<PackageReference Include="System.Text.Json" Version="8.0.0" />
1515
</ItemGroup>
1616

1717
</Project>

src/IdentityServer/Duende/ClassifiedAds.Domain/ClassifiedAds.Domain.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>net7.0</TargetFramework>
4+
<TargetFramework>net8.0</TargetFramework>
55
<AnalysisMode>Recommended</AnalysisMode>
66
<AnalysisModeSecurity>All</AnalysisModeSecurity>
77
</PropertyGroup>
88

99
<ItemGroup>
10-
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="7.0.0" />
10+
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.0" />
1111
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
1212
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118">
1313
<PrivateAssets>all</PrivateAssets>
1414
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1515
</PackageReference>
1616
<PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" />
17-
<PackageReference Include="System.Text.Json" Version="7.0.3" />
17+
<PackageReference Include="System.Text.Json" Version="8.0.0" />
1818
</ItemGroup>
1919

2020
<ItemGroup>

src/IdentityServer/Duende/ClassifiedAds.IdentityServer/ClassifiedAds.IdentityServer.csproj

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
<Project Sdk="Microsoft.NET.Sdk.Web">
22

33
<PropertyGroup>
4-
<TargetFramework>net7.0</TargetFramework>
4+
<TargetFramework>net8.0</TargetFramework>
55
<ImplicitUsings>enable</ImplicitUsings>
66
<AnalysisMode>Recommended</AnalysisMode>
77
<AnalysisModeSecurity>All</AnalysisModeSecurity>
88
<UserSecretsId>aae914a2-80ef-4814-891a-8ed4e63c8c79</UserSecretsId>
99
</PropertyGroup>
1010

1111
<ItemGroup>
12-
<PackageReference Include="Duende.IdentityServer.AspNetIdentity" Version="6.3.3" />
13-
<PackageReference Include="Microsoft.AspNetCore.Authentication.Facebook" Version="6.0.0" />
14-
<PackageReference Include="Microsoft.AspNetCore.Authentication.Google" Version="6.0.0" />
15-
<PackageReference Include="Microsoft.AspNetCore.Authentication.MicrosoftAccount" Version="6.0.0" />
16-
<PackageReference Include="Microsoft.AspNetCore.Identity.UI" Version="6.0.0" />
17-
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="6.0.0" />
12+
<PackageReference Include="Duende.IdentityServer.AspNetIdentity" Version="6.3.7" />
13+
<PackageReference Include="Microsoft.AspNetCore.Authentication.Facebook" Version="8.0.0" />
14+
<PackageReference Include="Microsoft.AspNetCore.Authentication.Google" Version="8.0.0" />
15+
<PackageReference Include="Microsoft.AspNetCore.Authentication.MicrosoftAccount" Version="8.0.0" />
16+
<PackageReference Include="Microsoft.AspNetCore.Identity.UI" Version="8.0.0" />
17+
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="8.0.0" />
1818
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118">
1919
<PrivateAssets>all</PrivateAssets>
2020
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>

src/IdentityServer/Duende/ClassifiedAds.IdentityServer/Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build-env
1+
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build-env
22
WORKDIR /ClassifiedAds.IdentityServer
33

44
# Copy csproj and restore as distinct layers
@@ -17,7 +17,7 @@ COPY . ./
1717
RUN dotnet publish ./ClassifiedAds.IdentityServer/ClassifiedAds.IdentityServer.csproj -c Release -o out
1818

1919
# Build runtime image
20-
FROM mcr.microsoft.com/dotnet/aspnet:7.0
20+
FROM mcr.microsoft.com/dotnet/aspnet:8.0
2121
WORKDIR /ClassifiedAds.IdentityServer
2222
COPY --from=build-env /ClassifiedAds.IdentityServer/out .
2323

src/IdentityServer/Duende/ClassifiedAds.Infrastructure/ClassifiedAds.Infrastructure.csproj

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,47 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>net7.0</TargetFramework>
4+
<TargetFramework>net8.0</TargetFramework>
55
<AnalysisMode>Recommended</AnalysisMode>
66
<AnalysisModeSecurity>All</AnalysisModeSecurity>
77
</PropertyGroup>
88

99
<ItemGroup>
1010
<FrameworkReference Include="Microsoft.AspNetCore.App" />
1111
<PackageReference Include="Azure.Communication.Sms" Version="1.0.1" />
12-
<PackageReference Include="Azure.Data.AppConfiguration" Version="1.2.0" />
13-
<PackageReference Include="Azure.Extensions.AspNetCore.Configuration.Secrets" Version="1.2.2" />
14-
<PackageReference Include="Azure.Identity" Version="1.10.0" />
12+
<PackageReference Include="Azure.Data.AppConfiguration" Version="1.3.0" />
13+
<PackageReference Include="Azure.Extensions.AspNetCore.Configuration.Secrets" Version="1.3.0" />
14+
<PackageReference Include="Azure.Identity" Version="1.10.4" />
1515
<PackageReference Include="Castle.Core" Version="5.1.1" />
16-
<PackageReference Include="CryptographyHelper" Version="1.0.0" />
17-
<PackageReference Include="Dapper.StrongName" Version="2.0.151" />
18-
<PackageReference Include="IdentityModel" Version="6.1.0" />
19-
<PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.21.0" />
20-
<PackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="7.0.10" />
21-
<PackageReference Include="Microsoft.AspNetCore.SignalR.Client" Version="7.0.10" />
22-
<PackageReference Include="Microsoft.AspNetCore.SignalR.Protocols.MessagePack" Version="7.0.10" />
23-
<PackageReference Include="Microsoft.Azure.AppConfiguration.AspNetCore" Version="6.1.0" />
24-
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="7.0.10" />
16+
<PackageReference Include="CryptographyHelper" Version="2.0.0" />
17+
<PackageReference Include="Dapper.StrongName" Version="2.1.24" />
18+
<PackageReference Include="IdentityModel" Version="6.2.0" />
19+
<PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.22.0" />
20+
<PackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="8.0.0" />
21+
<PackageReference Include="Microsoft.AspNetCore.SignalR.Client" Version="8.0.0" />
22+
<PackageReference Include="Microsoft.AspNetCore.SignalR.Protocols.MessagePack" Version="8.0.0" />
23+
<PackageReference Include="Microsoft.Azure.AppConfiguration.AspNetCore" Version="7.0.0" />
24+
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.0" />
2525
<PackageReference Include="Microsoft.Extensions.Caching.Redis" Version="2.2.0" />
26-
<PackageReference Include="Microsoft.Extensions.Caching.SqlServer" Version="7.0.10" />
27-
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="7.0.1" />
28-
<PackageReference Include="Microsoft.Extensions.Logging.AzureAppServices" Version="7.0.10" />
29-
<PackageReference Include="Microsoft.Extensions.Logging.EventLog" Version="7.0.0" />
26+
<PackageReference Include="Microsoft.Extensions.Caching.SqlServer" Version="8.0.0" />
27+
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.0" />
28+
<PackageReference Include="Microsoft.Extensions.Logging.AzureAppServices" Version="8.0.0" />
29+
<PackageReference Include="Microsoft.Extensions.Logging.EventLog" Version="8.0.0" />
3030
<PackageReference Include="MiniProfiler.AspNetCore.Mvc" Version="4.3.8" />
3131
<PackageReference Include="MiniProfiler.EntityFrameworkCore" Version="4.3.8" />
3232
<PackageReference Include="MiniProfiler.Providers.SqlServer" Version="4.3.8" />
33-
<PackageReference Include="Quartz" Version="3.7.0" />
33+
<PackageReference Include="Quartz" Version="3.8.0" />
3434
<PackageReference Include="SendGrid" Version="9.28.1" />
35-
<PackageReference Include="Serilog" Version="3.0.1" />
36-
<PackageReference Include="Serilog.AspNetCore" Version="7.0.0" />
37-
<PackageReference Include="Serilog.Enrichers.Environment" Version="2.2.0" />
35+
<PackageReference Include="Serilog" Version="3.1.1" />
36+
<PackageReference Include="Serilog.AspNetCore" Version="8.0.0" />
37+
<PackageReference Include="Serilog.Enrichers.Environment" Version="2.3.0" />
3838
<PackageReference Include="Serilog.Exceptions" Version="8.4.0" />
3939
<PackageReference Include="Serilog.Sinks.Elasticsearch" Version="9.0.3" />
4040
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118">
4141
<PrivateAssets>all</PrivateAssets>
4242
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
4343
</PackageReference>
44-
<PackageReference Include="Twilio" Version="6.11.0" />
44+
<PackageReference Include="Twilio" Version="6.15.2" />
4545
<PackageReference Include="VaultSharp" Version="1.13.0.1" />
4646
</ItemGroup>
4747

src/IdentityServer/Duende/ClassifiedAds.Migrator/ClassifiedAds.Migrator.csproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk.Web">
22

33
<PropertyGroup>
4-
<TargetFramework>net7.0</TargetFramework>
4+
<TargetFramework>net8.0</TargetFramework>
55
<AnalysisMode>Recommended</AnalysisMode>
66
<AnalysisModeSecurity>All</AnalysisModeSecurity>
77
<UserSecretsId>b8df572d-5be2-4f41-b55a-8f4e2ef2b569</UserSecretsId>
@@ -21,13 +21,13 @@
2121
</ItemGroup>
2222

2323
<ItemGroup>
24-
<PackageReference Include="dbup" Version="5.0.8" />
25-
<PackageReference Include="Polly" Version="7.2.4" />
24+
<PackageReference Include="dbup" Version="5.0.37" />
25+
<PackageReference Include="Polly" Version="8.2.0" />
2626
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118">
2727
<PrivateAssets>all</PrivateAssets>
2828
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
2929
</PackageReference>
30-
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="7.0.10">
30+
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="8.0.0">
3131
<PrivateAssets>all</PrivateAssets>
3232
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
3333
</PackageReference>

0 commit comments

Comments
 (0)