103 lines
3.7 KiB
C#
103 lines
3.7 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Web;
|
|
using SteamWare;
|
|
using System.Globalization;
|
|
|
|
/// <summary>
|
|
/// Utility varie di WebGim
|
|
/// </summary>
|
|
public class WebGimUtils
|
|
{
|
|
protected WebGimUtils()
|
|
{
|
|
}
|
|
/// <summary>
|
|
/// calcola le ore lavorative equivalenti ad un dato periodo calcolando la settimana tipo e togliendo le festività eventualmente presenti
|
|
/// </summary>
|
|
/// <param name="periodo"></param>
|
|
/// <returns></returns>
|
|
public double oreEquivalenti(intervalloDate periodo)
|
|
{
|
|
double answ = 0;
|
|
try
|
|
{
|
|
answ = Convert.ToDouble(TA_app.obj.taOreApert.oreLavoratePeriodo(periodo.inizio, periodo.fine, 0));// per ora non imposto la macchina...
|
|
}
|
|
catch
|
|
{ }
|
|
// restituisco risposta
|
|
return answ;
|
|
}
|
|
|
|
/// <summary>
|
|
/// converte in datetime un valore formattato con una culture generica ed un formato generico
|
|
/// </summary>
|
|
/// <param name="dataOra"></param>
|
|
/// <param name="formato"></param>
|
|
/// <param name="culture"></param>
|
|
/// <param name="doLog"></param>
|
|
/// <returns></returns>
|
|
public static DateTime convDate(string dataOra, string formato, string cultura, bool doLog)
|
|
{
|
|
DateTime answ = DateTime.Now;
|
|
CultureInfo culture = new CultureInfo(cultura);
|
|
if(doLog) logger.lg.scriviLog(string.Format("Valore txt:{1}", Environment.NewLine, dataOra), tipoLog.INFO);
|
|
bool fatto = false;
|
|
fatto = DateTime.TryParseExact(dataOra, formato, culture, DateTimeStyles.None, out answ);
|
|
if (doLog) logger.lg.scriviLog(string.Format("{0}Valore txt:{1}{0}Valore conv:{2}", Environment.NewLine, dataOra, answ), tipoLog.INFO);
|
|
if (!fatto)
|
|
{
|
|
answ = Convert.ToDateTime(dataOra);
|
|
}
|
|
if (doLog) logger.lg.scriviLog(string.Format("{0}Valore txt:{1}{0}Valore conv BIS:{2}", Environment.NewLine, dataOra, answ), tipoLog.INFO);
|
|
return answ;
|
|
}
|
|
/// <summary>
|
|
/// converte in datetime un valore formattato con una culture generica ed un formato generico
|
|
/// </summary>
|
|
/// <param name="dataOra"></param>
|
|
/// <param name="formato"></param>
|
|
/// <param name="culture"></param>
|
|
/// <returns></returns>
|
|
public static DateTime convDate(string dataOra, string formato, string cultura)
|
|
{
|
|
return convDate(dataOra, formato, cultura, false);
|
|
}
|
|
public static WebGimUtils obj = new WebGimUtils();
|
|
|
|
/// <summary>
|
|
/// restituisce il filePath (reale) della dir dedicata ad un dato intervento...
|
|
/// </summary>
|
|
/// <param name="numInt"></param>
|
|
/// <returns></returns>
|
|
public static string dirPathIntMtz(int numInt)
|
|
{
|
|
// ipotesi: folder bilanciate andando a mettere MAX 1000 files x folder, quindi fodler 0 --> 0...999, 1000 --> 1000...1999, etc
|
|
int maxFiles = 1000;
|
|
int numDir = numInt / maxFiles;
|
|
string uploadDir = memLayer.ML.CRS("uploadDir");
|
|
return string.Format(@"{0}\{1}\{2}", uploadDir, numDir*maxFiles, numInt);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Fornisce elenco dei files di un dato intervento di MTZ cercando su filesystem
|
|
/// </summary>
|
|
/// <param name="numInt"></param>
|
|
/// <returns></returns>
|
|
public static DataLayer_generic.filesDataTable elencoFiles(int numInt)
|
|
{
|
|
// in primis faccio controllo esistenza folder...
|
|
return fileMover.obj.elencoFilesDir(dirPathIntMtz(numInt));
|
|
}
|
|
/// <summary>
|
|
/// Elimina file richiesto
|
|
/// </summary>
|
|
/// <param name="numInt"></param>
|
|
/// <param name="Original_Nome"></param>
|
|
public void eliminaFile(int numInt, string Original_Nome)
|
|
{
|
|
fileMover.deleteFile(string.Format("{0}\\{1}", dirPathIntMtz(numInt), Original_Nome));
|
|
}
|
|
|
|
} |