//-------------------------------------------------------------------
 public static void Autoexec()
 {
     if (C2iAppliServeur.GetValeur(c_cleDesactivation) == null)
     {
         m_timer = new Timer(new TimerCallback(OnTachePlanifiee), null, 4 * 60000, 60000);
         C2iEventLog.WriteInfo("Gestionnaire d'évenements sur date démarré");
     }
 }
        //-------------------------------------------------------------------
        public CResultAErreur SaveDocument(CSourceDocument source,
                                           CTypeReferenceDocument typeReference,
                                           CReferenceDocument versionPrecedente,
                                           bool bIncrementeVersionFichier)
        {
            CResultAErreur result = CResultAErreur.True;

            //Copie du fichier

            try
            {
                switch (typeReference.Code)
                {
                case CTypeReferenceDocument.TypesReference.Fichier:
                    if (!(source is CSourceDocumentStream))
                    {
                        result.EmpileErreur(I.T("Document type '@1' source not supported|109", source.GetType().Name));
                        return(result);
                    }
                    string strNomFichier = "";
                    if (versionPrecedente != null)
                    {
                        strNomFichier = versionPrecedente.NomFichier;
                        strNomFichier = strNomFichier.Replace("..", ".");    //Correction erreurs passées
                        if (bIncrementeVersionFichier)
                        {
                            strNomFichier = IncNomFichier(strNomFichier);
                        }
                        string strExt = ((CSourceDocumentStream)source).Extension;
                        if (strExt.ToUpper() != "DAT")
                        {
                            strNomFichier = ChangeExtension(strNomFichier, ((CSourceDocumentStream)source).Extension);
                        }
                    }
                    else
                    {
                        string strPath = DateTime.Now.Year.ToString() + "\\";
                        strPath       += DateTime.Now.Month.ToString() + "\\";
                        strPath       += DateTime.Now.Day.ToString() + "\\";
                        strNomFichier  = strPath + CGenerateurStringUnique.GetNewNumero(m_nIdSession) + "_0.";
                        strNomFichier += ((CSourceDocumentStream)source).Extension;
                    }
                    //S'assure que le chemin du fichier existe
                    string[] strChemins = strNomFichier.Split('\\');
                    int      nChemin    = 0;
                    string   strTemp    = m_strPath;
                    foreach (string strChemin in strChemins)
                    {
                        if (nChemin < strChemins.Length - 1)
                        {
                            if (!Directory.Exists(m_strPath + strChemin))
                            {
                                Directory.CreateDirectory(strTemp + strChemin);
                            }
                            strTemp += strChemin + "\\";
                        }
                        nChemin++;
                    }

                    if (strNomFichier.LastIndexOf('.') < 0)
                    {
                        strNomFichier += ((CSourceDocumentStream)source).Extension;
                    }

                    if (File.Exists(m_strPath + strNomFichier))
                    {
                        File.Delete(m_strPath + strNomFichier);
                    }
                    FileStream stream = new FileStream(m_strPath + strNomFichier, FileMode.CreateNew);

                    Stream sourceStream = ((CSourceDocumentStream)source).SourceStream;

                    result = CStreamCopieur.CopyStream(sourceStream, stream, 32000);
                    if (!result)
                    {
                        File.Delete(strNomFichier);
                        return(result);
                    }
                    CReferenceDocument referenceFinale = new CReferenceDocument();
                    referenceFinale.NomFichier        = strNomFichier;
                    referenceFinale.CodeTypeReference = CTypeReferenceDocument.TypesReference.Fichier;
                    referenceFinale.TailleFichier     = (int)new FileInfo(m_strPath + strNomFichier).Length;

                    m_listeReferencesTemporaires.Add(new CReferenceTemporaire(referenceFinale));
                    if (m_timerNettoyage == null && C2iAppliServeur.GetValeur(c_cleDesactivationNettoyage) != null)
                    {
                        m_timerNettoyage = new Timer(new TimerCallback(NettoyageTemporaires), null, 1000 * 60 * 30, 1000 * 60 * 30);
                    }

                    result.Data = referenceFinale;
                    break;

                case CTypeReferenceDocument.TypesReference.LienDirect:
                    //Vérifie que le lien est accessible depuis le serveur
                    CSourceDocumentLienDirect sourceDirecte = source as CSourceDocumentLienDirect;
                    if (sourceDirecte == null)
                    {
                        result.EmpileErreur(I.T("Document type '@1' source not supported|109", source.GetType().Name));
                        return(result);
                    }
                    CReferenceDocument referenceFinaleLien = new CReferenceDocument();
                    referenceFinaleLien.NomFichier        = sourceDirecte.NomFichier;
                    referenceFinaleLien.CodeTypeReference = CTypeReferenceDocument.TypesReference.LienDirect;
                    referenceFinaleLien.TailleFichier     = (int)new FileInfo(sourceDirecte.NomFichier).Length;

                    if (!File.Exists(sourceDirecte.NomFichier))
                    {
                        result.EmpileErreur("File @1 cannot be stored in EDM, it can not be reached from server|20000", sourceDirecte.NomFichier);
                        return(result);
                    }
                    result.Data = referenceFinaleLien;
                    break;

                default:
                    result.EmpileErreur(I.T("File reference type @1 not supported|110", typeReference.ToString()));
                    return(result);
                }
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
                result.EmpileErreur(I.T("Error while saving EDM |111"));
            }
            return(result);
        }