private static void ManageOrphanTmp(string FileName)
        {
            LogDatedWriter Log = null;

            try
            {
                string LogFname = Path.Combine(Path.GetDirectoryName(Path.GetFullPath(FileName)), "SerializationError.log");
                Log = new LogDatedWriter(LogFname);

                Log.WriteEmptyLine();
                Log.WriteLogLines(string.Format("Trovato file .bak orfano \"{0}\"", FileName + ".bak"));

                try
                {
                    string OrigFile    = Path.GetFullPath(FileName + ".bak");
                    string NewFileName = string.Format("{0:dd-MM-yyyy HH.mm.ss} {1}.cpy", DateTime.Now, Path.GetFileName(OrigFile));
                    string CopyFile    = Path.Combine(Path.GetDirectoryName(Path.GetFullPath(FileName + ".bak")), NewFileName);
                    File.Copy(OrigFile, CopyFile);

                    Log.WriteLogLines("E' stata creata una copia del file in oggetto");
                    Log.WriteLogLines(string.Format("La copia si chiama \"{0}\"", NewFileName));
                    Log.WriteEmptyLine();
                }
                catch (Exception)
                {
                    Log.WriteLogLines("Non è stato possibile creare una copia del file in oggetto");
                    Log.WriteEmptyLine();
                }

                try
                {
                    File.Move(FileName + ".bak", FileName);
                    Log.WriteLogLines(string.Format("Il file è stato rinominato in: {0} per permettere la rilettura", FileName));
                }
                catch (Exception)
                {
                    Log.WriteLogLines(string.Format("Impossibile rinominare il file {0} in {0}", FileName + ".bak", FileName));
                }

                Log.WriteEmptyLine();
                Log.WriteSeparator();
            }
            catch (Exception le)
            {
                string Message = string.Format("Si è verificato un errore nella scrittura sul file \"{0}\" e non è stato possibile creare un file di log.{1}La directory di lavoro corrente era: \"{2}\"{1}Dettagli errore serializzazione: {1}{3}{1}Dettagli errore Logger: {1}{4}", FileName + ".bak", "\r\n", System.Environment.CurrentDirectory, "", le.ToString());
                //System.Diagnostics.EventLog.WriteEntry(Base.CommonFunction.Varie.EventSource, Message, EventLogEntryType.Error);
            }
            finally
            {
                try
                {
                    Log?.Close();
                }
                catch
                {
                }
            }
        }
Esempio n. 2
0
        private static void ManageWriteError(object obj, string FileName, System.Exception ex)
        {
            LogDatedWriter Log = null;

            try
            {
                string LogFname = Path.Combine(Path.GetDirectoryName(Path.GetFullPath(FileName)), "SerializationError.log");
                Log = new LogDatedWriter(LogFname);



                Log.WriteEmptyLine();
                Log.WriteLogLines(string.Format("Si è verificato un errore durante la scrittura dell' oggetto \"{0}\" sul file \"{1}\"", obj, FileName));
                if (ex is System.IO.IOException)
                {
                    LogFileUsage(Log, FileName);
                }
                Log.WriteEmptyLine();

                Log.WriteLogLines("Descrizione dell' errore:");
                Log.WriteLogLines(ex.Message);
                Log.WriteEmptyLine();

                Log.WriteLogLines("Dettagli errore:");
                Log.WriteLogLines(ex.ToString());

                Log.WriteSeparator();
            }
            catch (Exception le)
            {
                string Message = string.Format("Si è verificato un errore nella scrittura sul file \"{0}\" e non è stato possibile creare un file di log.{1}La directory di lavoro corrente era: \"{2}\"{1}Dettagli errore serializzazione: {1}{3}{1}Dettagli errore Logger: {1}{4}", FileName, "\r\n", System.Environment.CurrentDirectory, ex.ToString(), le.ToString());
                //System.Diagnostics.EventLog.WriteEntry(Base.CommonFunction.Varie.EventSource, Message, EventLogEntryType.Error);
            }
            finally
            {
                try
                {
                    if ((Log != null))
                    {
                        Log.Close();
                    }
                }
                catch
                {
                }
            }
        }
        private static void ManageReadError(string FileName, System.Exception ex)
        {
            LogDatedWriter Log = null;

            try
            {
                string LogFname = Path.Combine(Path.GetDirectoryName(Path.GetFullPath(FileName)), "SerializationError.log");
                Log = new LogDatedWriter(LogFname);



                Log.WriteEmptyLine();
                Log.WriteLogLines(string.Format("Si è verificato un errore durante la lettura del file \"{0}\"", FileName));
                if (ex is System.IO.IOException)
                {
                    LogFileUsage(Log, FileName);
                }
                Log.WriteEmptyLine();

                if (!((ex) is MissingPasswordException || (ex) is WrongPasswordException))
                {
                    //Create a copy of problematic file
                    try
                    {
                        string OrigFile    = Path.GetFullPath(FileName);
                        string NewFileName = string.Format("{0:dd-MM-yyyy HH.mm.ss} {1}.dam", DateTime.Now, Path.GetFileName(OrigFile));
                        string CopyFile    = Path.Combine(Path.GetDirectoryName(Path.GetFullPath(FileName)), NewFileName);
                        File.Copy(OrigFile, CopyFile);

                        Log.WriteLogLines("E' stata creata una copia del file in oggetto");
                        Log.WriteLogLines(string.Format("La copia si chiama \"{0}\"", NewFileName));
                        Log.WriteEmptyLine();
                    }
                    catch (Exception)
                    {
                        Log.WriteLogLines("Non è stato possibile creare una copia del file in oggetto");
                        Log.WriteEmptyLine();
                    }
                }

                Log.WriteLogLines("Descrizione dell' errore:");
                Log.WriteLogLines(ex.Message);
                Log.WriteEmptyLine();

                Log.WriteLogLines("Dettagli errore:");
                Log.WriteLogLines(ex.ToString());

                Log.WriteSeparator();
            }
            catch (Exception le)
            {
                string Message = string.Format("Si è verificato un errore nella lettura del file \"{0}\" e non è stato possibile creare un file di log.{1}La directory di lavoro corrente era: \"{2}\"{1}Dettagli errore serializzazione: {1}{3}{1}Dettagli errore Logger: {1}{4}", FileName, "\r\n", System.Environment.CurrentDirectory, ex.ToString(), le.ToString());
                //System.Diagnostics.EventLog.WriteEntry(Base.CommonFunction.Varie.EventSource, Message, EventLogEntryType.Error);
            }
            finally
            {
                try
                {
                    Log?.Close();
                }
                catch
                {
                }
            }
        }