예제 #1
0
파일: FreeBusy.cs 프로젝트: hiblen/CalDav
		public void Deserialize(System.IO.TextReader rdr, Serializer serializer) {
			string name, value;
			var parameters = new System.Collections.Specialized.NameValueCollection();
			while (rdr.Property(out name, out value, parameters) && !string.IsNullOrEmpty(name)) {
				switch (name.ToUpper()) {
					case "UID": UID = value; break;
					case "ORGANIZER":
						Organizer = new Contact();
						Organizer.Deserialize(value, parameters);
						break;
					case "SEQUENCE": Sequence = value.ToInt(); break;
					case "LAST-MODIFIED": LastModified = value.ToDateTime(); break;
					case "DTSTART": LastModified = value.ToDateTime(); break;
					case "DTEND": LastModified = value.ToDateTime(); break;
					case "DTSTAMP": DTSTAMP = value.ToDateTime(); break;
					case "FREEBUSY":
						var parts = value.Split('/');
						Details.Add(new DateTimeRange {
							From = parts.FirstOrDefault().ToDateTime(),
							To = parts.ElementAtOrDefault(1).ToDateTime()
						});
						break;
					case "END": return;
					default:
						Properties.Add(Tuple.Create(name, value, parameters));
						break;
				}
			}
		}
예제 #2
0
파일: Event.cs 프로젝트: hiblen/CalDav
		public void Deserialize(System.IO.TextReader rdr, Serializer serializer) {
			string name, value;
			var parameters = new System.Collections.Specialized.NameValueCollection();
			while (rdr.Property(out name, out value, parameters) && !string.IsNullOrEmpty(name)) {
				switch (name.ToUpper()) {
					case "BEGIN":
						switch (value) {
							case "VALARM":
								var a = serializer.GetService<Alarm>();
								a.Deserialize(rdr, serializer);
								Alarms.Add(a);
								break;
						}
						break;
					case "ATTENDEE":
						var contact = new Contact();
						contact.Deserialize(value, parameters);
						Attendees.Add(contact);
						break;
					case "CATEGORIES":
						Categories = value.SplitEscaped().ToList();
						break;
					case "CLASS": Class = value.ToEnum<Classes>(); break;
					case "CREATED": Created = value.ToDateTime(); break;
					case "DESCRIPTION": Description = value; break;
					case "DTEND": End = value.ToDateTime(); break;
					case "DTSTAMP": DTSTAMP = value.ToDateTime().GetValueOrDefault(); break;
					case "DTSTART": Start = value.ToDateTime(); break;
					case "LAST-MODIFIED": LastModified = value.ToDateTime(); break;
					case "LOCATION": Location = value; break;
					case "ORGANIZER":
						Organizer = serializer.GetService<Contact>();
						Organizer.Deserialize(value, parameters);
						break;
					case "PRIORITY": Priority = value.ToInt(); break;
					case "SEQUENCE": Sequence = value.ToInt(); break;
					case "STATUS": Status = value.ToEnum<Statuses>(); break;
					case "SUMMARY": Summary = value; break;
					case "TRANSP": Transparency = value; break;
					case "UID": UID = value; break;
					case "URL": Url = value.ToUri(); break;
					case "ATTACH":
						var attach = value.ToUri();
						if (attach != null)
							Attachments.Add(attach);
						break;
					case "RRULE":
						var rule = serializer.GetService<Recurrence>();
						rule.Deserialize(null, parameters);
						Recurrences.Add(rule);
						break;
					case "END": return;
					default:
						Properties.Add(Tuple.Create(name, value, parameters));
						break;
				}
			}

			IsAllDay = Start == End;
		}
예제 #3
0
		public void Deserialize(System.IO.TextReader rdr, Serializer serializer) {
			string name, value;
			var parameters = new System.Collections.Specialized.NameValueCollection();
			while (rdr.Property(out name, out value, parameters) && !string.IsNullOrEmpty(name)) {
				switch (name.ToUpper()) {
					case "CLASS": Class = value.ToEnum<Classes>(); break;
					case "STATUS": Status = value.ToEnum<Statuses>(); break;
					case "UID": UID = value; break;
					case "ORGANIZER":
						Organizer = new Contact();
						Organizer.Deserialize(value, parameters);
						break;
					case "CATEGORIES":
						Categories = value.SplitEscaped().ToList();
						break;
					case "DESCRIPTION": Description = value; break;
					case "SEQUENCE": Sequence = value.ToInt(); break;
					case "LAST-MODIFIED": LastModified = value.ToDateTime(); break;
					case "DTSTAMP": DTSTAMP = value.ToDateTime(); break;
					case "END": return;
					default:
						Properties.Add(Tuple.Create(name, value, parameters));
						break;
				}
			}
		}
예제 #4
0
        public void Deserialize(System.IO.TextReader rdr, Serializer serializer)
        {
            string name, value;
            var    parameters = new System.Collections.Specialized.NameValueCollection();

            while (rdr.Property(out name, out value, parameters) && !string.IsNullOrEmpty(name))
            {
                switch (name.ToUpper())
                {
                case "UID": UID = value; break;

                case "ORGANIZER":
                    Organizer = new Contact();
                    Organizer.Deserialize(value, parameters);
                    break;

                case "SEQUENCE": Sequence = value.ToInt(); break;

                case "LAST-MODIFIED": LastModified = value.ToDateTime(); break;

                case "DTSTART": LastModified = value.ToDateTime(); break;

                case "DTEND": LastModified = value.ToDateTime(); break;

                case "DTSTAMP": DTSTAMP = value.ToDateTime(); break;

                case "FREEBUSY":
                    var parts = value.Split('/');
                    Details.Add(new DateTimeRange
                    {
                        From = parts.FirstOrDefault().ToDateTime(),
                        To   = parts.ElementAtOrDefault(1).ToDateTime()
                    });
                    break;

                case "END": return;

                default:
                    Properties.Add(Tuple.Create(name, value, parameters));
                    break;
                }
            }
        }
예제 #5
0
        public void Deserialize(System.IO.TextReader rdr, Serializer serializer)
        {
            string name, value, rigthPart;
            var    parameters = new System.Collections.Specialized.NameValueCollection();

            while (rdr.Property(out name, out value, out rigthPart, parameters) && !string.IsNullOrEmpty(name))
            {
                switch (name.ToUpper())
                {
                case "CLASS": Class = value.ToEnum <Classes>(); break;

                case "STATUS": Status = value.ToEnum <Statuses>(); break;

                case "UID": UID = value; break;

                case "ORGANIZER":
                    Organizer = new Contact();
                    Organizer.Deserialize(value, parameters);
                    break;

                case "CATEGORIES":
                    Categories = value.SplitEscaped().ToList();
                    break;

                case "DESCRIPTION": Description = value; break;

                case "SEQUENCE": Sequence = value.ToInt(); break;

                case "LAST-MODIFIED": LastModified = value.ToDateTime(); break;

                case "DTSTAMP": DTSTAMP = value.ToDateTime(); break;

                case "END": return;

                default:
                    Properties.Add(Tuple.Create(name, value, parameters));
                    break;
                }
            }
        }
예제 #6
0
        public void Deserialize(System.IO.TextReader rdr, Serializer serializer)
        {
            string name, value;
            var    parameters = new System.Collections.Specialized.NameValueCollection();

            while (rdr.Property(out name, out value, parameters) && !string.IsNullOrEmpty(name))
            {
                switch (name.ToUpper())
                {
                case "BEGIN":
                    switch (value)
                    {
                    case "VALARM":
                        var a = serializer.GetService <Alarm>();
                        a.Deserialize(rdr, serializer);
                        Alarms.Add(a);
                        break;
                    }
                    break;

                case "ATTENDEE":
                    var contact = new Contact();
                    contact.Deserialize(value, parameters);
                    Attendees.Add(contact);
                    break;

                case "CATEGORIES":
                    Categories = value.SplitEscaped().ToList();
                    break;

                case "CLASS": Class = value.ToEnum <Classes>(); break;

                case "CREATED": Created = value.ToDateTime(); break;

                case "DESCRIPTION": Description = value; break;

                case "DTEND": End = value.ToDateTime(); break;

                case "DTSTAMP": DTSTAMP = value.ToDateTime().GetValueOrDefault(); break;

                case "DTSTART": Start = value.ToDateTime(); break;

                case "LAST-MODIFIED": LastModified = value.ToDateTime(); break;

                case "LOCATION": Location = value; break;

                case "ORGANIZER":
                    Organizer = serializer.GetService <Contact>();
                    Organizer.Deserialize(value, parameters);
                    break;

                case "PRIORITY": Priority = value.ToInt(); break;

                case "SEQUENCE": Sequence = value.ToInt(); break;

                case "STATUS": Status = value.ToEnum <Statuses>(); break;

                case "SUMMARY": Summary = value; break;

                case "TRANSP": Transparency = value; break;

                case "UID": UID = value; break;

                case "URL": Url = value.ToUri(); break;

                case "ATTACH":
                    var attach = value.ToUri();
                    if (attach != null)
                    {
                        Attachments.Add(attach);
                    }
                    break;

                case "RRULE":
                    var rule = serializer.GetService <Recurrence>();
                    rule.Deserialize(null, parameters);
                    Recurrences.Add(rule);
                    break;

                case "END": return;

                default:
                    Properties.Add(Tuple.Create(name, value, parameters));
                    break;
                }
            }

            IsAllDay = Start == End;
        }