public void SetDiveDetails(string breathingGas, string pressureATA, Chamber chamber)
 {
     PrimaryService.Type.ShouldBe(PrimaryServiceType.Dive, nameof(PrimaryService));
     if (string.IsNullOrWhiteSpace(breathingGas))
     {
         throw new ArgumentException("breathingGas should have value.", nameof(breathingGas));
     }
     if (string.IsNullOrWhiteSpace(pressureATA))
     {
         throw new ArgumentException("pressureATA should have value.", nameof(pressureATA));
     }
     BreathingGas = breathingGas;
     PressureATA  = pressureATA;
     Chamber      = chamber;
 }
        public static TimeSlot NewDive(
            PrimaryService primaryService,
            Chamber chamber,
            string breathingGas,
            string pressureATA,
            TimeSpan duration,
            DateTime startDate,
            DateTime?endDate = null)
        {
            var timeSlot = new TimeSlot(primaryService);

            timeSlot.SetDateTimes(duration, startDate, endDate);
            timeSlot.SetDiveDetails(breathingGas, pressureATA, chamber);

            return(timeSlot);
        }