2014-09-08 1 views
0

Dans Windows 8.1 la gestion du calendrier utilise l'espace de noms Windows.ApplicationModel.Appointments.rendez-vous à la conversion iCalendar windows8.1 C#

Je suis en train de le comprendre et il est facilement maniable.

que je peux faire:
-créer un calendrier
calendriers -Afficher sur l'appareil
événements -Créer

qui est facile et bien;

ce que je veux est de savoir comment convertir l'objet Windows.ApplicationModel.Appointments.Appointment() pour objet iCalendar. afin que je puisse manipuler l'événement sur différentes applications?

Mon plan était le suivant:

créer appointmet -> sérialisation à chaîne JSON -> convertir cette chaîne JSON en iCalendar chaîne JSON -> envoyer cet objet JSON à différentes applications ou services Web.

je pouvais extraire l'objet JSON du rendez-vous sur les fenêtres 8.1 qui présente la structure suivante:

{ 
    "RoamingId": "", 
    "ReplyTime": null, 
    "OnlineMeetingLink": "", 
    "IsResponseRequested": true, 
    "IsOrganizedByUser": false, 
    "IsCanceledMeeting": false, 
    "AllowNewTimeProposal": true, 
    "UserResponse": 0, 
    "CalendarId": "", 
    "HasInvitees": false, 
    "LocalId": "", 
    "OriginalStartTime": null, 
    "Sensitivity": 0, 
    "Reminder": null, 
    "Recurrence": { 
     "WeekOfMonth": 0, 
     "Until": null, 
     "Unit": 3, 
     "Occurrences": 6, 
     "Month": 1, 
     "Interval": 3, 
     "DaysOfWeek": 32, 
     "Day": 1, 
     "TimeZone": "", 
     "RecurrenceType": 0 
    }, 
    "Organizer": null, 
    "Location": "", 
    "Duration": "00:00:00", 
    "Details": "", 
    "BusyStatus": 0, 
    "AllDay": false, 
    "StartTime": "2014-09-08T08:08:00+03:00", 
    "Uri": null, 
    "Subject": "this", 
    "Invitees": { 

    } 
} 

Cependant, la structure iCalendar est la suivante:

BEGIN:VCALENDAR 
PRODID:-//Test Productions //Test Event//EN 
VERSION:2.0 
METHOD:REQUEST 
BEGIN:VEVENT 
SUMMARY:Test Event 
DESCRIPTION:Description of Test Event 
DTSTART:20140825T100000Z 
DTEND:20140831T110000Z 
RRULE:FREQ=DAILY;UNTIL=20141231T060000Z 
LOCATION:Planer Earth 
CLASS:PUBLIC 
BEGIN:VALARM 
TRIGGER:-PT1H 
ACTION:EMAIL 
END:VALARM 
END:VEVENT 
END:VCALENDAR 

donc ils ne sont pas faciles à assortir . !

et ma question sera:

Y at-il une fonctionnalité intégrée dans les fenêtres 8.1 API qui peut me donner l'objet iCalendar directement?

Si pas alors: est-il une bibliothèque tierce partie (open source préférée) de le faire pour moi?

sinon je dois le faire moi-même et créer ma propre bibliothèque (non?)
Je ne souhaite pas réinventer la roue!

Répondre

0

Windows.ApplicationModel.Appointments ne parle pas iCalendar.

La seule bibliothèque .net pour iCalendar Je suis au courant est dday ical. Je ne sais pas assez pour le recommander. Le forum est toujours en vie, mais le code ne semble pas être activement maintenu et j'ai vu reconnu performance problems que je ne suis pas sûr d'avoir été traité. Dans tous les cas, il n'a aucune connaissance du nouvel espace de noms Windows.ApplicationModel.Appointments.

Je ne vois pas l'intérêt d'utiliser Json. Icalendar est un format assez simple, et, selon vos besoins, vous devriez être capable de coder la génération de vos Icalendars directement à partir de rendez-vous en utilisant des méthodes de chaîne.

+0

Windows.ApplicationModel.Appointments NE parle pas Icalendar, mais sur Microsoft! Et cette question est faite pour le découvrir. Tout événement de rendez-vous créé dans votre calendrier outlook (hotmail) peut facilement être synchronisé avec le calendrier gmail ou apple, car ils sont tous conformes à la norme icalendar avec des différences mineures – stackunderflow

+0

Quels objets et méthodes utiliseriez-vous dans Windows.ApplicationModel.Appointments pour générer un Icalendar . Je n'arrive pas à les trouver. – bbsimonbb

+0

Moi non plus!Mais pourquoi le calendrier Outlook accepte-t-il et lit-il les fichiers ics et échange-t-il ses événements avec les calendriers google et aapple et yahoo et fb ?? Il semble que vous deviez écrire votre propre bibliothèque pour convertir du format de/ics au format de rendez-vousManager ... j'explore des choses maintenant et essaye d'obtenir des opinions d'expert comme vous, et heureusement quelqu'un de msft lira ceci et nous mettra à jour – stackunderflow