Esempio n. 1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="VehicleSubtypeSpeed"/> class.
        /// </summary>
        /// <param name="vehicleSubtype">The vehicle subtype.</param>
        /// <param name="speedInKilometersPerHour">The speed.</param>
        public VehicleSubtypeSpeed(VehicleSubtype vehicleSubtype, SpeedInKilometersPerHour speedInKilometersPerHour)
            : base((int)vehicleSubtype)
        {
            Ensure.NotNull(speedInKilometersPerHour, "The speed is required.", nameof(speedInKilometersPerHour));

            SpeedInKilometersPerHour = speedInKilometersPerHour;
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="VehicleSubtypeMalfunctionProbability"/> class.
        /// </summary>
        /// <param name="vehicleSubtype">The vehicle subtype.</param>
        /// <param name="lightMalfunctionProbability">The light malfunction probability.</param>
        /// <param name="heavyMalfunctionProbability">The heavy malfunction probability.</param>
        public VehicleSubtypeMalfunctionProbability(
            VehicleSubtype vehicleSubtype,
            MalfunctionProbability lightMalfunctionProbability,
            MalfunctionProbability heavyMalfunctionProbability)
            : base((int)vehicleSubtype)
        {
            Ensure.NotNull(
                lightMalfunctionProbability,
                "The light malfunction probability is required.",
                nameof(lightMalfunctionProbability));
            Ensure.NotNull(
                heavyMalfunctionProbability,
                "The heavy malfunction probability is required.",
                nameof(heavyMalfunctionProbability));

            LightMalfunctionProbability = lightMalfunctionProbability;
            HeavyMalfunctionProbability = heavyMalfunctionProbability;
        }
Esempio n. 3
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Vehicle"/> class.
        /// </summary>
        /// <param name="race">The race.</param>
        /// <param name="teamName">The team name.</param>
        /// <param name="modelName">The model name.</param>
        /// <param name="manufacturingDate">The manufacturing date.</param>
        /// <param name="vehicleSubtype">The vehicle subtype.</param>
        public Vehicle(
            Race race,
            TeamName teamName,
            ModelName modelName,
            DateTime manufacturingDate,
            VehicleSubtype vehicleSubtype)
        {
            Ensure.NotNull(race, "The race is required.", nameof(race));
            Ensure.NotNull(teamName, "The team name is required.", nameof(teamName));
            Ensure.NotNull(modelName, "The model name is required.", nameof(modelName));
            Ensure.NotEmpty(manufacturingDate, "The manufacturing date is required", nameof(manufacturingDate));

            RaceId            = race.Id;
            TeamName          = teamName;
            ModelName         = modelName;
            ManufacturingDate = manufacturingDate.Date;
            VehicleType       = DetermineVehicleType(vehicleSubtype);
            VehicleSubtype    = vehicleSubtype;
            Status            = VehicleStatus.Pending;
            Distance          = LengthInKilometers.Zero;
        }