Ejemplo n.º 1
0
        /// <summary>
        /// Метод возвращает итоговую стоимость полиса, рассчитанную исходя из входных данных.
        /// </summary>
        /// <param name="carCost">Стоимость автомобиля.</param>
        /// <param name="manufacturedYear">Год выпуска автомобиля.</param>
        /// <param name="driverLicenseDate">Дата выдачи прав вождения.</param>
        /// <param name="birthDate">Дата рождения водителя.</param>
        /// <param name="enginePower">Мощность двигателя автомобиля.</param>
        /// <returns>Итоговая стоимость полиса.</returns>
        public int PolicyCalculate(string email, int carCost, int manufacturedYear, DateTime driverLicenseDate, DateTime birthDate, int enginePower)
        {
            var ratioManager   = new RatioManager(_ratioRepository);
            var accountManager = new AccountManager(_authRepository);
            var user           = _authRepository.GetUser(email);

            var policyCost = ratioManager.CostCalculate(carCost, manufacturedYear, user.DriverLicenseDate, user.BirthDate, enginePower);

            return(policyCost);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Метод возвращает результат регистрации полиса в системе.
        /// </summary>
        /// <param name="carCost">Стоимость автомобиля.</param>
        /// <param name="carNumber">Номер автомобиля.</param>
        /// <param name="carModel">Модель автомобиля.</param>
        /// <param name="manufacturedYear">Год выпуска автомобиля.</param>
        /// <param name="cost">Стоимость автомобиля.</param>
        /// <param name="enginePower">Мощность двигателя автомобиля.</param>
        /// <returns>Номер полиса, если полис успешно зарегистрирован, иначе - null.</returns>
        public string PolicyRegistration(string email, int carCost, string carNumber, string carModel, int manufacturedYear, int enginePower)
        {
            var accountManager = new AccountManager(_authRepository);
            var carManager     = new CarManager(_carRepository);
            var ratioManager   = new RatioManager(_ratioRepository);

            var car        = new Car(carNumber, carModel, manufacturedYear, carCost, enginePower);
            var user       = _authRepository.GetUser(email);
            var ratio      = ratioManager.GetRatio(car, user);
            var policyCost = ratioManager.CostCalculate(carCost, manufacturedYear, user.DriverLicenseDate, user.BirthDate, enginePower);

            var policy = new Policy(policyCost, email, DateTime.Today, car, ratio);

            return(_policyRepository.PolicyRegistration(policy));
        }