From ac8e8a8682cb17adf7d29a4ec01cb84e98cda8a5 Mon Sep 17 00:00:00 2001 From: "zaccaria.majid" Date: Mon, 22 May 2023 17:07:53 +0200 Subject: [PATCH 1/3] fix grafico --- .../Components/DoorDef/BaseParamList.razor | 4 +++- WebDoorCreator.UI/Pages/DoorDefinition.razor | 2 +- WebDoorCreator.UI/Pages/OrdersHomePage.razor | 14 +++++++------- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/WebDoorCreator.UI/Components/DoorDef/BaseParamList.razor b/WebDoorCreator.UI/Components/DoorDef/BaseParamList.razor index ffb095a..5f1f344 100644 --- a/WebDoorCreator.UI/Components/DoorDef/BaseParamList.razor +++ b/WebDoorCreator.UI/Components/DoorDef/BaseParamList.razor @@ -12,7 +12,9 @@ else
Pending changes: @DoorOp2Save.Count()
} -
+
+ +
@if (paramsChanged) { diff --git a/WebDoorCreator.UI/Pages/DoorDefinition.razor b/WebDoorCreator.UI/Pages/DoorDefinition.razor index 509b839..ec2fac7 100644 --- a/WebDoorCreator.UI/Pages/DoorDefinition.razor +++ b/WebDoorCreator.UI/Pages/DoorDefinition.razor @@ -31,7 +31,7 @@ @**@ @if (orderStatus != null) { - + @**@ } @if (currDefStep == 10) { diff --git a/WebDoorCreator.UI/Pages/OrdersHomePage.razor b/WebDoorCreator.UI/Pages/OrdersHomePage.razor index 612b53f..fd4a5ee 100644 --- a/WebDoorCreator.UI/Pages/OrdersHomePage.razor +++ b/WebDoorCreator.UI/Pages/OrdersHomePage.razor @@ -30,16 +30,16 @@ {
-
+
ORDER LIST
-
+
Order Date:
 
@ord2Show.DateIns
-
+
Order Number:
 
@ord2Show.OrderExtCode
@@ -49,12 +49,12 @@
 
@ord2Show.OrderDescript
-
+
Models Number:
 
@ord2Show.NumType
-
+
Quantity:
 
@ord2Show.NumDoors
@@ -83,7 +83,7 @@ @if (ord2Show != null) {
-
+
ORDER LIST
@@ -129,7 +129,7 @@
-
+
DOORS LIST
From f7cf1727c923b5bdb0a473c4be4306b3cee21998 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Mon, 22 May 2023 17:55:48 +0200 Subject: [PATCH 2/3] Aggiunta in API export doorImage (SVG+PNG) --- .../Controllers/DoorImageController.cs | 75 +++++++++++++++++++ WebDoorCreator.API/WebDoorCreator.API.csproj | 1 + 2 files changed, 76 insertions(+) create mode 100644 WebDoorCreator.API/Controllers/DoorImageController.cs diff --git a/WebDoorCreator.API/Controllers/DoorImageController.cs b/WebDoorCreator.API/Controllers/DoorImageController.cs new file mode 100644 index 0000000..bbc74f8 --- /dev/null +++ b/WebDoorCreator.API/Controllers/DoorImageController.cs @@ -0,0 +1,75 @@ +using Microsoft.AspNetCore.Mvc; +using NLog; +using Svg; +using System.Data.SqlTypes; +using System.Drawing; +using WebDoorCreator.Data.Services; + +namespace WebDoorCreator.API.Controllers +{ + [Route("api/[controller]")] + [ApiController] + public class DoorImageController : ControllerBase + { + #region Public Constructors + + public DoorImageController(IConfiguration configuration, QueueDataService DataService) + { + Log.Info("Starting DoorImageController"); + _configuration = configuration; + QDataServ = DataService; + Log.Info("Avviato DoorImageController"); + } + + #endregion Public Constructors + + #region Public Methods + + [HttpGet("GetImage.png")] + public async Task GetImagePng(int DoorId) + { + byte[] result= new byte[0]; + string svgContent = await QDataServ.DoorGetLastSvg(DoorId); + if (!string.IsNullOrEmpty(svgContent)) + { + var mySvg = SvgDocument.FromSvg(svgContent); + //result = System.Text.Encoding.UTF8.GetBytes(svgContent); + var myBmp = mySvg.Draw(); + result = ImageToByte2(myBmp); + } + return File(result, "image/png"); + } + + [HttpGet("GetImage.svg")] + public async Task GetImageSvg(int DoorId) + { + string svgContent = await QDataServ.DoorGetLastSvg(DoorId); + var result = System.Text.Encoding.UTF8.GetBytes(svgContent); + return File(result, "image/svg+xml"); + } + + #endregion Public Methods + + #region Private Fields + + private static IConfiguration _configuration = null!; + private static Logger Log = LogManager.GetCurrentClassLogger(); + + #endregion Private Fields + + #region Private Properties + + private QueueDataService QDataServ { get; set; } = null!; + + private byte[] ImageToByte2(Image img) + { + using (var stream = new MemoryStream()) + { + img.Save(stream, System.Drawing.Imaging.ImageFormat.Png); + return stream.ToArray(); + } + } + + #endregion Private Properties + } +} \ No newline at end of file diff --git a/WebDoorCreator.API/WebDoorCreator.API.csproj b/WebDoorCreator.API/WebDoorCreator.API.csproj index 0f32449..7e41f55 100644 --- a/WebDoorCreator.API/WebDoorCreator.API.csproj +++ b/WebDoorCreator.API/WebDoorCreator.API.csproj @@ -24,6 +24,7 @@ + From 1a498357c13e74b540cd9b07e791b4c62f4bc00c Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Mon, 22 May 2023 17:59:57 +0200 Subject: [PATCH 3/3] WebAPI: - aggiunta doorImage service - conversione png + svg inclusa --- .../Controllers/DoorImageController.cs | 17 ++++++++++++--- WebDoorCreator.API/Utils.cs | 21 +++++++++++++++++++ .../Controllers/DoorImageController.cs | 17 +++++++++++++++ 3 files changed, 52 insertions(+), 3 deletions(-) create mode 100644 WebDoorCreator.API/Utils.cs diff --git a/WebDoorCreator.API/Controllers/DoorImageController.cs b/WebDoorCreator.API/Controllers/DoorImageController.cs index bbc74f8..01abf98 100644 --- a/WebDoorCreator.API/Controllers/DoorImageController.cs +++ b/WebDoorCreator.API/Controllers/DoorImageController.cs @@ -1,7 +1,6 @@ using Microsoft.AspNetCore.Mvc; using NLog; using Svg; -using System.Data.SqlTypes; using System.Drawing; using WebDoorCreator.Data.Services; @@ -25,10 +24,17 @@ namespace WebDoorCreator.API.Controllers #region Public Methods + // GET: api/Alive + [HttpGet] + public string Get() + { + return "OK"; + } + [HttpGet("GetImage.png")] public async Task GetImagePng(int DoorId) { - byte[] result= new byte[0]; + byte[] result = new byte[0]; string svgContent = await QDataServ.DoorGetLastSvg(DoorId); if (!string.IsNullOrEmpty(svgContent)) { @@ -53,6 +59,7 @@ namespace WebDoorCreator.API.Controllers #region Private Fields private static IConfiguration _configuration = null!; + private static Logger Log = LogManager.GetCurrentClassLogger(); #endregion Private Fields @@ -61,6 +68,10 @@ namespace WebDoorCreator.API.Controllers private QueueDataService QDataServ { get; set; } = null!; + #endregion Private Properties + + #region Private Methods + private byte[] ImageToByte2(Image img) { using (var stream = new MemoryStream()) @@ -70,6 +81,6 @@ namespace WebDoorCreator.API.Controllers } } - #endregion Private Properties + #endregion Private Methods } } \ No newline at end of file diff --git a/WebDoorCreator.API/Utils.cs b/WebDoorCreator.API/Utils.cs new file mode 100644 index 0000000..d2fc45f --- /dev/null +++ b/WebDoorCreator.API/Utils.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using static System.Net.Mime.MediaTypeNames; + +namespace WebDoorCreator.Core +{ + public class Utils + { + public static byte[] ImageToByte2(Image img) + { + using (var stream = new MemoryStream()) + { + img.Save(stream, System.Drawing.Imaging.ImageFormat.Png); + return stream.ToArray(); + } + } + } +} diff --git a/WebDoorCreator.UI/Controllers/DoorImageController.cs b/WebDoorCreator.UI/Controllers/DoorImageController.cs index 4ae68f7..17e488c 100644 --- a/WebDoorCreator.UI/Controllers/DoorImageController.cs +++ b/WebDoorCreator.UI/Controllers/DoorImageController.cs @@ -19,6 +19,23 @@ namespace WebDoorCreator.UI.Controllers return File(result, "image/svg+xml"); } +#if false + [HttpGet("GetImage.png")] + public async Task GetImagePng(int DoorId) + { + byte[] result = new byte[0]; + string svgContent = await QDataServ.DoorGetLastSvg(DoorId); + if (!string.IsNullOrEmpty(svgContent)) + { + var mySvg = SvgDocument.FromSvg(svgContent); + //result = System.Text.Encoding.UTF8.GetBytes(svgContent); + var myBmp = mySvg.Draw(); + result = Utils.ImageToByte2(myBmp); + } + return File(result, "image/png"); + } +#endif + // GET: api/Alive [HttpGet] public string Get()