333 lines
9.5 KiB
C#
333 lines
9.5 KiB
C#
using SteamWare;
|
|
using System;
|
|
using System.Web.UI;
|
|
|
|
namespace MoonProTablet.WebUserControls
|
|
{
|
|
public partial class mod_tempoMSMC : BaseUserControl
|
|
{
|
|
/// <summary>
|
|
/// modalità rendering controllo
|
|
/// </summary>
|
|
public timeControlMode modoControllo { get; set; }
|
|
/// <summary>
|
|
/// modalità controllo tempo
|
|
/// </summary>
|
|
public timeMode modoTempo
|
|
{
|
|
get
|
|
{
|
|
timeMode answ = timeMode.MC;
|
|
try
|
|
{
|
|
answ = (timeMode)memLayer.ML.objSessionObj("modoTempo");
|
|
}
|
|
catch
|
|
{ }
|
|
return answ;
|
|
}
|
|
set
|
|
{
|
|
memLayer.ML.setSessionVal("modoTempo", value);
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// tempo min.cent
|
|
/// </summary>
|
|
protected decimal _tempoMC
|
|
{
|
|
get
|
|
{
|
|
decimal answ = 0;
|
|
try
|
|
{
|
|
answ = Convert.ToDecimal(memLayer.ML.objSessionObj(string.Format("tempoMC-{0}", uid)));
|
|
}
|
|
catch
|
|
{ }
|
|
return answ;
|
|
}
|
|
set
|
|
{
|
|
memLayer.ML.setSessionVal(string.Format("tempoMC-{0}", uid), value);
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// tempo min:sec
|
|
/// </summary>
|
|
protected TimeSpan _tempoMS
|
|
{
|
|
get
|
|
{
|
|
TimeSpan answ = new TimeSpan(0, 0, 0);
|
|
try
|
|
{
|
|
answ = (TimeSpan)memLayer.ML.objSessionObj(string.Format("tempoMS-{0}", uid));
|
|
}
|
|
catch
|
|
{ }
|
|
return answ;
|
|
}
|
|
set
|
|
{
|
|
memLayer.ML.setSessionVal(string.Format("tempoMS-{0}", uid), value);
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// INdica il formato del tempo IN INGRESSO (selezionato)
|
|
/// </summary>
|
|
public string labelTempoIN
|
|
{
|
|
get
|
|
{
|
|
string answ = "";
|
|
if (modoTempo == timeMode.MC)
|
|
{
|
|
answ = "min.cent";
|
|
}
|
|
else
|
|
{
|
|
answ = "min:sec";
|
|
}
|
|
return answ;
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// caricamento pagina
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
// a secondo del modo di controllo mostro textbox o selettori...
|
|
bool showTesto = true;
|
|
if (modoControllo == timeControlMode.testo)
|
|
{
|
|
showTesto = true;
|
|
}
|
|
else
|
|
{
|
|
showTesto = false;
|
|
}
|
|
// sistemo visualizzazione dei 2 div
|
|
divTesto.Visible = showTesto;
|
|
divSelettori.Visible = !showTesto;
|
|
if (!Page.IsPostBack)
|
|
{
|
|
// fix numero item secondi
|
|
odsSecondi.SelectParameters.Clear();
|
|
odsSecondi.SelectParameters.Add("minVal", "0");
|
|
odsSecondi.SelectParameters.Add("maxVal", numItemSec.ToString());
|
|
// fix visualizzazione
|
|
showControls();
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// mostra i controlli secondo richiesta
|
|
/// </summary>
|
|
private void showControls()
|
|
{
|
|
if (modoControllo == timeControlMode.testo)
|
|
{
|
|
if (modoTempo == timeMode.MC)
|
|
{
|
|
txtTempo.Text = string.Format("{0:0.000}", tempoMC);
|
|
}
|
|
else
|
|
{
|
|
txtTempo.Text = string.Format("{0:#0}:{1:00}", tempoMS.Minutes, tempoMS.Seconds);
|
|
}
|
|
}
|
|
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.Text = string.Format("--> {0:#0}:{1:00} (min:sec)", tempoMS.Minutes, tempoMS.Seconds);
|
|
}
|
|
else
|
|
{
|
|
lblTempo.Text = string.Format("--> {0:0.000} (min.cent)", tempoMC);
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// num item x controllo secondi/centesimi
|
|
/// </summary>
|
|
public int numItemSec
|
|
{
|
|
get
|
|
{
|
|
int answ = 60;
|
|
if (modoTempo == timeMode.MS)
|
|
{
|
|
answ = 59;
|
|
}
|
|
else
|
|
{
|
|
answ = 99;
|
|
}
|
|
return answ;
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// tempo selezionato in formato Minuti Secondi
|
|
/// </summary>
|
|
public TimeSpan tempoMS
|
|
{
|
|
get
|
|
{
|
|
return _tempoMS;
|
|
}
|
|
set
|
|
{
|
|
_tempoMS = value;
|
|
_tempoMC = minSec2Cent(value);
|
|
showControls();
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// verifica se TC sia stato caricato dai controlli, se zero va caricato (almento tentato caricamento...)
|
|
/// </summary>
|
|
public void checkTC()
|
|
{
|
|
if (tempoMC == 0)
|
|
{
|
|
if (modoControllo == timeControlMode.testo)
|
|
{
|
|
updFromTextBox();
|
|
}
|
|
else
|
|
{
|
|
updFromDropDown();
|
|
}
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// tempo selezionato in formato Minuti Centesimi
|
|
/// </summary>
|
|
public decimal tempoMC
|
|
{
|
|
get
|
|
{
|
|
return _tempoMC;
|
|
}
|
|
set
|
|
{
|
|
_tempoMC = value;
|
|
_tempoMS = minCent2Sec(value);
|
|
showControls();
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// cambiato valore tempo...
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void txtTempo_TextChanged(object sender, EventArgs e)
|
|
{
|
|
updFromTextBox();
|
|
}
|
|
/// <summary>
|
|
/// update da casella testo
|
|
/// </summary>
|
|
private void updFromTextBox()
|
|
{
|
|
if (modoControllo == timeControlMode.testo)
|
|
{
|
|
if (modoTempo == timeMode.MC)
|
|
{
|
|
tempoMC = Convert.ToDecimal(txtTempo.Text.Replace(".", ","));
|
|
}
|
|
else
|
|
{
|
|
string tempoDP = txtTempo.Text.Replace(".", ":").Replace(",", ":");
|
|
int min = 0;
|
|
int sec = 0;
|
|
try
|
|
{
|
|
min = Convert.ToInt32(tempoDP.Substring(0, tempoDP.IndexOf(":")));
|
|
sec = Convert.ToInt32(tempoDP.Substring(tempoDP.IndexOf(":") + 1, tempoDP.Length - tempoDP.IndexOf(":") - 1));
|
|
}
|
|
catch
|
|
{ }
|
|
tempoMS = new TimeSpan(0, min, sec);
|
|
}
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// update da controlli dropdown
|
|
/// </summary>
|
|
private void updFromDropDown()
|
|
{
|
|
if (modoControllo == timeControlMode.selettori)
|
|
{
|
|
if (modoTempo == timeMode.MS)
|
|
{
|
|
tempoMS = new TimeSpan(0, Convert.ToInt32(ddlMinuti.SelectedValue), Convert.ToInt32(ddlSecondi.SelectedValue));
|
|
}
|
|
else
|
|
{
|
|
tempoMC = Convert.ToDecimal(Convert.ToDecimal(ddlMinuti.SelectedValue) + Convert.ToDecimal(ddlSecondi.SelectedValue) / 100);
|
|
}
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// selezione minuti
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void ddlMinuti_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
updFromDropDown();
|
|
}
|
|
/// <summary>
|
|
/// selezione secondi/centesimi
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void ddlSecondi_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
updFromDropDown();
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <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
|
|
}
|
|
|
|
/// <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
|
|
} |