Robert 2 years ago
parent
commit
c9c469809b

+ 25 - 0
.dockerignore

@@ -0,0 +1,25 @@
+**/.classpath
+**/.dockerignore
+**/.env
+**/.git
+**/.gitignore
+**/.project
+**/.settings
+**/.toolstarget
+**/.vs
+**/.vscode
+**/*.*proj.user
+**/*.dbmdl
+**/*.jfm
+**/azds.yaml
+**/bin
+**/charts
+**/docker-compose*
+**/Dockerfile*
+**/node_modules
+**/npm-debug.log
+**/obj
+**/secrets.dev.yaml
+**/values.dev.yaml
+LICENSE
+README.md

+ 27 - 0
EVCB_OCPP.WEBAPI/Dockerfile

@@ -0,0 +1,27 @@
+#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
+
+#Depending on the operating system of the host machines(s) that will build or run the containers, the image specified in the FROM statement may need to be changed.
+#For more information, please see https://aka.ms/containercompat
+
+FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS base
+WORKDIR /app
+EXPOSE 80
+EXPOSE 443
+
+FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build
+WORKDIR /src
+COPY ["EVCB_OCPP.WEBAPI.csproj", "EVCB_OCPP.WEBAPI/"]
+RUN dotnet restore "EVCB_OCPP.WEBAPI/EVCB_OCPP.WEBAPI.csproj"
+COPY "InstallGitVersion.bat" "InstallGitVersion.bat"
+RUN InstallGitVersion.bat
+COPY . "EVCB_OCPP.WEBAPI/"
+WORKDIR "/src/EVCB_OCPP.WEBAPI"
+RUN dotnet build "EVCB_OCPP.WEBAPI.csproj" -c Release -o /app/build
+
+FROM build AS publish
+RUN dotnet publish "EVCB_OCPP.WEBAPI.csproj" -c Release -o /app/publish /p:UseAppHost=false
+
+FROM base AS final
+WORKDIR /app
+COPY --from=publish /app/publish .
+ENTRYPOINT ["dotnet", "EVCB_OCPP.WEBAPI.dll"]

+ 70 - 0
EVCB_OCPP.WEBAPI/EVCB_OCPP - Backup.WEBAPI.csproj

@@ -0,0 +1,70 @@
+<Project Sdk="Microsoft.NET.Sdk.Web">
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+  </PropertyGroup>
+  <ItemGroup>
+    <Antlr4 Remove="App_Data\**" />
+    <Compile Remove="App_Data\**" />
+    <Content Remove="App_Data\**" />
+    <EmbeddedResource Remove="App_Data\**" />
+    <None Remove="App_Data\**" />
+  </ItemGroup>
+  <ItemGroup>
+    <Reference Include="EVCB_OCPP.Packet, Version=0.1.0.0, Culture=neutral, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>Dll\EVCB_OCPP.Packet.dll</HintPath>
+    </Reference>
+    <Reference Include="EVCB_OCPP20.Packet, Version=0.1.0.0, Culture=neutral, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>Dll\EVCB_OCPP20.Packet.dll</HintPath>
+    </Reference>
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Update="Global.asax.cs">
+      <DependentUpon>Global.asax</DependentUpon>
+    </Compile>
+  </ItemGroup>
+  <ItemGroup>
+    <None Update="NLog.xsd">
+      <SubType>Designer</SubType>
+    </None>
+    <Content Update="Web.config">
+      <SubType>Designer</SubType>
+    </Content>
+    <Content Update="Web.Debug.config">
+      <DependentUpon>Web.config</DependentUpon>
+    </Content>
+    <Content Update="Web.Release.config">
+      <DependentUpon>Web.config</DependentUpon>
+    </Content>
+  </ItemGroup>
+  <ItemGroup>
+    <PackageReference Include="bootstrap" Version="5.2.2" />
+    <PackageReference Include="Dapper" Version="2.0.123" />
+    <PackageReference Include="jQuery" Version="3.6.1" />
+    <PackageReference Include="Microsoft.AspNetCore.Mvc.Abstractions" Version="2.2.0" />
+    <PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
+    <PackageReference Include="Microsoft.Extensions.Http" Version="7.0.0" />
+    <PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.17.0" />
+    <PackageReference Include="Modernizr" Version="2.8.3" />
+    <PackageReference Include="NLog.Config" Version="4.7.15" />
+    <PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" />
+    <PackageReference Include="System.Data.DataSetExtensions" Version="4.5.0" />
+    <PackageReference Include="System.Data.SqlClient" Version="4.8.5" />
+    <PackageReference Include="System.ServiceModel.Duplex" Version="4.10.0" />
+    <PackageReference Include="System.ServiceModel.NetTcp" Version="4.10.0" />
+    <PackageReference Include="System.ServiceModel.Federation" Version="4.10.0" />
+    <PackageReference Include="Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers" Version="0.4.355802">
+      <PrivateAssets>all</PrivateAssets>
+    </PackageReference>
+    <PackageReference Include="Antlr4" Version="4.6.6" />
+    <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="7.0.0" />
+  </ItemGroup>
+  <PropertyGroup>
+    <TargetFramework>net7.0</TargetFramework>
+    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+    <OutputPath>bin\</OutputPath>
+    <UserSecretsId>ad233da0-f16a-42df-bcf6-a2f575f2d4e0</UserSecretsId>
+    <DockerDefaultTargetOS>Windows</DockerDefaultTargetOS>
+  </PropertyGroup>
+</Project>

+ 7 - 15
EVCB_OCPP.WEBAPI/EVCB_OCPP.WEBAPI.csproj

@@ -18,8 +18,6 @@
       <SpecificVersion>False</SpecificVersion>
       <HintPath>Dll\EVCB_OCPP20.Packet.dll</HintPath>
     </Reference>
-    <Reference Include="System.IO.Compression" />
-    <Reference Include="System.Transactions" />
   </ItemGroup>
   <ItemGroup>
     <Compile Update="Global.asax.cs">
@@ -43,19 +41,15 @@
   <ItemGroup>
     <PackageReference Include="bootstrap" Version="5.2.2" />
     <PackageReference Include="Dapper" Version="2.0.123" />
+    <PackageReference Include="GitVersion.MsBuild" Version="5.11.1">
+      <PrivateAssets>all</PrivateAssets>
+      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
+    </PackageReference>
     <PackageReference Include="jQuery" Version="3.6.1" />
-    <PackageReference Include="Microsoft.AspNet.Mvc.zh-Hant" Version="5.2.9" />
-    <PackageReference Include="Microsoft.AspNet.Razor.zh-Hant" Version="3.2.9" />
-    <PackageReference Include="Microsoft.AspNet.Web.Optimization.zh-Hant" Version="1.1.3" />
-    <PackageReference Include="Microsoft.AspNet.WebApi" Version="5.2.9" />
-    <PackageReference Include="Microsoft.AspNet.WebApi.Client.zh-Hant" Version="5.2.9" />
-    <PackageReference Include="Microsoft.AspNet.WebApi.Core.zh-Hant" Version="5.2.9" />
-    <PackageReference Include="Microsoft.AspNet.WebApi.HelpPage" Version="5.2.9" />
-    <PackageReference Include="Microsoft.AspNet.WebApi.WebHost.zh-Hant" Version="5.2.9" />
-    <PackageReference Include="Microsoft.AspNet.WebPages.zh-Hant" Version="3.2.9" />
     <PackageReference Include="Microsoft.AspNetCore.Mvc.Abstractions" Version="2.2.0" />
     <PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
     <PackageReference Include="Microsoft.Extensions.Http" Version="7.0.0" />
+    <PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.17.0" />
     <PackageReference Include="Modernizr" Version="2.8.3" />
     <PackageReference Include="NLog.Config" Version="4.7.15" />
     <PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" />
@@ -64,19 +58,17 @@
     <PackageReference Include="System.ServiceModel.Duplex" Version="4.10.0" />
     <PackageReference Include="System.ServiceModel.NetTcp" Version="4.10.0" />
     <PackageReference Include="System.ServiceModel.Federation" Version="4.10.0" />
-    <PackageReference Include="System.Configuration.ConfigurationManager" Version="7.0.0" />
     <PackageReference Include="Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers" Version="0.4.355802">
       <PrivateAssets>all</PrivateAssets>
     </PackageReference>
     <PackageReference Include="Antlr4" Version="4.6.6" />
     <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="7.0.0" />
   </ItemGroup>
-  <PropertyGroup>
-    <PreBuildEvent>GitVersion.exe $(ProjectDir) /updateassemblyinfo</PreBuildEvent>
-  </PropertyGroup>
   <PropertyGroup>
     <TargetFramework>net7.0</TargetFramework>
     <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
     <OutputPath>bin\</OutputPath>
+    <UserSecretsId>ad233da0-f16a-42df-bcf6-a2f575f2d4e0</UserSecretsId>
+    <DockerDefaultTargetOS>Windows</DockerDefaultTargetOS>
   </PropertyGroup>
 </Project>

+ 3 - 0
EVCB_OCPP.WEBAPI/InstallGitVersion.bat

@@ -0,0 +1,3 @@
+@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
+
+choco install GitVersion.Portable

+ 0 - 1
EVCB_OCPP.WEBAPI/Middleware/ExceptionMiddleware.cs

@@ -1,5 +1,4 @@
 using EVCB_OCPP.WEBAPI.Models.WebAPI;
-using Microsoft.Ajax.Utilities;
 using Microsoft.AspNetCore.Http;
 using Microsoft.AspNetCore.Mvc;
 using Newtonsoft.Json;

+ 3 - 3
EVCB_OCPP.WEBAPI/Properties/AssemblyInfo.cs

@@ -31,6 +31,6 @@ using System.Runtime.InteropServices;
 //
 // 您可以指定所有值或預設修訂和組件數目
 // 指定為預設值:
-[assembly: AssemblyVersion("2.0.1.0")]
-[assembly: AssemblyFileVersion("2.0.1.0")]
-[assembly: AssemblyInformationalVersion("28264a8")]
+//[assembly: AssemblyVersion("2.0.1.0")]
+//[assembly: AssemblyFileVersion("2.0.1.0")]
+//[assembly: AssemblyInformationalVersion("28264a8")]

+ 9 - 1
EVCB_OCPP.WEBAPI/Properties/launchSettings.json

@@ -4,9 +4,17 @@
       "commandName": "Project",
       "launchBrowser": true,
       "environmentVariables": {
-        "ASPNETCORE_ENVIRONMENT": "Development"
+        "ASPNETCORE_ENVIRONMENT": "Development",
+        "AssemblySemVer": "1.2.3"
       },
       "applicationUrl": "https://localhost:13615;http://localhost:13616"
+    },
+    "Docker": {
+      "commandName": "Docker",
+      "launchBrowser": true,
+      "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}",
+      "publishAllPorts": true,
+      "useSSL": true
     }
   }
 }

+ 2 - 12
EVCB_OCPP.WEBAPI/Services/ChargePointService.cs

@@ -45,19 +45,9 @@ namespace EVCB_OCPP.WEBAPI.Services
                 parameters.Add("@LastUpdatedTime", lastUpdatedOn, DbType.DateTime, ParameterDirection.Output);
                 conn.Execute("GetBasicInfoLastUpdatedTimeById", parameters, commandType: System.Data.CommandType.StoredProcedure);
                 DateTime? time = null;
-                try
-                {
-                    time = parameters.Get<DateTime>("@LastUpdatedTime");
-
-                }
-                catch (Exception ex)
-                {
-                    time = DateTime.UtcNow;
-                }
-
-
-                lastUpdatedOn = DateTime.SpecifyKind(time.Value, DateTimeKind.Utc);
+                time = parameters.Get<DateTime?>("@LastUpdatedTime");
 
+                lastUpdatedOn = DateTime.SpecifyKind(time ?? DateTime.UtcNow, DateTimeKind.Utc);
 
             }