Bonjour,
Je développe une appli de gestion d’événement. J'ai un agenda que j'exporte au format vcf dans outlook. Mais le problème, c'est que ça ne se met pas à jour automatiquement.
J'essaie donc de faire un lien pour pouvoir l'intégrer en tant que calendrier Internet (Icalendar)
Mais ça ne marche pas...
Voici mon fichier PlanningAutoSynchroPerso.ashx
Code vb.net : Sélectionner tout - Visualiser dans une fenêtre à part
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 Imports System.Web Imports System.Web.Services Imports System.Web.SessionState Imports System.IO Public Class PlanningAutoSynchroPerso Implements System.Web.IHttpHandler, IReadOnlySessionState Private Sub EcrireEvt(ByVal MaLigne As DataRowView, ByRef writer As StreamWriter) Dim strcal, strcaldesc As String strcaldesc = "" strcal = "" Select Case MaLigne("Type").ToString Case "Atelier" strcal = "Atelier " & MaLigne("Societe_Agenda").ToString & vbNewLine strcal &= MaLigne("Descriptif") strcaldesc = MaLigne("Objet").ToString Case "Rendez-vous" If MaLigne("Objet").ToString <> "" Then strcaldesc = MaLigne("Objet").ToString End If strcal = MaLigne("Descriptif") & " de " & MaLigne("Societe_Agenda").ToString Case Else If Not IsDBNull(MaLigne("Descriptif")) Then strcal = MaLigne("Descriptif") End If End Select 'HEADER writer.WriteLine("BEGIN:VEVENT") 'BODY writer.WriteLine("DTSTART:" & CDate(MaLigne("HeureDebut").ToString).ToUniversalTime.ToString("yyyyMMdd\THHmmss\Z")) writer.WriteLine("DTEND:" & CDate(MaLigne("HeureFin").ToString).ToUniversalTime.ToString("yyyyMMdd\THHmmss\Z")) writer.WriteLine("LOCATION:" & MaLigne("Salle").ToString) writer.WriteLine("DESCRIPTION;ENCODING=QUOTED-PRINTABLE:" & strcaldesc) writer.WriteLine("SUMMARY:" & strcal) 'FOOTER writer.WriteLine("PRIORITY:3") writer.WriteLine("END:VEVENT") End Sub Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest Try Dim IdContact As Guid = New Guid(HelperURL.GetParam("IdContact")) Dim ds As DataSet = ContactClass.GetPlanning(IdContact) If ds IsNot Nothing AndAlso ds.Tables.Count > 0 AndAlso ds.Tables(0).Rows.Count > 0 Then 'INITIALIZATION Dim mStream As New MemoryStream() Dim writer As New StreamWriter(mStream) writer.AutoFlush = True 'Ecriture des Evt writer.WriteLine("BEGIN:VCALENDAR") writer.WriteLine("PRODID:-//Microsoft Corporation//Outlook 9.0 MIMEDIR//FR") Dim dtv As DataView = ds.Tables(0).DefaultView For Each l As DataRowView In dtv EcrireEvt(l, writer) Next writer.WriteLine("END:VCALENDAR") context.Response.Clear() 'clears the current output content from the buffer context.Response.ContentEncoding = System.Text.Encoding.UTF8 context.Response.AppendHeader("Content-Disposition", "filename=Agenda_KO2016" & IdContact.ToString() & ".ics") context.Response.ContentType = "text/calendar" context.Response.BinaryWrite(mStream.ToArray()) context.Response.End() Else context.Response.Write("Pas de calendrier") End If Catch ex As Exception context.Response.Write("Pas de calendrier") End Try End Sub ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable Get Return False End Get End Property End Class
L'appel se fait par MonURL/Planning/PlanningAutoSynchroPerso.ashx?Idcontact=GuidEnString
Mon appli exigent d'être connecté, je n'ai pas oublié de mettre ma page en exception dans le Web.config
Est-ce que je mis prend comme il faut? Ou est mon erreur?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <location path="~/Planning/PlanningAutoSynchroPerso.ashx"> <system.web> <authorization> <allow users="*" /> </authorization> </system.web> </location>
Partager