Exemplo n.º 1
0
		public void Serialize(System.IO.TextWriter wrtr) {
			wrtr.BeginBlock("VALARM");
			wrtr.Property("ACTION", Action);
			wrtr.Property("DESCRIPTION", Description);
			wrtr.Property("TRIGGER", Trigger);
			wrtr.EndBlock("VALARM");
		}
Exemplo n.º 2
0
		public void Serialize(System.IO.TextWriter wrtr) {
			wrtr.BeginBlock("VJOURNAL");
			wrtr.Property("ORGANIZER", Organizer);
			wrtr.Property("CLASS", Class);
			wrtr.Property("UID", UID);
			wrtr.Property("SEQUENCE", Sequence);
			wrtr.Property("LAST-MODIFIED", LastModified);
			wrtr.EndBlock("VJOURNAL");
		}
Exemplo n.º 3
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;
         }
     }
 }
Exemplo n.º 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;
				}
			}
		}
Exemplo n.º 5
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;
		}
Exemplo n.º 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) {
					case "ACTION": Action = value; break;
					case "DESCRIPTION": Description = value; break;
					case "TRIGGER": Trigger = serializer.GetService<Trigger>(); Trigger.Deserialize(value, parameters); break;
				}
			}
		}
Exemplo n.º 7
0
		public virtual void Deserialize(System.IO.TextReader rdr, Serializer serializer = null) {
			if (serializer == null) serializer = new 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 "VEVENT":
								var e = serializer.GetService<Event>();
								e.Calendar = this;
								Events.Add(e);
								e.Deserialize(rdr, serializer);
								break;
							case "VTIMEZONE":
								var tz = serializer.GetService<TimeZone>();
								tz.Calendar = this;
								TimeZones.Add(tz);
								tz.Deserialize(rdr, serializer);
								break;
							case "VTODO":
								var td = serializer.GetService<ToDo>();
								td.Calendar = this;
								ToDos.Add(td);
								td.Deserialize(rdr, serializer);
								break;
							case "VFREEBUSY":
								var fb = serializer.GetService<FreeBusy>();
								fb.Calendar = this;
								FreeBusy.Add(fb);
								fb.Deserialize(rdr, serializer);
								break;
							case "VJOURNAL":
								var jn = serializer.GetService<JournalEntry>();
								jn.Calendar = this;
								JournalEntries.Add(jn);
								jn.Deserialize(rdr, serializer);
								break;
						}
						break;
					case "CALSCALE": Scale = value; break;
					case "VERSION": Version = value; break;
					case "PRODID": ProdID = value; break;
					case "END":
						if (value == "VCALENDAR")
							return;
						break;
					default:
						Properties.Add(Tuple.Create(name, value, parameters));
						break;
				}
			}
		}
Exemplo n.º 8
0
		public void Serialize(System.IO.TextWriter wrtr) {
			wrtr.BeginBlock("VFREEBUSY");
			wrtr.Property("ORGANIZER", Organizer);
			wrtr.Property("UID", UID);
			wrtr.Property("SEQUENCE", Sequence);
			wrtr.Property("LAST-MODIFIED", LastModified);
			wrtr.Property("DTSTART", Start);
			wrtr.Property("DTEND", End);
			wrtr.Property("Url", Url);
			foreach (var detail in Details) {
				wrtr.Property("FREEBUSY",
					(detail.From == null ? null : Common.FormatDate(detail.From.Value)) + "/"
					+ (detail.To == null ? null : Common.FormatDate(detail.To.Value))
					);

			}
			wrtr.EndBlock("VFREEBUSY");
		}
Exemplo n.º 9
0
            public ChangeEntry(System.Data.Entity.Infrastructure.DbEntityEntry f)
            {
                Entity = f.Entity;
                State = f.State;

                EntityType = Entity.GetType().GetEntityType();

                OriginalValues = new Dictionary<string, object>();

                if (State != EntityState.Modified)
                    return;

                var d = OriginalValues;
                foreach (var item in f.OriginalValues.PropertyNames)
                {
                    var fp = f.Property(item);
                    if (!fp.IsModified)
                        continue;
                    d[item] = fp.OriginalValue;
                }
            }
Exemplo n.º 10
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 "DTSTAMP": DTSTAMP = value.ToDateTime(); break;
					case "DTSTART": Start = value.ToDateTime(); break;
					case "DUE": Due = value.ToDateTime(); break;
					case "SUMMARY": Summary = value; break;
					case "CLASS": Class = value.ToEnum<Classes>(); break;
					case "CATEGORIES": Categories = value.SplitEscaped().ToList(); break;
					case "PRIORITY": Priority = value.ToInt(); break;
					case "STATUS": Status = value.ToEnum<Statuses>(); break;
					case "LAST-MODIFIED": LastModified = value.ToDateTime(); break;
					case "COMPLETED": Completed = value.ToDateTime(); break;
					case "SEQUENCE": Sequence = value.ToInt(); break;
					case "END": return;
					default:
						Properties.Add(Tuple.Create(name, value, parameters));
						break;
				}
			}
		}
Exemplo n.º 11
0
        public virtual void Serialize(System.IO.TextWriter wrtr)
        {
            wrtr.BeginBlock("VCALENDAR");
            wrtr.Property("VERSION", Version ?? "2.0");
            wrtr.Property("PRODID", Common.PRODID);
            wrtr.Property("CALSCALE", Scale);

            if (Properties != null)
                foreach (var prop in Properties)
                    wrtr.Property(prop.Item1, prop.Item2, parameters: prop.Item3);

            foreach (var tz in TimeZones) {
                tz.Calendar = this;
                tz.Serialize(wrtr);
            }
            foreach (var e in Events) {
                e.Calendar = this;
                e.Serialize(wrtr);
            }
            foreach (var td in ToDos) {
                td.Calendar = this;
                td.Serialize(wrtr);
            }
            foreach (var fb in FreeBusy) {
                fb.Calendar = this;
                fb.Serialize(wrtr);
            }
            foreach (var jn in JournalEntries) {
                jn.Calendar = this;
                jn.Serialize(wrtr);
            }
            wrtr.EndBlock("VCALENDAR");
        }
Exemplo n.º 12
0
        public void Serialize(System.IO.TextWriter wrtr)
        {
            if (End != null && Start != null && End < Start)
                End = Start;

            wrtr.BeginBlock("VEVENT");
            wrtr.Property("UID", UID);
            if (Attendees != null)
                foreach (var attendee in Attendees)
                    wrtr.Property("ATTENDEE", attendee);
            if (Categories != null && Categories.Count > 0)
                wrtr.Property("CATEGORIES", Categories);
            wrtr.Property("CLASS", Class);
            wrtr.Property("CREATED", Created);
            wrtr.Property("DESCRIPTION", Description);
            NameValueCollection startParameter = new NameValueCollection();
            NameValueCollection endParameter = new NameValueCollection();
            if (!String.IsNullOrEmpty(StartTzid)) startParameter.Add("TZID", StartTzid);
            if (!String.IsNullOrEmpty(EndTzid)) endParameter.Add("TZID", EndTzid);

            if (!IsAllDayEvent)
            {
                wrtr.Property("DTSTART", Start, parameters : startParameter);
                wrtr.Property("DTEND", End, parameters: endParameter);
            }
            else
            {
                wrtr.Property("DTSTART", Start.Value.ToString("yyyyMMdd"), parameters: startParameter);
                wrtr.Property("DTEND", End.Value.ToString("yyyyMMdd"), parameters: endParameter);
            }

            wrtr.Property("DTSTAMP", DTSTAMP);
            wrtr.Property("LAST-MODIFIED", LastModified);
            wrtr.Property("LOCATION", Location);
            wrtr.Property("ORGANIZER", Organizer);
            wrtr.Property("PRIORITY", Priority);
            wrtr.Property("SEQUENCE", Sequence);
            wrtr.Property("STATUS", Status);
            wrtr.Property("SUMMARY", Summary);
            if (Recurrences.Any())
                foreach (var recurrence in Recurrences)
                {
                    wrtr.Property("RRULE", recurrence.ToString(), encoded : true);
                }

            if (ExDates.Any())
            {
                if (!IsAllDayEvent)
                {
                    foreach (var exdate in ExDates)
                    {
                        wrtr.Property("EXDATE", exdate);
                    }
                }
                else
                {
                    foreach (var exdate in ExDates)
                    {
                        //allday
                        NameValueCollection extDateParam = new NameValueCollection();
                        extDateParam.Add("VALUE", "DATE");
                        wrtr.Property("EXDATE", exdate.ToString("yyyyMMdd"), parameters: extDateParam);
                    }
                }
            }

            wrtr.Property("TRANSP", Transparency);
            wrtr.Property("URL", Url);
            if (Properties != null)
                foreach (var prop in Properties)
                    wrtr.Property(prop.Item1, prop.Item2, parameters: prop.Item3);

            if (Alarms != null)
                foreach (var alarm in Alarms)
                    alarm.Serialize(wrtr);
            wrtr.EndBlock("VEVENT");
        }
Exemplo n.º 13
0
 public void TestPropertyAccessor()
 {
     var it = new { Property = "pwic" };
     Assert.AreEqual("pwic", it.Property("Property"));
 }
Exemplo n.º 14
0
		public void Serialize(System.IO.TextWriter wrtr) {
			if (End != null && Start != null && End < Start)
				End = Start;

			wrtr.BeginBlock("VEVENT");
			wrtr.Property("UID", UID);
			if (Attendees != null)
				foreach (var attendee in Attendees)
					wrtr.Property("ATTENDEE", attendee);
			if (Categories != null && Categories.Count > 0)
				wrtr.Property("CATEGORIES", Categories);
			wrtr.Property("CLASS", Class);
			wrtr.Property("CREATED", Created);
			wrtr.Property("DESCRIPTION", Description);
			wrtr.Property("DTEND", IsAllDay ? (End ?? Start.Value).Date : End);
			wrtr.Property("DTSTAMP", DTSTAMP);
			wrtr.Property("DTSTART", IsAllDay ? (Start ?? End.Value).Date : Start);
			wrtr.Property("LAST-MODIFIED", LastModified);
			wrtr.Property("LOCATION", Location);
			wrtr.Property("ORGANIZER", Organizer);
			wrtr.Property("PRIORITY", Priority);
			wrtr.Property("SEQUENCE", Sequence);
			wrtr.Property("STATUS", Status);
			wrtr.Property("SUMMARY", Summary);
			wrtr.Property("TRANSP", Transparency);
			wrtr.Property("URL", Url);

			if (Properties != null)
				foreach (var prop in Properties)
					wrtr.Property(prop.Item1, prop.Item2, parameters: prop.Item3);

			if (Alarms != null)
				foreach (var alarm in Alarms)
					alarm.Serialize(wrtr);
			wrtr.EndBlock("VEVENT");
		}
Exemplo n.º 15
0
		public void Serialize(System.IO.TextWriter wrtr) {
			wrtr.BeginBlock("VTODO");
			wrtr.Property("UID", UID);
			wrtr.Property("DTSTAMP", DTSTAMP);
			wrtr.Property("DTSTART", Start);
			wrtr.Property("DUE", Due);
			wrtr.Property("SUMMARY", Summary);
			wrtr.Property("CLASS", Class);
			wrtr.Property("CATEGORIES", Categories);
			wrtr.Property("PRIORITY", Priority);
			wrtr.Property("STATUS", Status);
			wrtr.Property("SEQUENCE", Sequence);
			wrtr.Property("LAST-MODIFIED", LastModified);

			if (Properties != null)
				foreach (var prop in Properties)
					wrtr.Property(prop.Item1, prop.Item2, parameters: prop.Item3);

			wrtr.EndBlock("VTODO");
		}