diff --git a/WebDoorCreator.API/Controllers/DoorImageController.cs b/WebDoorCreator.API/Controllers/DoorImageController.cs new file mode 100644 index 0000000..01abf98 --- /dev/null +++ b/WebDoorCreator.API/Controllers/DoorImageController.cs @@ -0,0 +1,86 @@ +using Microsoft.AspNetCore.Mvc; +using NLog; +using Svg; +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 + + // GET: api/Alive + [HttpGet] + public string Get() + { + return "OK"; + } + + [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!; + + #endregion Private Properties + + #region Private Methods + + private byte[] ImageToByte2(Image img) + { + using (var stream = new MemoryStream()) + { + img.Save(stream, System.Drawing.Imaging.ImageFormat.Png); + return stream.ToArray(); + } + } + + #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.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 @@ + 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/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() 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