private ZonelessEventStore CreateFilterable(Calinfo calinfo) { var filterable = new ZonelessEventStore(calinfo); filterable.AddEvent("e1", "", "s1", null, null, DateTime.Parse("2013/11/01 8 AM"), DateTime.MinValue, false, null, null, null); filterable.AddEvent("e2", "", "s1", null, null, DateTime.Parse("2013/11/02 8 AM"), DateTime.MinValue, false, null, null, null); filterable.AddEvent("e3", "", "s2", null, null, DateTime.Parse("2013/11/03 8 AM"), DateTime.MinValue, false, null, null, null); filterable.AddEvent("e4", "", "s2", null, null, DateTime.Parse("2013/11/04 8 AM"), DateTime.MinValue, false, null, null, null); filterable.AddEvent("e5", "", "s2", null, null, DateTime.Parse("2013/11/05 8 AM"), DateTime.MinValue, false, "music", null, null); Assert.That(filterable.events.Count == 5); return(filterable); }
public void AddZonelessEventIncrementsCount() { var zoneless = new ZonelessEventStore(calinfo); Assert.AreEqual(0, zoneless.events.Count); zoneless.AddEvent(in_evt0_zoneless.title, in_evt0_zoneless.url, in_evt0_zoneless.source, test_lat, test_lon, in_evt0_zoneless.dtstart, in_evt0_zoneless.dtend, allday: false, categories: test_category, description: test_description, location: test_location); Assert.AreEqual(1, zoneless.events.Count); }
public static ZonelessEventStore ZonedToZoneless(string id, Calinfo calinfo, ZonedEventStore es_zoned) { var es_zoneless = new ZonelessEventStore(calinfo); foreach (var evt in es_zoned.events) { es_zoneless.AddEvent(evt.title, evt.url, evt.source, evt.lat, evt.lon, evt.dtstart.LocalTime, evt.dtend.LocalTime, evt.allday, evt.categories, evt.description, evt.location); } ZonelessEventStore.Finalize(calinfo, es_zoneless); return(es_zoneless); }
public void SerializeAndDeserializeZonelessEventStoreYieldsExpectedEvents() { var es = new ZonelessEventStore(calinfo); es.AddEvent(title: title1, url: "http://foo", source: source1, lat: null, lon: null, dtstart: dt1, dtend: min, allday: false, categories: test_category, description: test_description, location: test_location); var evt1 = es.events.Find(e => e.title == title1); evt1.urls_and_sources = new Dictionary <string, string>() { { "http://foo", source1 } }; es.AddEvent(title: title2, url: "http://bar", source: source2, lat: null, lon: null, dtstart: dt2, dtend: min, allday: false, categories: null, description: test_description, location: test_location); var evt2 = es.events.Find(e => e.title == title2); evt2.urls_and_sources = new Dictionary <string, string>() { { "http://bar", source2 } }; var response = es.Serialize(); Assert.AreEqual(HttpStatusCode.Created, response.HttpResponse.status); var es2 = new ZonelessEventStore(calinfo).Deserialize(); es2.SortEventList(); Assert.That(es2.events.Count == 2); evt1 = es2.events[0]; evt2 = es2.events[1]; Assert.AreEqual(evt1.dtstart, dt1); Assert.AreEqual(evt2.dtstart, dt2); Assert.AreEqual(evt1.title, title1); Assert.AreEqual(evt2.title, title2); }
private ZonelessEventStore MakeNewEventStore() { var title1 = "e1"; var title2 = "e2"; var source1 = "s1"; var source2 = "s2"; var expected_year = 2020; var expected_hour = 1; var dt1 = new DateTime(expected_year, 1, 1, expected_hour, 1, 1); var dt2 = new DateTime(expected_year, 2, 2, expected_hour, 2, 2); var min = DateTime.MinValue; var test_category = "test_category"; var test_description = "test_description"; var test_location = "test_location"; var es = new ZonelessEventStore(calinfo); es.AddEvent(title: title1, url: "http://foo", source: source1, lat: null, lon: null, dtstart: dt1, dtend: min, allday: false, categories: test_category, description: test_description, location: test_location); var evt1 = es.events.Find(e => e.title == title1); evt1.urls_and_sources = new Dictionary <string, string>() { { "http://foo", source1 } }; es.AddEvent(title: title2, url: "http://bar", source: source2, lat: null, lon: null, dtstart: dt2, dtend: min, allday: false, categories: null, description: test_description, location: test_location); var evt2 = es.events.Find(e => e.title == title2); evt2.urls_and_sources = new Dictionary <string, string>() { { "http://foo", source1 } }; return(es); }
public static void CombineZonedEventStoresToZonelessEventStore(string id, Dictionary <string, string> settings) { var bs = BlobStorage.MakeDefaultBlobStorage(); var calinfo = new Calinfo(id); var lists_of_zoned_events = new List <List <ZonedEvent> >(); var ical_uri = BlobStorage.MakeAzureBlobUri(container: id, name: id + "." + SourceType.ical + ".zoned.obj", use_cdn: false); DeserializeZoned(ical_uri, lists_of_zoned_events); //if (calinfo.hub_type == HubType.where.ToString()) if (calinfo.hub_enum == HubType.where) { Uri non_ical_uri; //foreach (var type in non_ical_types) foreach (NonIcalType type in Enum.GetValues(typeof(CalendarAggregator.NonIcalType))) { if (Utils.UseNonIcalService(type, settings, calinfo) == false) { continue; } non_ical_uri = BlobStorage.MakeAzureBlobUri(container: id, name: id + "." + type + ".zoned.obj", use_cdn: false); if (BlobStorage.ExistsBlob(non_ical_uri)) // // might not exist, e.g. if facebook=no in hub metadata { DeserializeZoned(non_ical_uri, lists_of_zoned_events); } } } var es_zoneless = new ZonelessEventStore(calinfo); // combine the various List<ZonedEvent> objects into our new ZonelessEventStore // always add the local time foreach (var list in lists_of_zoned_events) { foreach (var evt in list) { es_zoneless.AddEvent(evt.title, evt.url, evt.source, evt.lat, evt.lon, evt.dtstart.LocalTime, evt.dtend.LocalTime, evt.allday, evt.categories, evt.description, evt.location); } } ZonelessEventStore.Finalize(calinfo, es_zoneless); }
private static ContentResult view_calendar_helper(string id, ContentResult r, ZonedEventStore es_zoned, ZonelessEventStore es_zoneless) { foreach (var evt in es_zoned.events) es_zoneless.AddEvent(evt.title, evt.url.ToString(), evt.source, "", "", evt.dtstart.LocalTime, evt.dtend.LocalTime, evt.allday, evt.categories, evt.description, evt.location); es_zoneless.events = EventStore.UniqueByTitleAndStart(id, es_zoneless.events, save_tag_sources: false); es_zoneless.ExcludePastEvents(); es_zoneless.SortEventList(); var cr = new CalendarRenderer(id); r.Content = cr.RenderHtmlEventsOnly(es_zoneless, null, 0, DateTime.MinValue, DateTime.MinValue, new Dictionary<string, object>() { { "announce_time_of_day", false }, { "add_to_cal", false }, { "inline_descriptions", true }, {"taglist",false } } ); return r; }
private ZonelessEventStore MakeNewEventStore() { var title1 = "e1"; var title2 = "e2"; var source1 = "s1"; var source2 = "s2"; var expected_year = 2020; var expected_hour = 1; var dt1 = new DateTime(expected_year, 1, 1, expected_hour, 1, 1); var dt2 = new DateTime(expected_year, 2, 2, expected_hour, 2, 2); var min = DateTime.MinValue; var test_category = "test_category"; var test_description = "test_description"; var test_location = "test_location"; var es = new ZonelessEventStore(calinfo); es.AddEvent(title: title1, url: "http://foo", source: source1, lat: null, lon: null, dtstart: dt1, dtend: min, allday: false, categories: test_category, description: test_description, location: test_location); var evt1 = es.events.Find(e => e.title == title1); evt1.urls_and_sources = new Dictionary<string, string>() { { "http://foo", source1 } }; es.AddEvent(title: title2, url: "http://bar", source: source2, lat: null, lon: null, dtstart: dt2, dtend: min, allday: false, categories: null, description: test_description, location: test_location); var evt2 = es.events.Find(e => e.title == title2); evt2.urls_and_sources = new Dictionary<string, string>() { { "http://foo", source1 } }; return es; }
private ZonelessEventStore CreateFilterable(Calinfo calinfo) { var filterable = new ZonelessEventStore(calinfo); filterable.AddEvent("e1", "", "s1", null, null, DateTime.Parse("2013/11/01 8 AM"), DateTime.MinValue, false, null, null, null); filterable.AddEvent("e2", "", "s1", null, null, DateTime.Parse("2013/11/02 8 AM"), DateTime.MinValue, false, null, null, null); filterable.AddEvent("e3", "", "s2", null, null, DateTime.Parse("2013/11/03 8 AM"), DateTime.MinValue, false, null, null, null); filterable.AddEvent("e4", "", "s2", null, null, DateTime.Parse("2013/11/04 8 AM"), DateTime.MinValue, false, null, null, null); filterable.AddEvent("e5", "", "s2", null, null, DateTime.Parse("2013/11/05 8 AM"), DateTime.MinValue, false, "music", null, null); Assert.That(filterable.events.Count == 5); return filterable; }
public void SerializeAndDeserializeZonelessEventStoreYieldsExpectedEvents() { var es = new ZonelessEventStore(calinfo); es.AddEvent(title:title1, url:"http://foo", source:source1, lat: null, lon: null, dtstart: dt1, dtend: min, allday: false, categories: test_category, description: test_description, location: test_location); var evt1 = es.events.Find(e => e.title == title1); evt1.urls_and_sources = new Dictionary<string, string>() { { "http://foo", source1 } }; es.AddEvent(title:title2, url:"http://bar", source:source2, lat: null, lon: null, dtstart: dt2, dtend: min, allday: false, categories:null, description: test_description, location: test_location); var evt2 = es.events.Find(e => e.title == title2); evt2.urls_and_sources = new Dictionary<string, string>() { { "http://bar", source2 } }; var response = es.Serialize(); Assert.AreEqual(HttpStatusCode.Created, response.HttpResponse.status); var es2 = new ZonelessEventStore(calinfo).Deserialize(); es2.SortEventList(); Assert.That(es2.events.Count == 2); evt1 = es2.events[0]; evt2 = es2.events[1]; Assert.AreEqual(evt1.dtstart, dt1); Assert.AreEqual(evt2.dtstart, dt2); Assert.AreEqual(evt1.title, title1); Assert.AreEqual(evt2.title, title2); }
public void SerializeAndDeserializeZonelessEventStoreYieldsExpectedEvents() { var es = new ZonelessEventStore(calinfo); es.AddEvent(title:title1, url:"http://foo", source:source1, lat: null, lon: null, dtstart: dt1, dtend: min, allday: false, categories: test_category, description: test_description, location: test_location); var evt1 = es.events.Find(e => e.title == title1); evt1.urls_and_sources = new Dictionary<string, string>() { { "http://foo", source1 } }; //var item1 = new List<string>() { "http://foo", source1 }; //evt1.list_of_urls_and_sources = new List<List<string>>() { item1 }; es.AddEvent(title:title2, url:"http://bar", source:source2, lat: null, lon: null, dtstart: dt2, dtend: min, allday: false, categories:null, description: test_description, location: test_location); var evt2 = es.events.Find(e => e.title == title2); evt2.urls_and_sources = new Dictionary<string, string>() { { "http://bar", source2 } }; //var item2 = new List<string>() { "http://foo", source2 }; //evt2.list_of_urls_and_sources = new List<List<string>>() { item2 }; es.Serialize(); var es2 = new ZonelessEventStore(calinfo).Deserialize(); CalendarRenderer.OrganizeByDate(es2); Assert.That(es2.event_dict.Keys.Count == 2); var list1 = es2.event_dict[es2.event_dict.Keys.First()]; var list2 = es2.event_dict[es2.event_dict.Keys.Last()]; evt1 = list1.First(); evt2 = list2.First(); Assert.AreEqual(evt1.dtstart, dt1); Assert.AreEqual(evt2.dtstart, dt2); Assert.AreEqual(evt1.title, title1); Assert.AreEqual(evt2.title, title2); evt1 = es2.events.First(); evt2 = es2.events.Last(); Assert.AreEqual(evt1.dtstart, dt1); Assert.AreEqual(evt2.dtstart, dt2); Assert.AreEqual(evt1.title, title1); Assert.AreEqual(evt2.title, title2); }
public static ZonelessEventStore ZonedToZoneless(string id, Calinfo calinfo, ZonedEventStore es_zoned) { var es_zoneless = new ZonelessEventStore(calinfo); foreach (var evt in es_zoned.events) es_zoneless.AddEvent(evt.title, evt.url, evt.source, evt.lat, evt.lon, evt.dtstart.LocalTime, evt.dtend.LocalTime, evt.allday, evt.categories, evt.description, evt.location); EventStore.UniqueFilterSortSerialize(id, es_zoneless); return es_zoneless; }
public static void CombineZonedEventStoresToZonelessEventStore(string id, Dictionary<string, string> settings) { var bs = BlobStorage.MakeDefaultBlobStorage(); var calinfo = new Calinfo(id); var lists_of_zoned_events = new List<List<ZonedEvent>>(); var ical_uri = BlobStorage.MakeAzureBlobUri(container: id, name: id + "." + SourceType.ical + ".zoned.obj", use_cdn: false); DeserializeZoned(ical_uri, lists_of_zoned_events); //if (calinfo.hub_type == HubType.where.ToString()) if ( calinfo.hub_enum == HubType.where ) { Uri non_ical_uri; //foreach (var type in non_ical_types) foreach (NonIcalType type in Enum.GetValues(typeof(CalendarAggregator.NonIcalType))) { if (Utils.UseNonIcalService(type, settings, calinfo) == false) continue; non_ical_uri = BlobStorage.MakeAzureBlobUri(container: id, name: id + "." + type + ".zoned.obj", use_cdn:false); if (BlobStorage.ExistsBlob(non_ical_uri)) // // might not exist, e.g. if facebook=no in hub metadata DeserializeZoned(non_ical_uri, lists_of_zoned_events); } } var es_zoneless = new ZonelessEventStore(calinfo); // combine the various List<ZonedEvent> objects into our new ZonelessEventStore // always add the local time foreach (var list in lists_of_zoned_events) foreach (var evt in list) { es_zoneless.AddEvent(evt.title, evt.url, evt.source, evt.lat, evt.lon, evt.dtstart.LocalTime, evt.dtend.LocalTime, evt.allday, evt.categories, evt.description, evt.location); } UniqueFilterSortSerialize(id, es_zoneless); }