private void Initialize() { MorningSession = new TrackSession("Morning Session", _sessionTimings.MorningSessionSlot); AfternoonSession = new TrackSession("Afternoon Session", _sessionTimings.AfternoonSessionSlot); LunchBreak = _sessionTimings.LunchBreakSlot; NetworkingEvent = _sessionTimings.NetworkingEventStartTimeSlot; }
public SessionDetailsPage(TrackSession parameter) { this._parameter = parameter; this.Appearing += SessionDetailsPage_Appearing; this.BindingContext = new SessionDetailsPageViewModel(); InitializeComponent(); }
public string Format(TrackSession trackSession) { if (trackSession == null) { throw new ArgumentNullException(nameof(trackSession)); } return($"{trackSession.Time.ToTimeString()} {trackSession.Title}"); }
public ConferenceTrack(int trackNumber) { TrackNumber = trackNumber; MorningSession = new TrackSession("MorningSession", 3); Lunch = new NonTrackSession("Lunch", 1); EveningSession = new TrackSession("EveningSession", 4); NetworkingEvent = new NonTrackSession("NetworkingEvent", 1); TimeSaved = 0; }
public ConferenceTrack(int trackNumber) { _trackNumber = trackNumber; _morningSession = new TrackSession("MorningSession", 3); _lunch = new NonTrackSession("Lunch", 1); _eveningSession = new TrackSession("EveningSession", 4); _networkingEvent = new NonTrackSession("NetworkingEvent", 1); _timeSaved = 0; }
public void Should_Format_ReturnCorrectFormattedOutput() { // Given var session = new TrackSession("Session #1", new TimeSlot(11, 15, 45)); var sut = new TrackSessionFormatter(); // When var result = sut.Format(session); // Then result.Should().Be("11:15AM Session #1"); }
public static TimeSlot GetNextSlot(this TrackSession trackSession, int duration) { if (trackSession == null) { throw new ArgumentNullException(nameof(trackSession)); } if (duration <= 0) { throw new ArgumentOutOfRangeException(nameof(duration)); } var datetime = DateTime.Today .AddHours(trackSession.Time.Hour) .AddMinutes(trackSession.Time.Minute + trackSession.Time.DurationInMinute); return(new TimeSlot(datetime.Hour, datetime.Minute, duration)); }
public void AllocateSession(SessionDefinition sessionDefinition) { if (sessionDefinition == null) { throw new ArgumentNullException(nameof(sessionDefinition)); } var lastSession = _trackSlot.TrackSessions.LastOrDefault(); var slot = lastSession != null ? lastSession.GetNextSlot(sessionDefinition.Duration) : _trackSlot.GetNextSlot(sessionDefinition.Duration); var trackSession = new TrackSession(sessionDefinition.Title, slot); _trackSlot.TrackSessions.Add(trackSession); UnallocatedTime -= sessionDefinition.Duration; }
public void Should_Format_ReturnCorrectFormattedOutput_WhenSlotHasSessions() { // Given var slot = new TrackSlot("Morning", new TimeSlot(9, 0, 180)); var session = new TrackSession("Session #1", new TimeSlot(11, 15, 45)); slot.TrackSessions.Add(session); var trackSessionFormatter = Substitute.For <ITrackSessionFormatter>(); trackSessionFormatter.Format(Arg.Any <TrackSession>()).Returns("11:15AM Session #1"); var sut = new TrackSlotFormatter(trackSessionFormatter); // When var result = sut.Format(slot); // Then result.Should().Be("11:15AM Session #1" + Environment.NewLine); }
public static TrackSessionViewModel AsViewModel(this TrackSession session, TrackViewModel track, VehicleViewModel vehicle, TimeSpan?bestLapTime, TrackSessionLocation location, string filePath, bool isMetricUnits) { return(new TrackSessionViewModel { TrackId = track != null ? track.Id : 0, Track = track, TrackName = track != null ? track.Name : string.Empty, Vehicle = vehicle, BestLapTime = session.BestLapTime, NumberOfLaps = session.NumberOfLaps, DeviceOrientation = session.DeviceOrientation, GpsDeviceName = session.GpsDeviceName, Location = location, LocalFilePath = location == TrackSessionLocation.LocalFile || location == TrackSessionLocation.ServerWithLocalFile ? filePath : string.Empty, ServerFilePath = location == TrackSessionLocation.ServerFile ? filePath : string.Empty, IsUploaded = location == TrackSessionLocation.ServerFile, Laps = new ObservableCollection <LapViewModel>(session.Laps.Select(lap => lap.AsViewModel(bestLapTime, isMetricUnits))), Timestamp = session.Timestamp.ToLocalTime(), Notes = session.Notes, Weather = session.Weather.AsViewModel(isMetricUnits) }); }
public static Event CreateDxEvent(DbModel.Event ev) { Event dxEvent = new Event() { EventStatus = ev.EventStatus.ToString(), EventFromDate = ev.EventFromDate, EventToDate = ev.EventToDate, EventAbstract = ev.EventAbstract, CityName = ev.CityName, EventId = ev.EventID, EventName = ev.EventName, EventRegLink = ev.RegLink, EventType = ev.EventType.ToString(), EventVenue = ev.EventVenue, Tracks = new List <EventTrack>(), GlobalEvent = ev.IsGlobal }; foreach (var et in ev.EventTracks) { var dxEventTrack = new EventTrack() { AudienceType = et.Track.AudType.TypeOfAudience, AudienceTypeId = et.Track.AudienceTypeID, EventTrackId = et.EventTrackID, Format = et.Track.Format.ToString(), TrackAbstract = et.Track.TrackAbstract, TrackEndTime = et.TrackEndTime, TrackStartTime = et.TrackStartTime, TrackId = et.Track.TrackID, TrackVenue = et.TrackVenue, TrackDisplayName = et.Track.TrackDisplayName, Sessions = new List <TrackSession>() }; dxEvent.Tracks.Add(dxEventTrack); foreach (var ets in et.Track.Session) { var eta = (from c in et.TrackAgendas where c.SessionID == ets.SessionID select c).FirstOrDefault(); var dxEventSession = new TrackSession() { Abstract = ets.Abstract, Posrequisites = ets.PostRequisites, Prerequisites = ets.PreRequisites, PrimaryTechnologyId = ets.PrimaryTechnologyID, PrimaryTechnologyName = ets.PrimaryTechnology.PrimaryTech, Product = ets.Product, SecondaryTechnologyId = ets.SecondaryTechnologyID, SecondaryTechnologyName = ets.SecondaryTechnology.SecondaryTech, SessionEndTime = eta.EndTime, SessionNo = ets.SessionNo, SessionStartTime = eta.StartTime, Speaker = new TrackSpeaker() { Affiliation = eta.Speaker.Affiliation.ToString(), Email = eta.Speaker.Email, PicUrl = eta.Speaker.PicUrl, Profile = eta.Speaker.Profile, SpeakerId = eta.SpeakerID, SpeakerName = eta.Speaker.SpeakerName, SpeakerType = eta.Speaker.Type.ToString(), Title = eta.Speaker.Title, BlogLink = eta.Speaker.BlogLink, FacebookLink = eta.Speaker.FacebookLink, LinkedinLink = eta.Speaker.LinkedInLink, Location = eta.Speaker.Location, TwitterLink = eta.Speaker.TwitterHandle }, Title = ets.Title, TechLevel = ets.TechLevel, TrackAgendaId = eta.TrackAgendaID }; dxEventTrack.Sessions.Add(dxEventSession); } } return(dxEvent); }