diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ec3b4e3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,330 @@ + +# ---> VisualStudio +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +build/ +bld/ +[Bb]in/ +[Oo]bj/ + +# Visual Studio 2015 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUNIT +*.VisualState.xml +TestResult.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# DNX +project.lock.json +artifacts/ + +*_i.c +*_p.c +*_i.h +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf +*.cachefile + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# JustCode is a .NET coding add-in +.JustCode + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# TODO: Comment the next line if you want to checkin your web deploy settings +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# NuGet Packages +*.nupkg +# The packages folder can be ignored because of Package Restore +**/packages/* +# except build/, which is used as an MSBuild target. +!**/packages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/packages/repositories.config + +# Windows Azure Build Output +csx/ +*.build.csdef + +# Windows Store app package directory +AppPackages/ + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ + +# Others +ClientBin/ +[Ss]tyle[Cc]op.* +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.pfx +*.publishsettings +node_modules/ +orleans.codegen.cs + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +*.mdf +*.ldf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings + +# Microsoft Fakes +FakesAssemblies/ + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# ---> C Sharp +# Build Folders (you can keep bin if you'd like, to store dlls and pdbs) +[Bb]in/ +[Oo]bj/ + +# mstest test results +TestResults + +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.sln.docstates + +# Build results +[Dd]ebug/ +[Rr]elease/ +x64/ +*_i.c +*_p.c +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.log +*.vspscc +*.vssscc +.builds + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf + +# Visual Studio profiler +*.psess +*.vsp +*.vspx + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper* + +# NCrunch +*.ncrunch* +.*crunch*.local.xml + +# Installshield output folder +[Ee]xpress + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish + +# Publish Web Output +*.Publish.xml + +# NuGet Packages Directory +packages + +# Windows Azure Build Output +csx +*.build.csdef + +# Windows Store app package directory +AppPackages/ + +# Others +[Bb]in +[Oo]bj +sql +TestResults +[Tt]est[Rr]esult* +*.Cache +ClientBin +[Ss]tyle[Cc]op.* +~$* +*.dbmdl +Generated_Code #added for RIA/Silverlight projects + +# Backup & report files from converting an old project file to a newer +# Visual Studio version. Backup files are not needed, because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML + diff --git a/GPW.Api/GPW.Api.sln b/GPW.Api/GPW.Api.sln new file mode 100644 index 0000000..ef46213 --- /dev/null +++ b/GPW.Api/GPW.Api.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.31727.386 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GPW.Api", "GPW.Api\GPW.Api.csproj", "{EF8D5A17-0D60-4EF0-9262-57AFAC574843}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {EF8D5A17-0D60-4EF0-9262-57AFAC574843}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EF8D5A17-0D60-4EF0-9262-57AFAC574843}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EF8D5A17-0D60-4EF0-9262-57AFAC574843}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EF8D5A17-0D60-4EF0-9262-57AFAC574843}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {4EA406A5-8A20-49F6-85EE-ADDDBB02833F} + EndGlobalSection +EndGlobal diff --git a/GPW.Api/GPW.Api/.config/dotnet-tools.json b/GPW.Api/GPW.Api/.config/dotnet-tools.json new file mode 100644 index 0000000..b0e38ab --- /dev/null +++ b/GPW.Api/GPW.Api/.config/dotnet-tools.json @@ -0,0 +1,5 @@ +{ + "version": 1, + "isRoot": true, + "tools": {} +} \ No newline at end of file diff --git a/GPW.Api/GPW.Api/Controllers/VC19Controller.cs b/GPW.Api/GPW.Api/Controllers/VC19Controller.cs new file mode 100644 index 0000000..cbe8129 --- /dev/null +++ b/GPW.Api/GPW.Api/Controllers/VC19Controller.cs @@ -0,0 +1,61 @@ +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace GPW.Api.Controllers +{ + [ApiController] + [Route("api/[controller]")] + //[Route("[controller]")] + public class VC19Controller : ControllerBase + { + #region Private Fields + + private readonly ILogger _logger; + + #endregion Private Fields + + #region Public Constructors + + public VC19Controller(ILogger logger) + { + _logger = logger; + } + + #endregion Public Constructors + + #region Public Methods + + [HttpGet] + public IEnumerable Get() + { + var rng = new Random(); + return Enumerable.Range(1, 5).Select(index => new VC19Check + { + DTRecord = DateTime.Now.AddMinutes(-index * 3), + CheckRecorded = rng.Next(0, 10) > 5 ? true : false, + TimbrRecorder = rng.Next(0, 10) > 5 ? true : false + }) + .ToArray(); + } + + [HttpPost] + public VC19Check Post(DCCDecode DecodedData) + { + VC19Check answ = new VC19Check + { + DTRecord = DateTime.Now, + CheckRecorded = true, + TimbrRecorder = true, + Result = $"OK, Check Recorded for {DecodedData.Cognome} {DecodedData.Nome} {DecodedData.DOB:yyyy.MM.dd}" + }; + return answ; + } + + #endregion Public Methods + } +} \ No newline at end of file diff --git a/GPW.Api/GPW.Api/Controllers/WeatherForecastController.cs b/GPW.Api/GPW.Api/Controllers/WeatherForecastController.cs new file mode 100644 index 0000000..5b46439 --- /dev/null +++ b/GPW.Api/GPW.Api/Controllers/WeatherForecastController.cs @@ -0,0 +1,39 @@ +using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace GPW.Api.Controllers +{ + [ApiController] + [Route("[controller]")] + public class WeatherForecastController : ControllerBase + { + private static readonly string[] Summaries = new[] + { + "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" + }; + + private readonly ILogger _logger; + + public WeatherForecastController(ILogger logger) + { + _logger = logger; + } + + [HttpGet] + public IEnumerable Get() + { + var rng = new Random(); + return Enumerable.Range(1, 5).Select(index => new WeatherForecast + { + Date = DateTime.Now.AddDays(index), + TemperatureC = rng.Next(-20, 55), + Summary = Summaries[rng.Next(Summaries.Length)] + }) + .ToArray(); + } + } +} diff --git a/GPW.Api/GPW.Api/DCCDecode.cs b/GPW.Api/GPW.Api/DCCDecode.cs new file mode 100644 index 0000000..a453f80 --- /dev/null +++ b/GPW.Api/GPW.Api/DCCDecode.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace GPW.Api +{ + public class DCCDecode + { + #region Public Properties + + public string Cognome { get; set; } = ""; + public DateTime DOB { get; set; } + public string Nome { get; set; } = ""; + + #endregion Public Properties + } +} \ No newline at end of file diff --git a/GPW.Api/GPW.Api/GPW.Api.csproj b/GPW.Api/GPW.Api/GPW.Api.csproj new file mode 100644 index 0000000..c9be2f6 --- /dev/null +++ b/GPW.Api/GPW.Api/GPW.Api.csproj @@ -0,0 +1,22 @@ + + + + net5.0 + + + + <_WebToolingArtifacts Remove="Properties\PublishProfiles\IIS01.pubxml" /> + <_WebToolingArtifacts Remove="Properties\PublishProfiles\IIS02.pubxml" /> + + + + + + + + + Always + + + + diff --git a/GPW.Api/GPW.Api/Program.cs b/GPW.Api/GPW.Api/Program.cs new file mode 100644 index 0000000..ca954ac --- /dev/null +++ b/GPW.Api/GPW.Api/Program.cs @@ -0,0 +1,26 @@ +using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace GPW.Api +{ + public class Program + { + public static void Main(string[] args) + { + CreateHostBuilder(args).Build().Run(); + } + + public static IHostBuilder CreateHostBuilder(string[] args) => + Host.CreateDefaultBuilder(args) + .ConfigureWebHostDefaults(webBuilder => + { + webBuilder.UseStartup(); + }); + } +} diff --git a/GPW.Api/GPW.Api/Properties/launchSettings.json b/GPW.Api/GPW.Api/Properties/launchSettings.json new file mode 100644 index 0000000..f9a770b --- /dev/null +++ b/GPW.Api/GPW.Api/Properties/launchSettings.json @@ -0,0 +1,31 @@ +{ + "$schema": "http://json.schemastore.org/launchsettings.json", + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:65210", + "sslPort": 44300 + } + }, + "profiles": { + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "launchUrl": "swagger", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "GPW.Api": { + "commandName": "Project", + "dotnetRunMessages": "true", + "launchBrowser": true, + "launchUrl": "swagger", + "applicationUrl": "https://localhost:5001;http://localhost:5000", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } +} diff --git a/GPW.Api/GPW.Api/Startup.cs b/GPW.Api/GPW.Api/Startup.cs new file mode 100644 index 0000000..4a8154b --- /dev/null +++ b/GPW.Api/GPW.Api/Startup.cs @@ -0,0 +1,59 @@ +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.HttpsPolicy; +using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Logging; +using Microsoft.OpenApi.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace GPW.Api +{ + public class Startup + { + public Startup(IConfiguration configuration) + { + Configuration = configuration; + } + + public IConfiguration Configuration { get; } + + // This method gets called by the runtime. Use this method to add services to the container. + public void ConfigureServices(IServiceCollection services) + { + + services.AddControllers(); + services.AddSwaggerGen(c => + { + c.SwaggerDoc("v1", new OpenApiInfo { Title = "GPW.Api", Version = "v1" }); + }); + } + + // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. + public void Configure(IApplicationBuilder app, IWebHostEnvironment env) + { + if (env.IsDevelopment()) + { + app.UseDeveloperExceptionPage(); + app.UseSwagger(); + app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "GPW.Api v1")); + } + + app.UseHttpsRedirection(); + + app.UseRouting(); + + app.UseAuthorization(); + + app.UseEndpoints(endpoints => + { + endpoints.MapControllers(); + }); + } + } +} diff --git a/GPW.Api/GPW.Api/VC19Check.cs b/GPW.Api/GPW.Api/VC19Check.cs new file mode 100644 index 0000000..ddb6f6a --- /dev/null +++ b/GPW.Api/GPW.Api/VC19Check.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace GPW.Api +{ + /// + /// Esito chiamata VC19 + /// + public class VC19Check + { + #region Public Properties + + public bool CheckRecorded { get; set; } = true; + public DateTime DTRecord { get; set; } = DateTime.Now; + public string Result { get; set; } = ""; + public bool TimbrRecorder { get; set; } = false; + + #endregion Public Properties + } +} \ No newline at end of file diff --git a/GPW.Api/GPW.Api/WeatherForecast.cs b/GPW.Api/GPW.Api/WeatherForecast.cs new file mode 100644 index 0000000..83b5c3e --- /dev/null +++ b/GPW.Api/GPW.Api/WeatherForecast.cs @@ -0,0 +1,15 @@ +using System; + +namespace GPW.Api +{ + public class WeatherForecast + { + public DateTime Date { get; set; } + + public int TemperatureC { get; set; } + + public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); + + public string Summary { get; set; } + } +} diff --git a/GPW.Api/GPW.Api/appsettings.Development.json b/GPW.Api/GPW.Api/appsettings.Development.json new file mode 100644 index 0000000..8983e0f --- /dev/null +++ b/GPW.Api/GPW.Api/appsettings.Development.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft": "Warning", + "Microsoft.Hosting.Lifetime": "Information" + } + } +} diff --git a/GPW.Api/GPW.Api/appsettings.json b/GPW.Api/GPW.Api/appsettings.json new file mode 100644 index 0000000..d9d9a9b --- /dev/null +++ b/GPW.Api/GPW.Api/appsettings.json @@ -0,0 +1,10 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft": "Warning", + "Microsoft.Hosting.Lifetime": "Information" + } + }, + "AllowedHosts": "*" +} diff --git a/GPW.Api/GPW.Api/logs/.placeholder.txt b/GPW.Api/GPW.Api/logs/.placeholder.txt new file mode 100644 index 0000000..5f28270 --- /dev/null +++ b/GPW.Api/GPW.Api/logs/.placeholder.txt @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/InsomniaTest/GPW.Api.json b/InsomniaTest/GPW.Api.json new file mode 100644 index 0000000..39bb290 --- /dev/null +++ b/InsomniaTest/GPW.Api.json @@ -0,0 +1 @@ +{"_type":"export","__export_format":4,"__export_date":"2021-10-18T10:46:32.117Z","__export_source":"insomnia.desktop.app:v2021.5.3","resources":[{"_id":"req_13d8a26fe9d4433684a0816a33ecd618","parentId":"wrk_15a980661ee94bab9d1ccc5a2bac0f42","modified":1634553716040,"created":1634553671776,"url":"{{ _.BASE_URL }}/api/VC19","name":"DailyCheckList","description":"","method":"GET","body":{},"parameters":[],"headers":[],"authentication":{},"metaSortKey":-1627351578955,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"wrk_15a980661ee94bab9d1ccc5a2bac0f42","parentId":null,"modified":1634552379774,"created":1634552379774,"name":"GPW.Api","description":"","scope":"collection","_type":"workspace"},{"_id":"req_92b40959f3b14d069a1defaea63782d4","parentId":"wrk_15a980661ee94bab9d1ccc5a2bac0f42","modified":1634553902195,"created":1634553726864,"url":"{{ _.BASE_URL }}/api/VC19","name":"RecordCheck","description":"","method":"POST","body":{"mimeType":"application/json","text":"{\n \"cognome\": \"ROSSI\",\n \"dob\": \"1980-10-01\",\n \"nome\": \"PAOLO\"\n}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_ed76bfea595e4917be2ce6797185529e"}],"authentication":{},"metaSortKey":-1626151423711,"isPrivate":false,"settingStoreCookies":true,"settingSendCookies":true,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global","_type":"request"},{"_id":"env_659ee5f03be1f9fc42cab55192dd76583acae449","parentId":"wrk_15a980661ee94bab9d1ccc5a2bac0f42","modified":1634552627514,"created":1634552379782,"name":"Base Environment","data":{},"dataPropertyOrder":{},"color":null,"isPrivate":false,"metaSortKey":1634552379782,"_type":"environment"},{"_id":"jar_659ee5f03be1f9fc42cab55192dd76583acae449","parentId":"wrk_15a980661ee94bab9d1ccc5a2bac0f42","modified":1634552379783,"created":1634552379783,"name":"Default Jar","cookies":[],"_type":"cookie_jar"},{"_id":"spc_f198ccd3ea154fce9ba8e43694030bf9","parentId":"wrk_15a980661ee94bab9d1ccc5a2bac0f42","modified":1634552379777,"created":1634552379777,"fileName":"GPW.Api","contents":"","contentType":"yaml","_type":"api_spec"},{"_id":"env_9ae41782f3fc4f33bb679db14ed36156","parentId":"env_659ee5f03be1f9fc42cab55192dd76583acae449","modified":1634552719561,"created":1634552420009,"name":"DEV","data":{"BASE_URL":"https://localhost:44300"},"dataPropertyOrder":{"&":["BASE_URL"]},"color":null,"isPrivate":false,"metaSortKey":1634552420009,"_type":"environment"},{"_id":"env_8b92b7eaf4fc43538d77db9768714516","parentId":"env_659ee5f03be1f9fc42cab55192dd76583acae449","modified":1634552533475,"created":1634552444561,"name":"IIS01","data":{"BASE_URL":"https://iis01/GPW/Api"},"dataPropertyOrder":{"&":["BASE_URL"]},"color":null,"isPrivate":false,"metaSortKey":1634552444561,"_type":"environment"},{"_id":"env_6047c5aeb1f445748982b91445f3691d","parentId":"env_659ee5f03be1f9fc42cab55192dd76583acae449","modified":1634552536977,"created":1634552456998,"name":"IIS02","data":{"BASE_URL":"https://iis02/GPW/Api"},"dataPropertyOrder":{"&":["BASE_URL"]},"color":null,"isPrivate":false,"metaSortKey":1634552456998,"_type":"environment"}]} \ No newline at end of file diff --git a/Integrazioni/README.md b/Integrazioni/README.md new file mode 100644 index 0000000..32b9281 --- /dev/null +++ b/Integrazioni/README.md @@ -0,0 +1,24 @@ +# Specifiche Integrazioni +Di seguito le specifiche delle integrazioni tra GPW e sistemi terzi + +## Verifica C19 +Per la verifica dei certificati Covid-19 (GreenPass) abbiamo proceduto ad integrare GPW con app esterne, in particolare il flusso è il seguente + + * lettura QRCode da browser + * con applicazione node (basata su SDK ministero salute) decodifica QRCode da certificato valido + * chiamata a web.api x effettuare registrazione check (+ timbratura ingresso se necessario) + + +### Schema funzionamento chiamata +La chiamta fatta dal sw esterno a GPW deve impiegare + + * chiamata POST web.api + * payload json contenente il valore decodificato da DCC + * elaborazione web.api (registrazione certificato + eventuale timbratura) + * risultato chiamata per display a video risultato positivo verifica + + +Esempio per insomnia in allegato nella folder **InsomniaTest** del progetto, visualizzabile come swagger all'indirizzo swagger/index.html del progetto ed ai seguenti indirizzi in produzione: + * https://IIS01/GPW/Api/swagger/index.html + * https://IIS02/GPW/Api/swagger/index.html + * diff --git a/Integrazioni/README.pdf b/Integrazioni/README.pdf new file mode 100644 index 0000000..3205522 Binary files /dev/null and b/Integrazioni/README.pdf differ