From 5c9d259e8f9a4a310e2ab800a42e5b5f5995abf3 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Tue, 7 Nov 2023 08:50:30 +0100 Subject: [PATCH] update parziale gestione tempo ciclo --- MP-TAB-SERV/Components/OdlMan.razor | 10 +- MP-TAB-SERV/Components/SelTempoMSMC.razor | 27 ++- MP-TAB-SERV/Components/SelTempoMSMC.razor.cs | 230 +++++++++++++++++-- MP-TAB-SERV/MP-TAB-SERV.csproj | 2 +- MP-TAB-SERV/Resources/ChangeLog.html | 2 +- MP-TAB-SERV/Resources/VersNum.txt | 2 +- MP-TAB-SERV/Resources/manifest.xml | 2 +- 7 files changed, 239 insertions(+), 36 deletions(-) diff --git a/MP-TAB-SERV/Components/OdlMan.razor b/MP-TAB-SERV/Components/OdlMan.razor index e2046a00..3de3f2aa 100644 --- a/MP-TAB-SERV/Components/OdlMan.razor +++ b/MP-TAB-SERV/Components/OdlMan.razor @@ -129,7 +129,7 @@ } -
+
-
- +
+
} diff --git a/MP-TAB-SERV/Components/SelTempoMSMC.razor b/MP-TAB-SERV/Components/SelTempoMSMC.razor index e98a4e34..fc5a3392 100644 --- a/MP-TAB-SERV/Components/SelTempoMSMC.razor +++ b/MP-TAB-SERV/Components/SelTempoMSMC.razor @@ -1,5 +1,22 @@ -

- Selettore TC MM:SS / M.CC -

- -implementare come altro con selettori tendina, testo libero, switch MC/MS... + +
+
+ @if (modoControllo == timeControlMode.testo) + { +
+ Tempo + +
+ } + else + { +
+ @labelTempoIN + +
+ } +
+
+ @lblTempo +
+
diff --git a/MP-TAB-SERV/Components/SelTempoMSMC.razor.cs b/MP-TAB-SERV/Components/SelTempoMSMC.razor.cs index 6332e49f..61451f17 100644 --- a/MP-TAB-SERV/Components/SelTempoMSMC.razor.cs +++ b/MP-TAB-SERV/Components/SelTempoMSMC.razor.cs @@ -1,31 +1,217 @@ -using global::System; -using global::System.Collections.Generic; -using global::System.Linq; -using global::System.Threading.Tasks; using global::Microsoft.AspNetCore.Components; -using System.Net.Http; -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Components.Authorization; -using Microsoft.AspNetCore.Components.Forms; -using Microsoft.AspNetCore.Components.Routing; -using Microsoft.AspNetCore.Components.Web; -using Microsoft.AspNetCore.Components.Web.Virtualization; -using Microsoft.JSInterop; -using MP_TAB_SERV; -using MP_TAB_SERV.Shared; -using MP_TAB_SERV.Components; -using MP.Data; -using MP.Data.DatabaseModels; -using MP.Data.DTO; -using MP.Data.Services; -using Newtonsoft.Json; -using NLog; namespace MP_TAB_SERV.Components { public partial class SelTempoMSMC { + #region Public Enums + + /// + /// modalità di visualizzazione ed interazione controllo tempo + /// + public enum timeControlMode + { + /// + /// controllo textbox + /// + testo = 0, + + /// + /// selettori dropdown list + /// + selettori = 1 + } + + /// + /// modalità tempo principale (Minuti Secondi o Minuti Centesimali= + /// + public enum timeMode + { + /// + /// Minuti Secondi + /// + MS = 0, + + /// + /// Minuti Centesimali + /// + MC = 1 + } + + #endregion Public Enums + + #region Public Properties + + /// + /// modalità rendering controllo + /// [Parameter] - public double TempoMC { get; set; } = 1; + public timeControlMode modoControllo { get; set; } = timeControlMode.testo; + + /// + /// modalità controllo tempo + /// + [Parameter] + public timeMode modoTempo { get; set; } = timeMode.MC; + + /// + /// Valore tempo (centesimale) + /// + [Parameter] + public double TempoMC + { + get => _tempoMC; + set + { + _tempoMC = value; + _tempoMS = minCent2Sec(value); + } + } + + #endregion Public Properties + + #region Protected Properties + + /// + /// tempo min.cent + /// + protected double _tempoMC { get; set; } = 0; + + /// + /// tempo selezionato in formato Minuti Secondi + /// + protected DateTime selTempoMS + { + get => DateTime.Today.Add(TempoMS); + set => TempoMS = value.Subtract(value.Date); + } + + /// + /// tempo selezionato in formato Minuti Secondi + /// + protected TimeSpan TempoMS + { + get + { + return _tempoMS; + } + set + { + _tempoMS = value; + _tempoMC = minSec2Cent(value); + } + } + + #endregion Protected Properties + + #region Protected Methods + + /// + /// conversione da tempo minuti centesimali a minuti/secondi + /// + /// + /// + protected TimeSpan minCent2Sec(double valore) + { + TimeSpan answ = TimeSpan.FromMinutes(valore); + return answ; + } + + /// + /// conversione da tempo minuti/secondi a minuti centesimali + /// + /// + /// + protected double minSec2Cent(TimeSpan valore) + { + double answ = Math.Round(valore.TotalMinutes, 3); + return answ; + } + + protected override void OnParametersSet() + { + showControls(); + } + + #endregion Protected Methods + + #region Private Fields + + private string lblTempo = ""; + private string txtTempo = ""; + + #endregion Private Fields + + #region Private Properties + + /// + /// tempo min:sec + /// + private TimeSpan _tempoMS { get; set; } = TimeSpan.FromSeconds(1); + + /// + /// INdica il formato del tempo IN INGRESSO (selezionato) + /// + private string labelTempoIN + { + get + { + string answ = ""; + if (modoTempo == timeMode.MC) + { + answ = "min.cent"; + } + else + { + answ = "min:sec"; + } + return answ; + } + } + + #endregion Private Properties + + #region Private Methods + + /// + /// mostra i controlli secondo richiesta + /// + private void showControls() + { + if (modoControllo == timeControlMode.testo) + { + if (modoTempo == timeMode.MC) + { + txtTempo = $"{TempoMC:0.000}"; + } + else + { + txtTempo = $"{TempoMS:mm}:{TempoMS:ss}"; + } + } + else + { + //ddlMinuti.SelectedValue = TempoMS.Minutes.ToString(); + //if (modoTempo == timeMode.MC) + //{ + // ddlSecondi.SelectedValue = Convert.ToInt32((tempoMC - Math.Floor(tempoMC)) * 100).ToString(); + //} + //else + //{ + // ddlSecondi.SelectedValue = TempoMS.Seconds.ToString(); + //} + } + // fix label... + if (modoTempo == timeMode.MC) + { + lblTempo = $"--> {TempoMS:mm}:{TempoMS:ss} (min:sec)"; + } + else + { + lblTempo = $"--> {TempoMC:0.000} (min.cent)"; + } + } + + #endregion Private Methods } } \ No newline at end of file diff --git a/MP-TAB-SERV/MP-TAB-SERV.csproj b/MP-TAB-SERV/MP-TAB-SERV.csproj index 332c4a27..e6037d2d 100644 --- a/MP-TAB-SERV/MP-TAB-SERV.csproj +++ b/MP-TAB-SERV/MP-TAB-SERV.csproj @@ -3,7 +3,7 @@ net6.0 enable - 6.16.2311.620 + 6.16.2311.708 enable MP_TAB_SERV diff --git a/MP-TAB-SERV/Resources/ChangeLog.html b/MP-TAB-SERV/Resources/ChangeLog.html index 837f478a..72fa0cea 100644 --- a/MP-TAB-SERV/Resources/ChangeLog.html +++ b/MP-TAB-SERV/Resources/ChangeLog.html @@ -1,6 +1,6 @@ Modulo MAPOSPEC -

Versione: 6.16.2311.620

+

Versione: 6.16.2311.708


Note di rilascio:
  • diff --git a/MP-TAB-SERV/Resources/VersNum.txt b/MP-TAB-SERV/Resources/VersNum.txt index fc8f09f9..d337feb6 100644 --- a/MP-TAB-SERV/Resources/VersNum.txt +++ b/MP-TAB-SERV/Resources/VersNum.txt @@ -1 +1 @@ -6.16.2311.620 +6.16.2311.708 diff --git a/MP-TAB-SERV/Resources/manifest.xml b/MP-TAB-SERV/Resources/manifest.xml index 36ea59a5..bface0b0 100644 --- a/MP-TAB-SERV/Resources/manifest.xml +++ b/MP-TAB-SERV/Resources/manifest.xml @@ -1,6 +1,6 @@ - 6.16.2311.620 + 6.16.2311.708 https://nexus.steamware.net/repository/SWS/MP-TAB-SERV/stable/LAST/MP-TAB-SERV.zip https://nexus.steamware.net/repository/SWS/MP-TAB-SERV/stable/LAST/ChangeLog.html false