public CameraInfo(ICamera aCamera) : this(aCamera.Id, aCamera.ProductName, aCamera.OwnerName)
        {
            _isoSpeeds      = IsoSpeed.GetListFrom(aCamera);
            _apertures      = Aperture.GetListFrom(aCamera);
            _exposals       = Exposal.GetListFrom(aCamera);
            _imageQualities = ImageQuality.GetListFrom(aCamera);

            _currentIsoSpeed     = IsoSpeed.With(aCamera.IsoSpeed);
            _currentAperture     = Aperture.With(aCamera.ApertureValue);
            _currentExposal      = Exposal.With(aCamera.ExposalValue);
            _currentImageQuality = ImageQuality.With(aCamera.ImageQualityValue);
        }
        public IShootParameters[] CreateApertureBracketing(IShootParameters anInitialiParameters, Aperture[] anApertures)
        {
            IShootParameters[]  result    = new IShootParameters[anApertures.Length];
            EnumValueCollection exposals  = Exposal.GetListFrom(_camera);
            EnumValueCollection apertures = Aperture.GetListFrom(_camera);

            for (int i = 0; i < result.Length; ++i)
            {
                ShootParameters newParameter = anInitialiParameters.Copy();
                newParameter.Aperture = anApertures[i];
                newParameter.Exposal  = (Exposal)exposals.GetWithRelatedIndex(newParameter.Exposal, apertures.GetIndexDifferenceBeetween(anInitialiParameters.Aperture, anApertures[i]));
                result[i]             = newParameter;
            }

            return(result);
        }