public void can_display_updated_room_types()
        {
            //given
            var rt1    = new RoomTypeAdded(Guid.NewGuid(), "1King", "test description");
            var rt2    = new RoomTypeAdded(Guid.NewGuid(), "2Queen", "test description");
            var rt3    = new RoomTypeAdded(Guid.NewGuid(), "3Econ", "test description");
            var update = new RoomTypeDescriptionChanged(rt1.TypeId, "1Super");
            //when
            var rm = new RoomTypeReader(() => null, new SimpleRepo(null, "Administration.Blueprint.Events", "Administration").Deserialize);

            rm.Apply(rt1);
            rm.Apply(rt2);
            rm.Apply(rt3);
            rm.Apply(update);
            //Then
            Assert.Collection(rm.Current,
                              i => {
                var item = i as RoomTypeItem;
                Assert.NotNull(item);
                Assert.Equal(rt2.TypeId, item.Id);
                Assert.Equal(rt2.Description, item.Description, StringComparer.Ordinal);
            }, i => {
                var item = i as RoomTypeItem;
                Assert.NotNull(item);
                Assert.Equal(rt3.TypeId, item.Id);
                Assert.Equal(rt3.Description, item.Description, StringComparer.Ordinal);
            },
                              i => {
                var item = i as RoomTypeItem;
                Assert.NotNull(item);
                Assert.Equal(rt1.TypeId, item.Id);
                Assert.Equal(update.Description, item.Description, StringComparer.Ordinal);
            });
        }
        private void Apply(RoomTypeDescriptionChanged evt)
        {
            var rt = Model.FirstOrDefault(i => i.Id == evt.TypeId);

            if (rt != null)
            {
                Model.Remove(rt);
                Model.Add(new RoomTypeItem(evt.TypeId, rt.Name, evt.Description));
            }
        }