diff --git a/MP-Site/WebUserControls/mod_periodoAnalisi.ascx.cs b/MP-Site/WebUserControls/mod_periodoAnalisi.ascx.cs
index c6308030..72843999 100644
--- a/MP-Site/WebUserControls/mod_periodoAnalisi.ascx.cs
+++ b/MP-Site/WebUserControls/mod_periodoAnalisi.ascx.cs
@@ -3,314 +3,314 @@ using System;
namespace MoonPro.WebUserControls
{
- public partial class mod_periodoAnalisi : System.Web.UI.UserControl
+ public partial class mod_periodoAnalisi : System.Web.UI.UserControl
+ {
+ #region area protected
+
+ protected intervalloDate _intervallo;
+
+ protected override void OnInit(EventArgs e)
{
- #region area protected
-
- protected intervalloDate _intervallo;
-
- protected override void OnInit(EventArgs e)
- {
- base.OnInit(e);
- setIntervallo();
- setDurataMin();
- }
-
- ///
- /// gestione del selettore rapido dell'intervallo temporale...
- ///
- ///
- ///
- protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
- {
- // verifico cosa sia cambiato ed imposto date...
- datario _datario = new datario();
- switch (DropDownList1.SelectedValue)
- {
- case "oggi":
- _intervallo = _datario.giornata(DateTime.Now);
- break;
- case "ieri":
- _intervallo = _datario.giornata(DateTime.Now.AddDays(-1));
- break;
- case "ultimi 7gg":
- _intervallo = _datario.ultimiGiorni(DateTime.Now, 7);
- break;
- case "questa settimana":
- _intervallo = _datario.questaSett(DateTime.Now);
- break;
- case "ultimi 30gg":
- _intervallo = _datario.ultimiGiorni(DateTime.Now, 30);
- break;
- case "questo mese":
- _intervallo = _datario.questoMese(DateTime.Now);
- break;
- default:
- break;
- }
- if ((intervalloAnalisi.inizio != _intervallo.inizio) || (intervalloAnalisi.fine != _intervallo.fine))
- {
- verificaCoerenzaDate();
- aggiornaDateMostrate(false);
- // mostro btn update
- btnUpdate.Visible = true;
- }
- }
- ///
- /// effettua update delle date mostrate da intervallo analisi (ed eventualmente riporta update...)
- ///
- ///
- private void aggiornaDateMostrate(bool doReportUpdate)
- {
- scriviDate();
- if (doReportUpdate)
- {
- reportUpdate();
- }
- }
- ///
- /// scrive nuove date in controllo
- ///
- private void scriviDate()
- {
- // se intervallo non è valorizzato leggo da sessione...
- if (!_intervallo.isValid)
- {
- _intervallo = intervalloAnalisi;
- }
- txtInizio.Text = _intervallo.inizio.ToShortDateString();
- ddlOraInizio.SelectedValue = _intervallo.inizio.Hour.ToString("00");
- txtFine.Text = _intervallo.fine.ToShortDateString();
- ddlOraFine.SelectedValue = _intervallo.fine.Hour.ToString("00");
- }
-
- private void setIntervallo()
- {
- intervalloDate _intervallo;
- try
- {
- _intervallo = (intervalloDate)Session["_intervallo"];
- }
- catch
- {
- _intervallo = new intervalloDate();
- _intervallo.inizio = DateTime.Now.AddDays(-7);
- _intervallo.fine = DateTime.Now;
- Session["_intervallo"] = _intervallo;
- Session["_inizio"] = _intervallo.inizio;
- Session["_fine"] = _intervallo.fine;
- }
- scriviDate();
- }
- private void setDurataMin()
- {
- int _durataMin;
- try
- {
- _durataMin = (int)Session["_durataMin"];
- }
- catch
- {
- _durataMin = 0;
- Session["_durataMin"] = _durataMin;
- }
- txtDurataMin.Text = _durataMin.ToString();
- }
- protected void Page_Load(object sender, EventArgs e)
- {
- txtInizio.ToolTip = "inizio periodo di riferimento per i dati mostrati";
- txtFine.ToolTip = "fine periodo di riferimento per i dati mostrati";
- lblDurataMin.Text = "Visualizza eventi con durata superiore a";
- }
-
-
- private void aggiornaPeriodo()
- {
- _intervallo = new intervalloDate();
- // calcolo tempi arrotondati
- int oraInizio = Convert.ToInt32(ddlOraInizio.SelectedValue);
- int oraFine = Convert.ToInt32(ddlOraFine.SelectedValue);
- _intervallo.inizio = Convert.ToDateTime(txtInizio.Text).AddHours(oraInizio);
- _intervallo.fine = Convert.ToDateTime(txtFine.Text).AddHours(oraFine);
- verificaCoerenzaDate();
- int _durataMin;
- _durataMin = Convert.ToInt32(txtDurataMin.Text);
- Session["_durataMin"] = _durataMin;
- reportUpdate();
-
- }
- ///
- /// verifica che le date dell'intervallo siano coerenti (inizio < fine)
- ///
- private void verificaCoerenzaDate()
- {
- // controllo date siano coerenti (fine > inizio)...
- if (_intervallo.inizio >= _intervallo.fine)
- {
- // controllo non siano date successive ad oggi...
- if (_intervallo.fine > DateTime.Now)
- {
- _intervallo.fine = DateTime.Now;
- }
- _intervallo.inizio = _intervallo.fine.AddDays(-1);
- }
- //intervalloAnalisi = _intervallo;
- aggiornaDateMostrate(false);
- }
- ///
- /// evento cambio testo data inizio
- ///
- ///
- ///
- protected void txtInizio_TextChanged(object sender, EventArgs e)
- {
- // imposto il selettore a discesa...
- setPeriodoFree();
- // mostro btn update
- btnUpdate.Visible = true;
- }
- ///
- /// evento cambio testo data fine
- ///
- ///
- ///
- protected void txtFine_TextChanged(object sender, EventArgs e)
- {
- // imposto il selettore a discesa...
- setPeriodoFree();
- // mostro btn update
- btnUpdate.Visible = true;
- }
- ///
- /// in questo caso faccio udpate periodo mostrato
- ///
- ///
- ///
- protected void btnUpdate_Click(object sender, EventArgs e)
- {
- aggiornaPeriodo();
- // nascondo btn update
- btnUpdate.Visible = false;
- }
- ///
- /// riporta aggiornamento a controller
- ///
- protected void reportUpdate()
- {
- intervalloAnalisi = _intervallo;
- // alzo l'evento d update/inserimento e ricarico cache...
- if (eh_doUpdate != null)
- {
- eh_doUpdate(this, new EventArgs());
- }
- }
-
- #endregion
-
- #region area public
-
- public intervalloDate intervalloAnalisi
- {
- get
- {
- return (intervalloDate)Session["_intervallo"];
- }
- set
- {
- intervalloDate interv = value;
- Session["_intervallo"] = interv;
- Session["_inizio"] = interv.inizio;
- Session["_fine"] = interv.fine;
- }
- }
- ///
- /// effettua update
- ///
- ///
- public void doUpdate(bool doReportUpdate)
- {
- aggiornaDateMostrate(doReportUpdate);
- }
- ///
- /// imposta periodo libero di selezione
- ///
- public void setPeriodoFree()
- {
- DropDownList1.SelectedIndex = 0;
- }
-
- #region gestione eventi
-
- public event EventHandler eh_doUpdate;
-
- #endregion
-
- ///
- /// effettua uno zoom 2 X sulle date attuali
- ///
- public void dateZoom()
- {
- // calcolo zoom 2X
- double intervMinutiOrig = intervalloAnalisi.fine.Subtract(intervalloAnalisi.inizio).TotalMinutes;
- // leggo data in cui lo zoom era centrato...
- DateTime centroZoom = Convert.ToDateTime(memLayer.ML.objSessionObj("zoomCenter"));
- // calcolo posizione relativa zoom...
- double posizioneZoom = centroZoom.Subtract(intervalloAnalisi.inizio).TotalMinutes / intervMinutiOrig;
- // init!
- _intervallo = intervalloAnalisi;
- // verifico che azione fare
- if (posizioneZoom < 0.25) // se è nel 1/4 lascio zoom inalterato e "vado a sx" di 1/2 intervallo
- {
- if (intervMinutiOrig > 120)
- {
- _intervallo.inizio = _intervallo.inizio.AddMinutes(-intervMinutiOrig / 2.0);
- _intervallo.fine = _intervallo.fine.AddMinutes(-intervMinutiOrig / 2.0);
- }
- else
- {
- _intervallo.inizio = _intervallo.inizio.AddMinutes(-60);
- _intervallo.fine = _intervallo.fine.AddMinutes(-60);
- }
- }
- else if (posizioneZoom > 0.75) // se è nel 3/4 lascio zoom inalterato e "vado a dx"
- {
- // mi imposto al max tra spostamento di 1/2 e l'ultimo dato disponibile...
- if (intervMinutiOrig > 120)
- {
- _intervallo.fine = _intervallo.fine.AddMinutes(intervMinutiOrig / 2.0);
- if (_intervallo.fine > DateTime.Now)
- {
- _intervallo.fine = DateTime.Now;
- }
- _intervallo.inizio = _intervallo.fine.AddMinutes(-intervMinutiOrig);
- }
- else
- {
- _intervallo.inizio = _intervallo.inizio.AddMinutes(60);
- _intervallo.fine = _intervallo.fine.AddMinutes(60);
- }
- }
- else // zoom!!!
- {
- if (intervMinutiOrig > 120)
- {
- _intervallo.inizio = _intervallo.inizio.AddMinutes(intervMinutiOrig / 4.0);
- _intervallo.fine = _intervallo.fine.AddMinutes(-intervMinutiOrig / 4.0);
- }
- else // 1 ora di zoom!
- {
- _intervallo.inizio = _intervallo.inizio.Date.AddHours(_intervallo.inizio.TimeOfDay.Hours);
- _intervallo.fine = _intervallo.inizio.AddHours(1);
- }
- }
- // arrotondo all'ora...
- _intervallo.inizio = _intervallo.inizio.Date.AddHours(_intervallo.inizio.TimeOfDay.Hours);
- _intervallo.fine = _intervallo.fine.Date.AddHours(_intervallo.fine.TimeOfDay.Hours);
- // aggiorno in sessione
- intervalloAnalisi = _intervallo;
- Response.Redirect("~/DettaglioMacchina.aspx");
- }
-
- #endregion
+ base.OnInit(e);
+ setIntervallo();
+ setDurataMin();
}
+
+ ///
+ /// gestione del selettore rapido dell'intervallo temporale...
+ ///
+ ///
+ ///
+ protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ // verifico cosa sia cambiato ed imposto date...
+ datario _datario = new datario();
+ switch (DropDownList1.SelectedValue)
+ {
+ case "oggi":
+ _intervallo = _datario.giornata(DateTime.Now);
+ break;
+ case "ieri":
+ _intervallo = _datario.giornata(DateTime.Now.AddDays(-1));
+ break;
+ case "ultimi 7gg":
+ _intervallo = _datario.ultimiGiorni(DateTime.Now, 7);
+ break;
+ case "questa settimana":
+ _intervallo = _datario.questaSett(DateTime.Now);
+ break;
+ case "ultimi 30gg":
+ _intervallo = _datario.ultimiGiorni(DateTime.Now, 30);
+ break;
+ case "questo mese":
+ _intervallo = _datario.questoMese(DateTime.Now);
+ break;
+ default:
+ break;
+ }
+ if ((intervalloAnalisi.inizio != _intervallo.inizio) || (intervalloAnalisi.fine != _intervallo.fine))
+ {
+ verificaCoerenzaDate();
+ aggiornaDateMostrate(false);
+ // mostro btn update
+ btnUpdate.Visible = true;
+ }
+ }
+ ///
+ /// effettua update delle date mostrate da intervallo analisi (ed eventualmente riporta update...)
+ ///
+ ///
+ private void aggiornaDateMostrate(bool doReportUpdate)
+ {
+ scriviDate();
+ if (doReportUpdate)
+ {
+ reportUpdate();
+ }
+ }
+ ///
+ /// scrive nuove date in controllo
+ ///
+ private void scriviDate()
+ {
+ // se intervallo non è valorizzato leggo da sessione...
+ if (!_intervallo.isValid)
+ {
+ _intervallo = intervalloAnalisi;
+ }
+ txtInizio.Text = _intervallo.inizio.ToShortDateString();
+ ddlOraInizio.SelectedValue = _intervallo.inizio.Hour.ToString("00");
+ txtFine.Text = _intervallo.fine.ToShortDateString();
+ ddlOraFine.SelectedValue = _intervallo.fine.Hour.ToString("00");
+ }
+
+ private void setIntervallo()
+ {
+ intervalloDate _intervallo;
+ try
+ {
+ _intervallo = (intervalloDate)Session["_intervallo"];
+ }
+ catch
+ {
+ _intervallo = new intervalloDate();
+ _intervallo.inizio = DateTime.Now.AddDays(-7);
+ _intervallo.fine = DateTime.Now;
+ Session["_intervallo"] = _intervallo;
+ Session["_inizio"] = _intervallo.inizio;
+ Session["_fine"] = _intervallo.fine;
+ }
+ scriviDate();
+ }
+ private void setDurataMin()
+ {
+ int _durataMin;
+ try
+ {
+ _durataMin = (int)Session["_durataMin"];
+ }
+ catch
+ {
+ _durataMin = 0;
+ Session["_durataMin"] = _durataMin;
+ }
+ txtDurataMin.Text = _durataMin.ToString();
+ }
+ protected void Page_Load(object sender, EventArgs e)
+ {
+ txtInizio.ToolTip = "inizio periodo di riferimento per i dati mostrati";
+ txtFine.ToolTip = "fine periodo di riferimento per i dati mostrati";
+ lblDurataMin.Text = "Visualizza eventi con durata superiore a";
+ }
+
+
+ private void aggiornaPeriodo()
+ {
+ _intervallo = new intervalloDate();
+ // calcolo tempi arrotondati
+ int oraInizio = Convert.ToInt32(ddlOraInizio.SelectedValue);
+ int oraFine = Convert.ToInt32(ddlOraFine.SelectedValue);
+ _intervallo.inizio = Convert.ToDateTime(txtInizio.Text).AddHours(oraInizio);
+ _intervallo.fine = Convert.ToDateTime(txtFine.Text).AddHours(oraFine);
+ verificaCoerenzaDate();
+ int _durataMin;
+ _durataMin = Convert.ToInt32(txtDurataMin.Text);
+ Session["_durataMin"] = _durataMin;
+ reportUpdate();
+
+ }
+ ///
+ /// verifica che le date dell'intervallo siano coerenti (inizio < fine)
+ ///
+ private void verificaCoerenzaDate()
+ {
+ // controllo date siano coerenti (fine > inizio)...
+ if (_intervallo.inizio >= _intervallo.fine)
+ {
+ // controllo non siano date successive ad oggi...
+ if (_intervallo.fine > DateTime.Now)
+ {
+ _intervallo.fine = DateTime.Now;
+ }
+ _intervallo.inizio = _intervallo.fine.AddDays(-1);
+ }
+ //intervalloAnalisi = _intervallo;
+ aggiornaDateMostrate(false);
+ }
+ ///
+ /// evento cambio testo data inizio
+ ///
+ ///
+ ///
+ protected void txtInizio_TextChanged(object sender, EventArgs e)
+ {
+ // imposto il selettore a discesa...
+ setPeriodoFree();
+ // mostro btn update
+ btnUpdate.Visible = true;
+ }
+ ///
+ /// evento cambio testo data fine
+ ///
+ ///
+ ///
+ protected void txtFine_TextChanged(object sender, EventArgs e)
+ {
+ // imposto il selettore a discesa...
+ setPeriodoFree();
+ // mostro btn update
+ btnUpdate.Visible = true;
+ }
+ ///
+ /// in questo caso faccio udpate periodo mostrato
+ ///
+ ///
+ ///
+ protected void btnUpdate_Click(object sender, EventArgs e)
+ {
+ aggiornaPeriodo();
+ // nascondo btn update
+ btnUpdate.Visible = false;
+ }
+ ///
+ /// riporta aggiornamento a controller
+ ///
+ protected void reportUpdate()
+ {
+ intervalloAnalisi = _intervallo;
+ // alzo l'evento d update/inserimento e ricarico cache...
+ if (eh_doUpdate != null)
+ {
+ eh_doUpdate(this, new EventArgs());
+ }
+ }
+
+ #endregion
+
+ #region area public
+
+ public intervalloDate intervalloAnalisi
+ {
+ get
+ {
+ return (intervalloDate)Session["_intervallo"];
+ }
+ set
+ {
+ intervalloDate interv = value;
+ Session["_intervallo"] = interv;
+ Session["_inizio"] = interv.inizio;
+ Session["_fine"] = interv.fine;
+ }
+ }
+ ///
+ /// effettua update
+ ///
+ ///
+ public void doUpdate(bool doReportUpdate)
+ {
+ aggiornaDateMostrate(doReportUpdate);
+ }
+ ///
+ /// imposta periodo libero di selezione
+ ///
+ public void setPeriodoFree()
+ {
+ DropDownList1.SelectedIndex = 0;
+ }
+
+ #region gestione eventi
+
+ public event EventHandler eh_doUpdate;
+
+ #endregion
+
+ ///
+ /// effettua uno zoom 2 X sulle date attuali
+ ///
+ public void dateZoom()
+ {
+ // calcolo zoom 2X
+ double intervMinutiOrig = intervalloAnalisi.fine.Subtract(intervalloAnalisi.inizio).TotalMinutes;
+ // leggo data in cui lo zoom era centrato...
+ DateTime centroZoom = Convert.ToDateTime(memLayer.ML.objSessionObj("zoomCenter"));
+ // calcolo posizione relativa zoom...
+ double posizioneZoom = centroZoom.Subtract(intervalloAnalisi.inizio).TotalMinutes / intervMinutiOrig;
+ // init!
+ _intervallo = intervalloAnalisi;
+ // verifico che azione fare
+ if (posizioneZoom < 0.25) // se è nel 1/4 lascio zoom inalterato e "vado a sx" di 1/2 intervallo
+ {
+ if (intervMinutiOrig > 120)
+ {
+ _intervallo.inizio = _intervallo.inizio.AddMinutes(-intervMinutiOrig / 2.0);
+ _intervallo.fine = _intervallo.fine.AddMinutes(-intervMinutiOrig / 2.0);
+ }
+ else
+ {
+ _intervallo.inizio = _intervallo.inizio.AddMinutes(-60);
+ _intervallo.fine = _intervallo.fine.AddMinutes(-60);
+ }
+ }
+ else if (posizioneZoom > 0.75) // se è nel 3/4 lascio zoom inalterato e "vado a dx"
+ {
+ // mi imposto al max tra spostamento di 1/2 e l'ultimo dato disponibile...
+ if (intervMinutiOrig > 120)
+ {
+ _intervallo.fine = _intervallo.fine.AddMinutes(intervMinutiOrig / 2.0);
+ if (_intervallo.fine > DateTime.Now)
+ {
+ _intervallo.fine = DateTime.Now;
+ }
+ _intervallo.inizio = _intervallo.fine.AddMinutes(-intervMinutiOrig);
+ }
+ else
+ {
+ _intervallo.inizio = _intervallo.inizio.AddMinutes(60);
+ _intervallo.fine = _intervallo.fine.AddMinutes(60);
+ }
+ }
+ else // zoom!!!
+ {
+ if (intervMinutiOrig > 120)
+ {
+ _intervallo.inizio = _intervallo.inizio.AddMinutes(intervMinutiOrig / 4.0);
+ _intervallo.fine = _intervallo.fine.AddMinutes(-intervMinutiOrig / 4.0);
+ }
+ else // 1 ora di zoom!
+ {
+ _intervallo.inizio = _intervallo.inizio.Date.AddHours(_intervallo.inizio.TimeOfDay.Hours);
+ _intervallo.fine = _intervallo.inizio.AddHours(1);
+ }
+ }
+ // arrotondo all'ora...
+ _intervallo.inizio = _intervallo.inizio.Date.AddHours(_intervallo.inizio.TimeOfDay.Hours);
+ _intervallo.fine = _intervallo.fine.Date.AddHours(_intervallo.fine.TimeOfDay.Hours);
+ // aggiorno in sessione
+ intervalloAnalisi = _intervallo;
+ Response.Redirect("~/DettaglioMacchina.aspx");
+ }
+
+ #endregion
+ }
}
\ No newline at end of file