728 lines
26 KiB
C#
728 lines
26 KiB
C#
using System;
|
|
using System.Configuration;
|
|
using System.Web;
|
|
using System.IO;
|
|
|
|
namespace ETS_Data
|
|
{
|
|
public class utils
|
|
{
|
|
protected AppSettingsReader configAppSetReader;
|
|
|
|
#region area table adapters
|
|
|
|
public DS_AnagraficaTableAdapters.UtentiTableAdapter taUtenti;
|
|
|
|
public DS_utilsTableAdapters.v_selFontiTableAdapter taSelFonti;
|
|
public DS_utilsTableAdapters.v_selCommesseTableAdapter taSelCommesse;
|
|
public DS_utilsTableAdapters.v_selFasiTableAdapter taSelFasi;
|
|
public DS_utilsTableAdapters.v_selAutoriTableAdapter taSelAutori;
|
|
public DS_utilsTableAdapters.v_tbDocs_selFontiTableAdapter taTDSelFonti;
|
|
public DS_utilsTableAdapters.v_tbDocs_selCommesseTableAdapter taTDSelCommesse;
|
|
public DS_utilsTableAdapters.v_tbDocs_selFasiTableAdapter taTDSelFasi;
|
|
public DS_utilsTableAdapters.v_tbDocs_selOggettoTableAdapter taTDSelOggetti;
|
|
public DS_utilsTableAdapters.v_tbDocs_selRedattoreTableAdapter taTDSelRedattore;
|
|
public DS_utilsTableAdapters.stp_calcolaProtocolloTableAdapter taCalcProto;
|
|
public DS_utilsTableAdapters.v_selEmailFornitoriTableAdapter taEmailForn;
|
|
public DS_utilsTableAdapters.AnagSuggestTagsTableAdapter taAST;
|
|
|
|
public DS_WebScipTableAdapters.tbDocumentiTableAdapter taDoc;
|
|
public DS_WebScipTableAdapters.Tags2DocTableAdapter taTags2Doc;
|
|
public DS_WebScipTableAdapters.tbMetaDataSetTableAdapter taTMD;
|
|
|
|
|
|
/// <summary>
|
|
/// init dei table adapters
|
|
/// </summary>
|
|
protected void initTA()
|
|
{
|
|
taUtenti = new DS_AnagraficaTableAdapters.UtentiTableAdapter();
|
|
taSelFonti = new DS_utilsTableAdapters.v_selFontiTableAdapter();
|
|
taSelCommesse = new DS_utilsTableAdapters.v_selCommesseTableAdapter();
|
|
taSelFasi = new DS_utilsTableAdapters.v_selFasiTableAdapter();
|
|
taSelAutori = new DS_utilsTableAdapters.v_selAutoriTableAdapter();
|
|
taTDSelFonti = new DS_utilsTableAdapters.v_tbDocs_selFontiTableAdapter();
|
|
taTDSelCommesse = new DS_utilsTableAdapters.v_tbDocs_selCommesseTableAdapter();
|
|
taTDSelFasi = new DS_utilsTableAdapters.v_tbDocs_selFasiTableAdapter();
|
|
taTDSelOggetti = new DS_utilsTableAdapters.v_tbDocs_selOggettoTableAdapter();
|
|
taTDSelRedattore = new DS_utilsTableAdapters.v_tbDocs_selRedattoreTableAdapter();
|
|
taCalcProto = new DS_utilsTableAdapters.stp_calcolaProtocolloTableAdapter();
|
|
taEmailForn = new DS_utilsTableAdapters.v_selEmailFornitoriTableAdapter();
|
|
taAST = new DS_utilsTableAdapters.AnagSuggestTagsTableAdapter();
|
|
taDoc = new DS_WebScipTableAdapters.tbDocumentiTableAdapter();
|
|
taTags2Doc = new DS_WebScipTableAdapters.Tags2DocTableAdapter();
|
|
taTMD = new DS_WebScipTableAdapters.tbMetaDataSetTableAdapter();
|
|
}
|
|
/// <summary>
|
|
/// effettua setup dei connection strings da web.config delal singola applicazione
|
|
/// </summary>
|
|
protected virtual void setupConnectionStringBase()
|
|
{
|
|
string connStringETS_WS = (string)configAppSetReader.GetValue("ETS_WSConnectionString", typeof(string));
|
|
string connStringETS_WAnagrafica = (string)configAppSetReader.GetValue("ETS_AnagraficaConnectionString", typeof(string));
|
|
// connections del db
|
|
taUtenti.Connection.ConnectionString = connStringETS_WAnagrafica;
|
|
|
|
taSelFonti.Connection.ConnectionString = connStringETS_WS;
|
|
taSelCommesse.Connection.ConnectionString = connStringETS_WS;
|
|
taSelFasi.Connection.ConnectionString = connStringETS_WS;
|
|
taSelAutori.Connection.ConnectionString = connStringETS_WS;
|
|
taTDSelFonti.Connection.ConnectionString = connStringETS_WS;
|
|
taTDSelCommesse.Connection.ConnectionString = connStringETS_WS;
|
|
taTDSelFasi.Connection.ConnectionString = connStringETS_WS;
|
|
taTDSelOggetti.Connection.ConnectionString = connStringETS_WS;
|
|
taTDSelRedattore.Connection.ConnectionString = connStringETS_WS;
|
|
taCalcProto.Connection.ConnectionString = connStringETS_WS;
|
|
taEmailForn.Connection.ConnectionString = connStringETS_WS;
|
|
taAST.Connection.ConnectionString = connStringETS_WS;
|
|
taDoc.Connection.ConnectionString = connStringETS_WS;
|
|
taTags2Doc.Connection.ConnectionString = connStringETS_WS;
|
|
taTMD.Connection.ConnectionString = connStringETS_WS;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Inizializzazione
|
|
|
|
protected utils()
|
|
{
|
|
configAppSetReader = new AppSettingsReader();
|
|
initTA();
|
|
setupConnectionStringBase();
|
|
}
|
|
|
|
/// <summary>
|
|
/// oggetto static per fare chiamate sul magazzino
|
|
/// </summary>
|
|
public static utils obj = new utils();
|
|
|
|
#endregion
|
|
|
|
#region area user
|
|
|
|
/// <summary>
|
|
/// utente correntemente connesso (Formato dominio\username)
|
|
/// </summary>
|
|
public string currUserAD
|
|
{
|
|
get
|
|
{
|
|
string answ = "";
|
|
try
|
|
{
|
|
if (HttpContext.Current.User.Identity.IsAuthenticated)
|
|
{
|
|
answ = HttpContext.Current.User.Identity.Name;
|
|
}
|
|
}
|
|
catch
|
|
{ }
|
|
return answ;
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// utente correntemente connesso per utilizzo FileSystem (Formato dominio.username)
|
|
/// </summary>
|
|
public string currUser_FS
|
|
{
|
|
get
|
|
{
|
|
return currUserAD.Replace(@"\", ".");
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// utente correntemente connesso (Formato Cognome nome)
|
|
/// </summary>
|
|
public string currUserCognomeNome
|
|
{
|
|
get
|
|
{
|
|
string answ = "-";
|
|
try
|
|
{
|
|
// controllo in sessione...
|
|
if (isInSessionObject("currUserCognomeNome"))
|
|
{
|
|
answ = StringSessionObj("currUserCognomeNome");
|
|
}
|
|
else
|
|
{
|
|
// cerco user da elenco...
|
|
DS_Anagrafica.UtentiRow riga = (DS_Anagrafica.UtentiRow)taUtenti.getByKey(currUserAD)[0];
|
|
answ = string.Format("{0} {1}", riga.Cognome, riga.Nome);
|
|
setSessionVal("currUserCognomeNome", answ);
|
|
}
|
|
}
|
|
catch
|
|
{ }
|
|
return answ;
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// utente correntemente connesso (Formato Nome Cognome)
|
|
/// </summary>
|
|
public string currUserNomeCognome
|
|
{
|
|
get
|
|
{
|
|
string answ = "-";
|
|
try
|
|
{
|
|
// controllo in sessione...
|
|
if (isInSessionObject("currUserNomeCognome"))
|
|
{
|
|
answ = StringSessionObj("currUserNomeCognome");
|
|
}
|
|
else
|
|
{
|
|
// cerco user da elenco...
|
|
DS_Anagrafica.UtentiRow riga = (DS_Anagrafica.UtentiRow)taUtenti.getByKey(currUserAD)[0];
|
|
answ = string.Format("{0} {1}", riga.Nome, riga.Cognome);
|
|
setSessionVal("currUserNomeCognome", answ);
|
|
}
|
|
}
|
|
catch
|
|
{ }
|
|
return answ;
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// EMAIL utente correntemente connesso
|
|
/// </summary>
|
|
public string currUserEmail
|
|
{
|
|
get
|
|
{
|
|
string answ = "info@ets.it";
|
|
try
|
|
{
|
|
// controllo in sessione...
|
|
if (isInSessionObject("currUserEmail"))
|
|
{
|
|
answ = StringSessionObj("currUserEmail");
|
|
}
|
|
else
|
|
{
|
|
// cerco user da elenco...
|
|
DS_Anagrafica.UtentiRow riga = (DS_Anagrafica.UtentiRow)taUtenti.getByKey(currUserAD)[0];
|
|
answ = riga.email;
|
|
setSessionVal("currUserEmail", answ);
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
answ = "info@ets.it";
|
|
}
|
|
return answ;
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// UserId (AD) utente correntemente connesso
|
|
/// </summary>
|
|
public string currUserId
|
|
{
|
|
get
|
|
{
|
|
// controllo e salvo in sessione se necessario...
|
|
if (!isInSessionObject("currUserId"))
|
|
{
|
|
setSessionVal("currUserId", currUserAD);
|
|
}
|
|
return currUserAD;
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region area Session
|
|
|
|
/// <summary>
|
|
/// carica dalla sessione un dato di tipo object generico
|
|
/// </summary>
|
|
/// <param name="nomeVar"></param>
|
|
/// <returns></returns>
|
|
public object objSessionObj(string nomeVar)
|
|
{
|
|
if (HttpContext.Current.Session[nomeVar] != null)
|
|
{
|
|
return HttpContext.Current.Session[nomeVar];
|
|
}
|
|
else
|
|
{
|
|
return "";
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// carica dalla sessione un dato di tipo boolean (se vuoto false)
|
|
/// </summary>
|
|
/// <param name="nomeVar"></param>
|
|
/// <returns></returns>
|
|
public bool BoolSessionObj(string nomeVar)
|
|
{
|
|
if (HttpContext.Current.Session[nomeVar] != null)
|
|
{
|
|
return (bool)HttpContext.Current.Session[nomeVar];
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// carica dalla sessione un dato di tipo string
|
|
/// </summary>
|
|
/// <param name="nomeVar"></param>
|
|
/// <returns></returns>
|
|
public string StringSessionObj(string nomeVar)
|
|
{
|
|
if (HttpContext.Current.Session[nomeVar] != null)
|
|
{
|
|
return HttpContext.Current.Session[nomeVar].ToString();
|
|
}
|
|
else
|
|
{
|
|
return "";
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// carica dalla sessione un dato di tipo long
|
|
/// </summary>
|
|
/// <param name="nomeVar"></param>
|
|
/// <returns></returns>
|
|
public long LongSessionObj(string nomeVar)
|
|
{
|
|
if (HttpContext.Current.Session[nomeVar] != null)
|
|
{
|
|
return (long)Convert.ToInt32(HttpContext.Current.Session[nomeVar].ToString());
|
|
}
|
|
else
|
|
{
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// carica dalla sessione un dato di tipo int
|
|
/// </summary>
|
|
/// <param name="nomeVar"></param>
|
|
/// <returns></returns>
|
|
public int IntSessionObj(string nomeVar)
|
|
{
|
|
if (HttpContext.Current.Session[nomeVar] != null)
|
|
{
|
|
return (int)Convert.ToInt32(HttpContext.Current.Session[nomeVar].ToString());
|
|
}
|
|
else
|
|
{
|
|
return -1;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// inserisce in session un valore
|
|
/// </summary>
|
|
/// <param name="nome"></param>
|
|
/// <param name="valore"></param>
|
|
public bool setSessionVal(string nome, object valore)
|
|
{
|
|
bool _done = false;
|
|
try
|
|
{
|
|
HttpContext.Current.Session[nome] = valore;
|
|
_done = true;
|
|
}
|
|
catch
|
|
{ }
|
|
return _done;
|
|
}
|
|
|
|
/// <summary>
|
|
/// svuota una variabile dalla session
|
|
/// </summary>
|
|
/// <param name="nome"></param>
|
|
public bool emptySessionVal(string nome)
|
|
{
|
|
bool _done = false;
|
|
try
|
|
{
|
|
HttpContext.Current.Session.Remove(nome);
|
|
_done = true;
|
|
}
|
|
catch
|
|
{ }
|
|
return _done;
|
|
}
|
|
/// <summary>
|
|
/// restituisce true se è presente in session l'oggetto richiesto
|
|
/// </summary>
|
|
/// <param name="nomeVar"></param>
|
|
/// <returns></returns>
|
|
public bool isInSessionObject(string nomeVar)
|
|
{
|
|
bool answ = false;
|
|
bool stringAnsw = false;
|
|
// cerco di fare cast a stringa...
|
|
try
|
|
{
|
|
stringAnsw = (string)HttpContext.Current.Session[nomeVar].ToString() != "";
|
|
}
|
|
catch
|
|
{ }
|
|
// infine condizione doppia...
|
|
try
|
|
{
|
|
answ = (HttpContext.Current.Session[nomeVar] != null && stringAnsw);
|
|
}
|
|
catch
|
|
{ }
|
|
return answ;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region gestione file config
|
|
|
|
/// <summary>
|
|
/// legge dalla config un valore bool
|
|
/// </summary>
|
|
/// <param name="nomeParam"></param>
|
|
/// <returns></returns>
|
|
public bool confReadBool(string nomeParam)
|
|
{
|
|
bool answ = false;
|
|
try
|
|
{
|
|
answ = (bool)configAppSetReader.GetValue(nomeParam, typeof(bool));
|
|
}
|
|
catch
|
|
{ }
|
|
return answ;
|
|
}
|
|
|
|
/// <summary>
|
|
/// legge dalla config un valore string
|
|
/// </summary>
|
|
/// <param name="nomeParam"></param>
|
|
/// <returns></returns>
|
|
public string confReadString(string nomeParam)
|
|
{
|
|
string answ = "";
|
|
try
|
|
{
|
|
answ = (string)configAppSetReader.GetValue(nomeParam, typeof(string));
|
|
}
|
|
catch
|
|
{ }
|
|
return answ;
|
|
}
|
|
|
|
/// <summary>
|
|
/// legge dalla config un valore int
|
|
/// </summary>
|
|
/// <param name="nomeParam"></param>
|
|
/// <returns></returns>
|
|
public int confReadInt(string nomeParam)
|
|
{
|
|
int answ = -1;
|
|
try
|
|
{
|
|
answ = (int)configAppSetReader.GetValue(nomeParam, typeof(int));
|
|
}
|
|
catch
|
|
{ }
|
|
return answ;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region area varie
|
|
|
|
/// <summary>
|
|
/// ripulisce la stringa da eventuali caratteri non ammessi quali
|
|
/// [ .,;\/]
|
|
/// </summary>
|
|
/// <param name="originalName"></param>
|
|
/// <returns></returns>
|
|
public static string cleanPathName(string originalName)
|
|
{
|
|
return originalName.Trim().Replace("&", "e").Replace(".", "").Replace(",", "").Replace(";", "").Replace(":", "").Replace("/", "-").Replace(@"\", "-");
|
|
}
|
|
/// <summary>
|
|
/// restituisce, in caso di null o stringa vuota, il carattere "*"
|
|
/// </summary>
|
|
/// <param name="original"></param>
|
|
/// <returns></returns>
|
|
public static string emptyToStar(string original)
|
|
{
|
|
string answ = original;
|
|
if ((original == null) || (original == ""))
|
|
{
|
|
answ = "*";
|
|
}
|
|
return answ;
|
|
}
|
|
/// <summary>
|
|
/// Effettua shring di una stringa ricudendola in lunghezza (tiene inizio/fine + eventuale ".." centrale se lungh superiore a indicata)
|
|
/// </summary>
|
|
/// <param name="originalString">stringa originale</param>
|
|
/// <param name="maxLenght">lungh max desiderata</param>
|
|
/// <returns></returns>
|
|
public static string shrinkString(string originalString, int maxLenght)
|
|
{
|
|
string answ = originalString;
|
|
if (answ.Length > maxLenght)
|
|
{
|
|
int numChar = (maxLenght - 3) / 2;
|
|
answ = string.Format("{0}...{1}", answ.Substring(0, numChar), answ.Substring(answ.Length - (maxLenght - 3 - numChar)));
|
|
}
|
|
return answ;
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
/// <summary>
|
|
/// definisce un intervalo di 2 date
|
|
/// </summary>
|
|
public struct intervalloDate
|
|
{
|
|
/// <summary>
|
|
/// data inizio
|
|
/// </summary>
|
|
public DateTime inizio;
|
|
/// <summary>
|
|
/// data fine
|
|
/// </summary>
|
|
public DateTime fine;
|
|
/// <summary>
|
|
/// indica se sia valido il dato, ovvero inizio e fine > 0 e FINE >= INIZIO
|
|
/// </summary>
|
|
public bool isValid
|
|
{
|
|
get
|
|
{
|
|
bool cond1 = false;
|
|
bool cond2 = false;
|
|
bool cond3 = false;
|
|
try
|
|
{
|
|
cond1 = inizio > Convert.ToDateTime("01/01/0001");
|
|
}
|
|
catch
|
|
{ }
|
|
try
|
|
{
|
|
cond2 = fine > Convert.ToDateTime("01/01/0001");
|
|
}
|
|
catch
|
|
{ }
|
|
try
|
|
{
|
|
cond3 = (fine.Subtract(inizio).TotalHours > 0);
|
|
}
|
|
catch
|
|
{ }
|
|
return (cond1 && cond2 && cond3);
|
|
}
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// classe di funzioni inerenti le date
|
|
/// </summary>
|
|
public class datario
|
|
{
|
|
/// <summary>
|
|
/// inizializzazione empty
|
|
/// </summary>
|
|
public datario()
|
|
{
|
|
}
|
|
/// <summary>
|
|
/// costruisce un oggetto intervallo date
|
|
/// </summary>
|
|
/// <param name="inizio"></param>
|
|
/// <param name="fine"></param>
|
|
/// <returns></returns>
|
|
public intervalloDate setIntervallo(DateTime inizio, DateTime fine)
|
|
{
|
|
intervalloDate periodo = new intervalloDate();
|
|
periodo.inizio = inizio;
|
|
periodo.fine = fine;
|
|
return periodo;
|
|
}
|
|
/// <summary>
|
|
/// effettua l'operazione di intersezione tra 2 intervali di date restituendo ulteriore intervallo: NB se sono intervali disgiunti restituisce 9/9/9999 x inizio e fine
|
|
/// </summary>
|
|
/// <param name="interv1"></param>
|
|
/// <param name="interv2"></param>
|
|
/// <returns></returns>
|
|
public intervalloDate intersecaIntervalli(intervalloDate interv1, intervalloDate interv2)
|
|
{
|
|
intervalloDate interv3;
|
|
// verifico non siano disgiunti...
|
|
if (interv1.fine < interv2.inizio || interv2.fine < interv1.inizio)
|
|
{
|
|
interv3.inizio = Convert.ToDateTime("9/9/9999");
|
|
interv3.fine = Convert.ToDateTime("9/9/9999");
|
|
}
|
|
else
|
|
{
|
|
interv3 = interv1;
|
|
if (interv2.inizio > interv1.inizio)
|
|
{
|
|
interv3.inizio = interv2.inizio;
|
|
}
|
|
if (interv2.fine < interv1.fine)
|
|
{
|
|
interv3.fine = interv2.fine;
|
|
}
|
|
}
|
|
return interv3;
|
|
}
|
|
/// <summary>
|
|
/// oggetto mese precedente alla dataLilmite
|
|
/// </summary>
|
|
/// <param name="dataLimite"></param>
|
|
public intervalloDate mesePrecedente(DateTime dataLimite)
|
|
{
|
|
intervalloDate interv = new intervalloDate();
|
|
interv.inizio = dataLimite.AddMonths(-1).AddDays(-(dataLimite.Day - 1)).Subtract(dataLimite.TimeOfDay);
|
|
interv.fine = dataLimite.AddDays(-(dataLimite.Day - 1)).Subtract(dataLimite.TimeOfDay);
|
|
return interv;
|
|
}
|
|
/// <summary>
|
|
/// oggetto mese corrente fino alla dataLilmite
|
|
/// </summary>
|
|
/// <param name="dataLimite"></param>
|
|
public intervalloDate meseCorrente(DateTime dataLimite)
|
|
{
|
|
intervalloDate interv = new intervalloDate();
|
|
interv.inizio = dataLimite.AddDays(-(dataLimite.Day - 1)).Subtract(dataLimite.TimeOfDay);
|
|
interv.fine = dataLimite.Subtract(dataLimite.TimeOfDay);
|
|
return interv;
|
|
}
|
|
/// <summary>
|
|
/// confronta le date e restituisce true se le date sono nello stesso mese
|
|
/// </summary>
|
|
/// <param name="data1"></param>
|
|
/// <param name="data2"></param>
|
|
/// <returns></returns>
|
|
public bool stessoMese(DateTime data1, DateTime data2)
|
|
{
|
|
bool stessoMese = false;
|
|
if ((data1.Year == data2.Year) && (data1.Month == data2.Month))
|
|
{
|
|
stessoMese = true;
|
|
}
|
|
return stessoMese;
|
|
}
|
|
/// <summary>
|
|
/// restituisce l'intervallo del giorno completo che comprende la data indicata
|
|
/// </summary>
|
|
/// <param name="data"></param>
|
|
/// <returns></returns>
|
|
public intervalloDate giornata(DateTime data)
|
|
{
|
|
intervalloDate interv = new intervalloDate();
|
|
interv.inizio = data.Subtract(data.TimeOfDay);
|
|
interv.fine = interv.inizio.AddDays(1);
|
|
return interv;
|
|
}
|
|
/// <summary>
|
|
/// restituisce l'intervallo di N giorni fino alla data indicata
|
|
/// </summary>
|
|
/// <param name="data"></param>
|
|
/// <param name="numGiorniPrima"></param>
|
|
/// <returns></returns>
|
|
public intervalloDate ultimiGiorni(DateTime data, int numGiorniPrima)
|
|
{
|
|
intervalloDate interv = new intervalloDate();
|
|
interv.fine = data.Subtract(data.TimeOfDay).AddDays(1);
|
|
interv.inizio = interv.fine.AddDays(-numGiorniPrima);
|
|
return interv;
|
|
}
|
|
/// <summary>
|
|
/// restituisce l'intervallo della settimana corrente per la data indicata
|
|
/// </summary>
|
|
/// <param name="data"></param>
|
|
/// <returns></returns>
|
|
public intervalloDate questaSett(DateTime data)
|
|
{
|
|
intervalloDate interv = new intervalloDate();
|
|
interv.fine = data.Subtract(data.TimeOfDay).AddDays(1);
|
|
DayOfWeek giorno = data.DayOfWeek;
|
|
int numGG = 0;
|
|
switch (giorno)
|
|
{
|
|
case DayOfWeek.Monday:
|
|
numGG = 1;
|
|
break;
|
|
case DayOfWeek.Tuesday:
|
|
numGG = 2;
|
|
break;
|
|
case DayOfWeek.Wednesday:
|
|
numGG = 3;
|
|
break;
|
|
case DayOfWeek.Thursday:
|
|
numGG = 4;
|
|
break;
|
|
case DayOfWeek.Friday:
|
|
numGG = 5;
|
|
break;
|
|
case DayOfWeek.Saturday:
|
|
numGG = 6;
|
|
break;
|
|
case DayOfWeek.Sunday:
|
|
numGG = 7;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
interv.inizio = interv.fine.AddDays(-numGG);
|
|
return interv;
|
|
}
|
|
/// <summary>
|
|
/// restituisce l'intervallo del mese corrente per la data indicata (dal giorno 1 all'indomani delal data indicata)
|
|
/// </summary>
|
|
/// <param name="data"></param>
|
|
/// <returns></returns>
|
|
public intervalloDate questoMese(DateTime data)
|
|
{
|
|
intervalloDate interv = new intervalloDate();
|
|
interv.fine = data.Subtract(data.TimeOfDay).AddDays(1);
|
|
interv.inizio = interv.fine.AddDays(-data.Day);
|
|
return interv;
|
|
}
|
|
/// <summary>
|
|
/// restituisce l'intervallo del mese che comprende la data indicata (dal primo all'ultimo giorno)
|
|
/// </summary>
|
|
/// <param name="data"></param>
|
|
/// <returns></returns>
|
|
public intervalloDate estremiMese(DateTime data)
|
|
{
|
|
intervalloDate interv = new intervalloDate();
|
|
interv.inizio = data.AddDays(-(data.Day - 1)).Subtract(data.TimeOfDay);
|
|
interv.fine = interv.inizio.AddMonths(1);
|
|
return interv;
|
|
}
|
|
/// <summary>
|
|
/// restituisce l'intervallo dell'anno corrente per la data indicata
|
|
/// </summary>
|
|
/// <param name="data"></param>
|
|
/// <returns></returns>
|
|
public intervalloDate estremiAnno(DateTime data)
|
|
{
|
|
intervalloDate interv = new intervalloDate();
|
|
interv.inizio = data.AddDays(-(data.Day - 1)).AddMonths(-(data.Month - 1)).Subtract(data.TimeOfDay);
|
|
interv.fine = interv.inizio.AddMonths(12);
|
|
return interv;
|
|
}
|
|
/// <summary>
|
|
/// oggetto singleton
|
|
/// </summary>
|
|
public static datario mngr = new datario();
|
|
}
|
|
}
|