Example #1
0
        public static void SetEventTopic(ObjectContext context, EventV2 source, Event theEvent)
        {
            try
            {
                //ignore null values
                if (source.EventTopics == null)
                    return;

                var topics = context.CreateObjectSet<EventTopic>();

                var eventTopics = new List<EventTopic>();

                foreach (var topicName in source.EventTopics.Select(e => e.Name))
                {
                    var eventTopic = topics.Where(i => i.Name == topicName).FirstOrDefault();

                    //Ensure eventTopic exists
                    if (eventTopic == null)
                    {
                        //topic doesn't exist, create a new topic
                        eventTopic = new EventTopic()
                        {
                            Name = topicName,
                            IsEnabled = true
                        };
                        topics.AddObject(eventTopic);
                    }
                    eventTopics.Add(eventTopic);
                }

                UpdateEventTopic(theEvent, eventTopics, context);
            }
            catch (Exception ex)
            {
                throw new BusinessException("Error processing the event topic for event '" + theEvent.Title + "' - " + ex.Message, ex);
            }
        }
        public void FilterByTopic()
        {
            //setup
            var topic1 = new EventTopic { Id = 1 };
            var topic2 = new EventTopic { Id = 2 };
            var event1 = new Event { Id = 1 };
            var event2 = new Event { Id = 2 };
            event1.EventTopicAssociations.Add(new EventTopicAssociation { EventTopic = topic1, EventTopicId = topic1.Id });
            _objectSet.Add(event1);
            event2.EventTopicAssociations.Add(new EventTopicAssociation { EventTopic = topic2, EventTopicId = topic2.Id });
            _objectSet.Add(event2);

            //act
            var filtered = _objectSet.AsQueryable().FilterByTopic(1);

            //assert
            AssertIncluded(filtered, 1);
            AssertExcluded(filtered, 2, 3);
        }