Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
 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;
 }
Ejemplo n.º 8
0
        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;
        }
Ejemplo n.º 9
0
 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;
 }
Ejemplo n.º 10
0
 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);
 }
Ejemplo n.º 11
0
        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);
        }
Ejemplo n.º 12
0
        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);
        }
Ejemplo n.º 13
0
 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;
 }
Ejemplo n.º 14
0
        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);
        }