1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176
|
namespace TestIntegrationDominoDotNet
{
public partial class Form1 : Form
{
private Domino.NotesSession _oNotesSession = null;
private Domino.NotesDatabase _oNotesDatabase = null;
private string _sPassword = "monpassword";
private string _sServerName = "nomdemonserveurnotes";
private string _sDataBaseLotusNotes = @"mail\\mabase.nsf";
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//§/Déclaration propriétés de connexion
this.OuvrirSessionNotes();
}
private bool OuvrirSessionNotes()
{
//§/Permet de mémoriser qu'une erreur s'est produite
bool bLocal_Erreur = false;
try
{
//§/Création de l'objet session Notes
this._oNotesSession = new Domino.NotesSession();
//§/Initialiser cet objet session
this._oNotesSession.Initialize(this._sPassword);
//§/Définition de l'objet Database Lotus Notes qui va permettre de pointer sur
//§/la base utilisateur
//§/Remarque : le dernier paramètre est à false afin d'indiquer que si cette base utilisateur
//§/ n'existe pas il ne faut pas la créer mais provoquer une erreur
//§/ En effet cette base doit exister dans Lotus Notes
this._oNotesDatabase = this._oNotesSession.GetDatabase(this._sServerName, this._sDataBaseLotusNotes, false);
//§/Ouverture de cette base de données
if (!this._oNotesDatabase.IsOpen)
{
this._oNotesDatabase.Open();
}
}
catch (Exception oLocal_Exception)
{
bLocal_Erreur = true;
MessageBox.Show("Erreur" + oLocal_Exception.Message);
//§/On appelle systématiquement ici la méthode de fermeture
//§/de la session notes
this.FermerSessionNotes();
}
//DEBUG
if (!bLocal_Erreur)
{
MessageBox.Show("Connexion réussie");
}
//§/Retouner true si aucune erreur ne s'est produite
return !bLocal_Erreur;
}
private void FermerSessionNotes()
{
this._oNotesSession = null;
this._oNotesDatabase = null;
GC.Collect();
}
private void button2_Click(object sender, EventArgs e)
{
//§/Objet Notes Document
Domino.NotesDocument oNotesDocument = null;
Domino.NotesView oNotesView = null;
//§/Si la session Notes peut être ouverte
if (OuvrirSessionNotes())
{
//§/Créer en mémoire le document dans la base de données serveur Notes
oNotesView = this._oNotesDatabase.GetView("Agenda");
oNotesDocument = this._oNotesDatabase.CreateDocument();
//§/Définir dans des dates times les dates de début et de fin du rdv
System.DateTime oDateTime_StartDate = new DateTime(2008, 11, 26);
System.DateTime oDateTime_EndDate = new DateTime(2008, 11, 26);
//§/Mise à jour des champs du document Notes
oNotesDocument.ReplaceItemValue("Form", "Appointment");
oNotesDocument.ReplaceItemValue("AppointmentType", "0");
oNotesDocument.ReplaceItemValue("Subjet", "Ceci est le sujet de mon rendez-vous");
oNotesDocument.ReplaceItemValue("StartDateTime", oDateTime_StartDate);
oNotesDocument.ReplaceItemValue("EndDateTime", oDateTime_EndDate);
oNotesDocument.ReplaceItemValue("StartDate", oDateTime_StartDate);
oNotesDocument.ReplaceItemValue("MeetingType", "1");
oNotesDocument.ReplaceItemValue("Body", "Ceci est le contenu du rendez-vous");
oNotesDocument.ReplaceItemValue("Chair", this._oNotesSession.CommonUserName);
oNotesDocument.ReplaceItemValue("AltChair", this._oNotesSession.CommonUserName);
oNotesDocument.ReplaceItemValue("From", this._oNotesSession.CommonUserName);
oNotesDocument.ReplaceItemValue("Principal", this._oNotesSession.CommonUserName);
//§/Sauvegarde du rendez-vous
//§/Valide le document
//§/Dans l'aide Lotus Notes le rôle de cet appel - nécessaire - est :
//§/"Validates a document by executing the default value, translation, and validation formulas, if any are defined in the document form"
//§/Voir la page "http://www.wissel.net/blog/d6plinks/SHWL-6V65MG"
//§/pour plus d'informations à ce sujet
//§/Si cette validation s'est bien passée
if (oNotesDocument.ComputeWithForm(true, false))
{
//§/Sauvegarde le rendez-vous dans la base Notes
oNotesDocument.Save(true, false, false);
//§/DEBUG
MessageBox.Show("Normalement le rdv devrait être créé");
}
else //§/La validation du document à ajouter ne s'est pas bien passée
{
//§/L'indiquer à l'utilisateur
MessageBox.Show("Le document ne peut être validé par le serveur Lotus Notes; sauvegarde impossible");
}
//§/FIN DEBUG
}
else //§/La session Notes ne peut être ouverte
{
//§/On affiche un message à l'utilisateur
MessageBox.Show("Impossible d'ouvrir la session Notes; création du rdv impossible");
}
//§/Systématiquement nous supprimons ici tous les éléments Notes et fermons la session
//§/Cela permet d'économiser la mémoire
//§/Il est à noter qu'il est plus optimisé de supprimer tous les éléments locaux Notes
//§/avant d'effectuer le this.FermerSessionNotes() car FermerSessionNotes() force le passage
//§/du Garbage collector
//§/Supprimer le document Notes désormais inutile
oNotesDocument = null;
//§/Et fermer la session Notes
this.FermerSessionNotes();
}
private void button3_Click(object sender, EventArgs e)
{
//§/Si la session Notes peut être ouverte
if (OuvrirSessionNotes())
{
}
else //§/La session Notes ne peut être ouverte
{
//§/On affiche un message à l'utilisateur
MessageBox.Show("Impossible d'ouvrir la session Notes; affichage des rdv impossible");
}
//§/Systématiquement nous supprimons ici tous les éléments Notes et fermons la session
//§/Cela permet d'économiser la mémoire
//§/Il est à noter qu'il est plus optimisé de supprimer tous les éléments locaux Notes
//§/avant d'effectuer le this.FermerSessionNotes() car FermerSessionNotes() force le passage
//§/du Garbage collector
//§/Fermer la session Notes
this.FermerSessionNotes();
}
} |
Partager