示例#1
0
 public SessionHeaderViewModel(SessionPlace sessionPlace, Individual individual, SelectionModel selectionModel, Action showSession)
 {
     _sessionPlace   = sessionPlace;
     _individual     = individual;
     _selectionModel = selectionModel;
     _showSession    = showSession;
 }
示例#2
0
文件: Slot.cs 项目: mobidian/MyCon
 public void RemoveSchedule(SessionPlace sessionPlace)
 {
     foreach (Schedule schedule in CurrentSchedules
              .Where(s => s.SessionPlace == sessionPlace))
     {
         Community.AddFact(new ScheduleRemove(schedule));
     }
 }
示例#3
0
 public SessionDetailsViewModel(Slot slot, SessionPlace sessionPlace, ImageCache imageCache, SearchModel searchModel, Clock clock)
 {
     _slot         = slot;
     _sessionPlace = sessionPlace;
     _imageCache   = imageCache;
     _searchModel  = searchModel;
     _clock        = clock;
 }
示例#4
0
        public bool IsScheduled(SessionPlace sessionPlace)
        {
            var sessions =
                from attendee in Attendees
                from sp in attendee.ScheduledSessionPlaces
                select sp;

            return(sessions.Contains(sessionPlace));
        }
示例#5
0
 public async Task RemoveScheduleAsync(SessionPlace sessionPlace)
 {
     foreach (var attendee in await Attendees.EnsureAsync())
     {
         foreach (var schedule in await attendee.CurrentSchedules.EnsureAsync())
         {
             if (schedule.SessionPlace == sessionPlace)
             {
                 await Community.AddFactAsync(new ScheduleRemove(schedule));
             }
         }
     }
 }
示例#6
0
        public async Task <Schedule> AddScheduleAsync(SessionPlace sessionPlace)
        {
            Attendee attendee = (await Attendees.EnsureAsync()).FirstOrDefault();

            if (attendee == null)
            {
                attendee = await Community.AddFactAsync(new Attendee(
                                                            sessionPlace.Session.Conference,
                                                            Guid.NewGuid().ToString()));
            }
            await Community.AddFactAsync(new IndividualAttendee(this, attendee));

            var slot = await Community.AddFactAsync(new Slot(
                                                        attendee,
                                                        sessionPlace.Place.PlaceTime));

            return(await Community.AddFactAsync(new Schedule(slot, sessionPlace)));
        }
示例#7
0
        public object GetSessionDetailsViewModel(string sessionId)
        {
            Attendee attendee    = _synchronizationService.Attendee;
            Guid     sessionGuid = new Guid(sessionId);
            Session  session     = attendee.Conference.Sessions.Ensure().FirstOrDefault(s => s.Unique == sessionGuid);

            if (session == null)
            {
                return(null);
            }
            if (session.CurrentSessionPlaces.Ensure().Count() != 1)
            {
                return(null);
            }

            SessionPlace sessionPlace = session.CurrentSessionPlaces.Single();
            Slot         slot         = attendee.NewSlot(sessionPlace.Place.PlaceTime);

            return(ForView.Wrap(new SessionDetailsViewModel(slot, sessionPlace, _imageCache, _searchModel, _clock)));
        }
示例#8
0
        public static bool CanDisplay(SessionPlace sessionPlace, string searchTerm)
        {
            if (string.IsNullOrEmpty(searchTerm))
            {
                return(true);
            }

            bool hasSessionInfo =
                sessionPlace.Session.Name.Value != null &&
                sessionPlace.Session.Speaker.Name != null &&
                sessionPlace.Session.Track.Name != null &&
                sessionPlace.Session.Description.Value.Any();

            if (!hasSessionInfo)
            {
                return(false);
            }

            return
                (sessionPlace.Session.Speaker.Name.ToLower().Contains(searchTerm) ||
                 sessionPlace.Session.Name.Value.ToLower().Contains(searchTerm) ||
                 sessionPlace.Session.Track.Name.ToLower().Contains(searchTerm) ||
                 sessionPlace.Session.Description.Value.JoinSegments().ToLower().Contains(searchTerm));
        }
示例#9
0
 public SessionViewModel(SessionPlace sessionPlace)
 {
     _sessionPlace = sessionPlace;
 }
示例#10
0
文件: Slot.cs 项目: mobidian/MyCon
 public bool IsScheduled(SessionPlace sessionPlace)
 {
     return(CurrentSchedules.Any(s => s.SessionPlace == sessionPlace));
 }
示例#11
0
文件: Slot.cs 项目: mobidian/MyCon
 public void AddSchedule(SessionPlace sessionPlace)
 {
     Community.AddFact(new Schedule(this, sessionPlace));
 }
示例#12
0
 public SessionViewModel(SessionPlace sessionPlace, Individual individual)
 {
     _sessionPlace = sessionPlace;
     _individual   = individual;
 }
示例#13
0
 public TrackSessionViewModel(Slot slot, SessionPlace sessionPlace, ImageCache imageCache)
 {
     _slot         = slot;
     _sessionPlace = sessionPlace;
     _imageCache   = imageCache;
 }
示例#14
0
 public SessionHeaderViewModel(SessionPlace sessionPlace, SelectionModel selectionModel)
 {
     _sessionPlace   = sessionPlace;
     _selectionModel = selectionModel;
 }