using System; using System.Collections.Generic; using System.Web; using SteamWare; using System.Globalization; /// /// Utility varie di WebGim /// public class WebGimUtils { protected WebGimUtils() { } /// /// calcola le ore lavorative equivalenti ad un dato periodo calcolando la settimana tipo e togliendo le festività eventualmente presenti /// /// /// 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; } /// /// converte in datetime un valore formattato con una culture generica ed un formato generico /// /// /// /// /// /// 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; } /// /// converte in datetime un valore formattato con una culture generica ed un formato generico /// /// /// /// /// public static DateTime convDate(string dataOra, string formato, string cultura) { return convDate(dataOra, formato, cultura, false); } public static WebGimUtils obj = new WebGimUtils(); /// /// restituisce il filePath (reale) della dir dedicata ad un dato intervento... /// /// /// 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); } /// /// Fornisce elenco dei files di un dato intervento di MTZ cercando su filesystem /// /// /// public static DataLayer_generic.filesDataTable elencoFiles(int numInt) { // in primis faccio controllo esistenza folder... return fileMover.obj.elencoFilesDir(dirPathIntMtz(numInt)); } /// /// Elimina file richiesto /// /// /// public void eliminaFile(int numInt, string Original_Nome) { fileMover.deleteFile(string.Format("{0}\\{1}", dirPathIntMtz(numInt), Original_Nome)); } }