update parziale gestione tempo ciclo

This commit is contained in:
Samuele Locatelli
2023-11-07 08:50:30 +01:00
parent 271acd62f9
commit 5c9d259e8f
7 changed files with 239 additions and 36 deletions
+5 -5
View File
@@ -129,7 +129,7 @@
</div>
}
<div class="col-6">
<div class="col-12 col-sm-6">
<div class="input-group input-group-lg">
<input type="text" class="form-control w-25" placeholder="Cerca" aria-label="Cerca">
<select class="form-select w-50" @bind="IdxOdlSel">
@@ -146,7 +146,7 @@
</div>
</div>
</div>
<div class="col-6">
<div class="col-12 col-sm-6">
@if (idxOdlSel > 0)
{
<button class="btn btn-lg btn-primary w-100"><i class="fa-solid fa-check me-1"></i> INIZIO Attrezzaggio</button>
@@ -158,12 +158,12 @@
</div>
@if (idxOdlSel > 0)
{
<div class="col-6">
<div class="col-12 col-sm-6">
<label class="form-label">note Attrezzaggio</label>
<textarea class="form-control" rows="3" @bind="@noteAttr"></textarea>
</div>
<div class="col-6">
<SelTempoMSMC TempoMC="@tcRichAttr"></SelTempoMSMC>
<div class="col-12 col-sm-6">
<SelTempoMSMC TempoMC="@tcRichAttr" modoControllo="SelTempoMSMC.timeControlMode.selettori"></SelTempoMSMC>
</div>
}
+22 -5
View File
@@ -1,5 +1,22 @@
<p>
Selettore TC MM:SS / M.CC
</p>
<i>implementare come altro con selettori tendina, testo libero, switch MC/MS...</i>
<div class="row">
<div class="col-8">
@if (modoControllo == timeControlMode.testo)
{
<div class="input-group">
<span class="input-group-text">Tempo</span>
<input type="text" class="form-control" @bind="@txtTempo">
</div>
}
else
{
<div class="input-group mb-3">
<span class="input-group-text">@labelTempoIN</span>
<input type="time" class="form-control" @bind="@selTempoMS" step="1">
</div>
}
</div>
<div class="col-4">
@lblTempo
</div>
</div>
+208 -22
View File
@@ -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
/// <summary>
/// modalità di visualizzazione ed interazione controllo tempo
/// </summary>
public enum timeControlMode
{
/// <summary>
/// controllo textbox
/// </summary>
testo = 0,
/// <summary>
/// selettori dropdown list
/// </summary>
selettori = 1
}
/// <summary>
/// modalità tempo principale (Minuti Secondi o Minuti Centesimali=
/// </summary>
public enum timeMode
{
/// <summary>
/// Minuti Secondi
/// </summary>
MS = 0,
/// <summary>
/// Minuti Centesimali
/// </summary>
MC = 1
}
#endregion Public Enums
#region Public Properties
/// <summary>
/// modalità rendering controllo
/// </summary>
[Parameter]
public double TempoMC { get; set; } = 1;
public timeControlMode modoControllo { get; set; } = timeControlMode.testo;
/// <summary>
/// modalità controllo tempo
/// </summary>
[Parameter]
public timeMode modoTempo { get; set; } = timeMode.MC;
/// <summary>
/// Valore tempo (centesimale)
/// </summary>
[Parameter]
public double TempoMC
{
get => _tempoMC;
set
{
_tempoMC = value;
_tempoMS = minCent2Sec(value);
}
}
#endregion Public Properties
#region Protected Properties
/// <summary>
/// tempo min.cent
/// </summary>
protected double _tempoMC { get; set; } = 0;
/// <summary>
/// tempo selezionato in formato Minuti Secondi
/// </summary>
protected DateTime selTempoMS
{
get => DateTime.Today.Add(TempoMS);
set => TempoMS = value.Subtract(value.Date);
}
/// <summary>
/// tempo selezionato in formato Minuti Secondi
/// </summary>
protected TimeSpan TempoMS
{
get
{
return _tempoMS;
}
set
{
_tempoMS = value;
_tempoMC = minSec2Cent(value);
}
}
#endregion Protected Properties
#region Protected Methods
/// <summary>
/// conversione da tempo minuti centesimali a minuti/secondi
/// </summary>
/// <param name="valore"></param>
/// <returns></returns>
protected TimeSpan minCent2Sec(double valore)
{
TimeSpan answ = TimeSpan.FromMinutes(valore);
return answ;
}
/// <summary>
/// conversione da tempo minuti/secondi a minuti centesimali
/// </summary>
/// <param name="valore"></param>
/// <returns></returns>
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
/// <summary>
/// tempo min:sec
/// </summary>
private TimeSpan _tempoMS { get; set; } = TimeSpan.FromSeconds(1);
/// <summary>
/// INdica il formato del tempo IN INGRESSO (selezionato)
/// </summary>
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
/// <summary>
/// mostra i controlli secondo richiesta
/// </summary>
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
}
}
+1 -1
View File
@@ -3,7 +3,7 @@
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<Nullable>enable</Nullable>
<Version>6.16.2311.620</Version>
<Version>6.16.2311.708</Version>
<ImplicitUsings>enable</ImplicitUsings>
<RootNamespace>MP_TAB_SERV</RootNamespace>
</PropertyGroup>
+1 -1
View File
@@ -1,6 +1,6 @@
<body>
<i>Modulo MAPOSPEC </i>
<h4>Versione: 6.16.2311.620</h4>
<h4>Versione: 6.16.2311.708</h4>
<br /> Note di rilascio:
<ul>
<li>
+1 -1
View File
@@ -1 +1 @@
6.16.2311.620
6.16.2311.708
+1 -1
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<item>
<version>6.16.2311.620</version>
<version>6.16.2311.708</version>
<url>https://nexus.steamware.net/repository/SWS/MP-TAB-SERV/stable/LAST/MP-TAB-SERV.zip</url>
<changelog>https://nexus.steamware.net/repository/SWS/MP-TAB-SERV/stable/LAST/ChangeLog.html</changelog>
<mandatory>false</mandatory>