From c9f095ad684a41f00392a94c5b184fbbe29d72bd Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Fri, 13 Nov 2020 14:21:16 +0100 Subject: [PATCH] Demo Tab x Baldi (2 review) --- MP-IO/Controllers/WebAPI/DbMaintController.cs | 57 +++++++++ MP-IO/MP-IO.csproj | 1 + MP-MON/App_Start/WebApiConfig.cs | 21 ++++ MP-MON/Controllers/DbTaskController.cs | 39 ++++++ MP-MON/MP-MON.csproj | 11 ++ MP-MON/MP-MON.csproj.user | 2 + MP-MON/Web.config | 10 +- MP-MON/packages.config | 4 + MP-TAB/Demo.aspx | 116 ++++++++++++++++++ MP-TAB/Demo.aspx.cs | 17 +++ MP-TAB/Demo.aspx.designer.cs | 35 ++++++ MP-TAB/MP-TAB.csproj | 11 ++ MP-TAB/WebUserControls/mod_ODL.ascx.cs | 7 +- MP-TAB/images/GraphDemo01.png | Bin 0 -> 14138 bytes MP-TAB/images/GraphDemo02.png | Bin 0 -> 9593 bytes MP-TAB/images/gauge.png | Bin 0 -> 8689 bytes 16 files changed, 322 insertions(+), 9 deletions(-) create mode 100644 MP-IO/Controllers/WebAPI/DbMaintController.cs create mode 100644 MP-MON/App_Start/WebApiConfig.cs create mode 100644 MP-MON/Controllers/DbTaskController.cs create mode 100644 MP-TAB/Demo.aspx create mode 100644 MP-TAB/Demo.aspx.cs create mode 100644 MP-TAB/Demo.aspx.designer.cs create mode 100644 MP-TAB/images/GraphDemo01.png create mode 100644 MP-TAB/images/GraphDemo02.png create mode 100644 MP-TAB/images/gauge.png diff --git a/MP-IO/Controllers/WebAPI/DbMaintController.cs b/MP-IO/Controllers/WebAPI/DbMaintController.cs new file mode 100644 index 00000000..fb038bbd --- /dev/null +++ b/MP-IO/Controllers/WebAPI/DbMaintController.cs @@ -0,0 +1,57 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Web.Http; + +namespace MP_IO.Controllers.WebAPI +{ + public class DbMaintController : ApiController + { + #region Public Methods + + // DELETE api//5 + public void Delete(int id) + { + } + + /// + /// GET api/DbMaint + /// Esegue tutte le manutenzioni configurate x il DB + /// + /// + /// + [CacheFilter(TimeDuration = 5)] + [HttpGet] + public string Get() + { + return $"DbMaint executed - {DateTime.Now}"; + } + + /// + /// GET api/DbMaint/parameter + /// Esegue una singola manutenzione configurata x il DB + /// + /// + /// + [CacheFilter(TimeDuration = 5)] + [HttpGet] + public string Get(string id) + { + return $"DbMaint requested: {id} - {DateTime.Now}"; + } + + // POST api/ + public void Post([FromBody] string value) + { + } + + // PUT api//5 + public void Put(int id, [FromBody] string value) + { + } + + #endregion Public Methods + } +} \ No newline at end of file diff --git a/MP-IO/MP-IO.csproj b/MP-IO/MP-IO.csproj index 06568143..e39703cf 100644 --- a/MP-IO/MP-IO.csproj +++ b/MP-IO/MP-IO.csproj @@ -304,6 +304,7 @@ + default.aspx diff --git a/MP-MON/App_Start/WebApiConfig.cs b/MP-MON/App_Start/WebApiConfig.cs new file mode 100644 index 00000000..e0c350dd --- /dev/null +++ b/MP-MON/App_Start/WebApiConfig.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web.Http; + +namespace MP_MON +{ + public static class WebApiConfig + { + public static void Register(HttpConfiguration config) + { + config.MapHttpAttributeRoutes(); + + config.Routes.MapHttpRoute( + name: "DefaultApi", + routeTemplate: "api/{controller}/{id}", + defaults: new { id = RouteParameter.Optional } + ); + } + } +} diff --git a/MP-MON/Controllers/DbTaskController.cs b/MP-MON/Controllers/DbTaskController.cs new file mode 100644 index 00000000..f8315f0f --- /dev/null +++ b/MP-MON/Controllers/DbTaskController.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Web.Http; + +namespace MP_MON.Controllers +{ + public class DbTaskController : ApiController + { + // GET: api/DbTask + public IEnumerable Get() + { + return new string[] { "value1", "value2" }; + } + + // GET: api/DbTask/5 + public string Get(int id) + { + return "value"; + } + + // POST: api/DbTask + public void Post([FromBody]string value) + { + } + + // PUT: api/DbTask/5 + public void Put(int id, [FromBody]string value) + { + } + + // DELETE: api/DbTask/5 + public void Delete(int id) + { + } + } +} diff --git a/MP-MON/MP-MON.csproj b/MP-MON/MP-MON.csproj index e257e9d7..6a8edfcd 100644 --- a/MP-MON/MP-MON.csproj +++ b/MP-MON/MP-MON.csproj @@ -147,6 +147,9 @@ ..\packages\System.Net.Http.4.3.4\lib\net46\System.Net.Http.dll + + ..\packages\Microsoft.AspNet.WebApi.Client.5.2.7\lib\net45\System.Net.Http.Formatting.dll + ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll @@ -190,6 +193,12 @@ ..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.Helpers.dll + + ..\packages\Microsoft.AspNet.WebApi.Core.5.2.7\lib\net45\System.Web.Http.dll + + + ..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.7\lib\net45\System.Web.Http.WebHost.dll + ..\packages\Microsoft.AspNet.Mvc.5.2.7\lib\net45\System.Web.Mvc.dll @@ -235,6 +244,8 @@ + + diff --git a/MP-MON/MP-MON.csproj.user b/MP-MON/MP-MON.csproj.user index 009e2263..8765882c 100644 --- a/MP-MON/MP-MON.csproj.user +++ b/MP-MON/MP-MON.csproj.user @@ -20,6 +20,8 @@ Debug|Any CPU + ApiControllerWithActionsScaffolder + root/Controller diff --git a/MP-MON/Web.config b/MP-MON/Web.config index 1f51fc68..583d1aff 100644 --- a/MP-MON/Web.config +++ b/MP-MON/Web.config @@ -118,7 +118,12 @@ - + + + + + + @@ -131,7 +136,6 @@ - + \ No newline at end of file diff --git a/MP-MON/packages.config b/MP-MON/packages.config index bb3eabeb..7d56a952 100644 --- a/MP-MON/packages.config +++ b/MP-MON/packages.config @@ -17,6 +17,10 @@ + + + + diff --git a/MP-TAB/Demo.aspx b/MP-TAB/Demo.aspx new file mode 100644 index 00000000..fe44e321 --- /dev/null +++ b/MP-TAB/Demo.aspx @@ -0,0 +1,116 @@ +<%@ Page Title="" Language="C#" MasterPageFile="~/WebMasterPages/Bootstrap.Master" AutoEventWireup="true" CodeBehind="Demo.aspx.cs" Inherits="MoonProTablet.Demo" %> + + + + +
+
+

M.I.E.T.

+
+
+
+
+ START +
+
+ Status: waiting +
+
+ STOP +
+
+
+
+

Val 01

+
+ +
+
+
Realtime Data
+ <%: DateTime.Now %> +
+
+

Val 02

+
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InizioDurataNome# rec
2020-11-12 09:05:3600:15:35Demo recording 01900USB
2020-11-11 09:05:3600:05:35Demo recording 02900USB
2020-11-10 09:05:3600:10:35Demo recording 03900USB
2020-11-09 09:05:3600:25:35Demo recording 04900USB
2020-11-08 09:05:3600:14:35Demo recording 05900USB
2020-11-07 09:05:3600:35:35Demo recording 06900USB
+
+
+
+ +
+
\ No newline at end of file diff --git a/MP-TAB/Demo.aspx.cs b/MP-TAB/Demo.aspx.cs new file mode 100644 index 00000000..6b46e007 --- /dev/null +++ b/MP-TAB/Demo.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace MoonProTablet +{ + public partial class Demo : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/MP-TAB/Demo.aspx.designer.cs b/MP-TAB/Demo.aspx.designer.cs new file mode 100644 index 00000000..5cc7a064 --- /dev/null +++ b/MP-TAB/Demo.aspx.designer.cs @@ -0,0 +1,35 @@ +//------------------------------------------------------------------------------ +// +// Codice generato da uno strumento. +// +// Le modifiche a questo file possono causare un comportamento non corretto e verranno perse se +// il codice viene rigenerato. +// +//------------------------------------------------------------------------------ + +namespace MoonProTablet +{ + + + public partial class Demo + { + + /// + /// Controllo lbtStart. + /// + /// + /// Campo generato automaticamente. + /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. + /// + protected global::System.Web.UI.WebControls.LinkButton lbtStart; + + /// + /// Controllo lbtStop. + /// + /// + /// Campo generato automaticamente. + /// Per la modifica, spostare la dichiarazione di campo dal file di progettazione al file code-behind. + /// + protected global::System.Web.UI.WebControls.LinkButton lbtStop; + } +} diff --git a/MP-TAB/MP-TAB.csproj b/MP-TAB/MP-TAB.csproj index 04912a04..edbc3695 100644 --- a/MP-TAB/MP-TAB.csproj +++ b/MP-TAB/MP-TAB.csproj @@ -454,6 +454,7 @@ + @@ -469,6 +470,9 @@ + + + @@ -778,6 +782,13 @@ Default.aspx + + Demo.aspx + ASPXCodeBehind + + + Demo.aspx + DettaglioMacchina.aspx diff --git a/MP-TAB/WebUserControls/mod_ODL.ascx.cs b/MP-TAB/WebUserControls/mod_ODL.ascx.cs index 457b7e2f..ecdbc4ba 100644 --- a/MP-TAB/WebUserControls/mod_ODL.ascx.cs +++ b/MP-TAB/WebUserControls/mod_ODL.ascx.cs @@ -998,12 +998,7 @@ namespace MoonProTablet.WebUserControls protected void lbtStartAttr_Click(object sender, EventArgs e) { /*************************************************** - * * DA VALUTARE (x macchine tipo linea con + impianti... es valvital) SE - * - creare una gestione ALTERNATIVA sul server che preveda impianto LEADER e impianti follower (RIGIDAMENTE CONFIGURATI) - * - ogni volta che si fa setup LEADER --> si ripete su impianti FOLLOWER (eventi!!!) - * - viene fatto reset contapezzi sui follower (+ altre operazioni opzionali, ES imposstazione nome commessa, quantità, articolo...) - * - viene fatto reset + nuovo ODL (con stessi articoli e quantità) su follower, SENZA avere gestione x ODL di un codice esterno (quindi registra TUTTO ma NON RITORNERA' dati on avendo link verso esterno) - * - serve NUOVA TABELLA delle macchine LEADER | FOLLOWER (1:n) e gestione da MP/IO + * comprende gestione machineSlave x fix ODL master --> slave * ***************************************************/ diff --git a/MP-TAB/images/GraphDemo01.png b/MP-TAB/images/GraphDemo01.png new file mode 100644 index 0000000000000000000000000000000000000000..1063227a789dc816b5a350b16f3dde5c26425bb3 GIT binary patch literal 14138 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 literal 0 HcmV?d00001 diff --git a/MP-TAB/images/gauge.png b/MP-TAB/images/gauge.png new file mode 100644 index 0000000000000000000000000000000000000000..b1aaf1fc3850fdf7ced86b6ebd977b18cc27ebce GIT binary patch literal 8689 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