public string Format(TrackSlot trackSlot) { if (trackSlot == null) { throw new ArgumentNullException(nameof(trackSlot)); } return(trackSlot.IsPreScheduled == false ? FormatScheduled(trackSlot) : FormatPreScheduled(trackSlot)); }
public int GetTrackIndex(TrackSlot trackSlot) { for (int i = 0; i < trackSlotList.Length; i++) { if (trackSlotList[i] == trackSlot) { return(i); } } return(0); }
private string FormatScheduled(TrackSlot trackSlot) { var builder = new StringBuilder(); foreach (var session in trackSlot.TrackSessions) { var formattedSession = _trackSessionFormatter.Format(session); builder.AppendLine(formattedSession); } return(builder.ToString()); }
// Start is called before the first frame update void Start() { playerAttackAnimator = GetComponent <PlayerAttackAnimator>(); playerAttackSFX = GetComponent <AudioSource>(); playerTurner = GetComponent <PlayerTurner>(); finalTrackSlotManager = Track.finalTrack.GetComponent <TrackSlotManager>(); topSlot = finalTrackSlotManager.slots[0].GetComponent <TrackSlot>(); rightSlot = finalTrackSlotManager.slots[1].GetComponent <TrackSlot>(); bottomSlot = finalTrackSlotManager.slots[2].GetComponent <TrackSlot>(); leftSlot = finalTrackSlotManager.slots[3].GetComponent <TrackSlot>(); }
public void Should_Format_ReturnCorrectFormattedOutput_WhenSlotIsPreScheduled() { // Given var slot = new TrackSlot("Lunch", new TimeSlot(12, 0, 60), true); var trackSessionFormatter = Substitute.For <ITrackSessionFormatter>(); var sut = new TrackSlotFormatter(trackSessionFormatter); // When var result = sut.Format(slot); // Then result.Should().Be("12:00PM Lunch " + Environment.NewLine); }
public static TimeSlot GetNextSlot(this TrackSlot trackSlot, int duration) { if (trackSlot == null) { throw new ArgumentNullException(nameof(trackSlot)); } if (duration <= 0) { throw new ArgumentOutOfRangeException(nameof(duration)); } var datetime = DateTime.Today .AddHours(trackSlot.TimeSlot.Hour) .AddMinutes(trackSlot.TimeSlot.Minute); return(new TimeSlot(datetime.Hour, datetime.Minute, duration)); }
public void Should_AllocateSession_AllocateTheSessionBasedOnTheSlotAndCalculateRemainigCorrectly() { // Given var trackSlot = new TrackSlot("Title", new TimeSlot(9, 0, 120)); var calculatedTrackSlot = new CalculatedTrackSlot(trackSlot); var sessionDefinition = new SessionDefinition("Session 1", 60); // When calculatedTrackSlot.AllocateSession(sessionDefinition); // Then trackSlot.TrackSessions .Should().HaveCount(1); trackSlot.TrackSessions[0].Title.Should().Be(sessionDefinition.Title); trackSlot.TrackSessions[0].Time.DurationInMinute.Should().Be(sessionDefinition.Duration); trackSlot.TrackSessions[0].Time.Hour.Should().Be(trackSlot.TimeSlot.Hour); trackSlot.TrackSessions[0].Time.Minute.Should().Be(trackSlot.TimeSlot.Minute); }
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 void Should_Format_ReturnCorrectFormattedOutput() { // Given var slot = new TrackSlot("Lunch", new TimeSlot(12, 0, 60), true); var track = new Track(1, new List <TrackSlot> { slot }); var trackSlotFormatter = Substitute.For <ITrackSlotFormatter>(); trackSlotFormatter.Format(Arg.Any <TrackSlot>()).Returns("12:00PM Lunch"); var sut = new TrackFormatter(trackSlotFormatter); // When var result = sut.Format(track); // Then result.Should().Be("Track #1" + Environment.NewLine + Environment.NewLine + "12:00PM Lunch"); }
private string FormatPreScheduled(TrackSlot trackSlot) { return($"{trackSlot.TimeSlot.ToTimeString()} {trackSlot.Title} {Environment.NewLine}"); }
public CalculatedTrackSlot(TrackSlot trackSlot) { _trackSlot = trackSlot ?? throw new ArgumentNullException(nameof(trackSlot)); UnallocatedTime = trackSlot.TimeSlot.DurationInMinute; }