示例#1
0
        public IHttpActionResult PolicyRegister(PolicyRegistrationBindingModel model)
        {
            //Логгирование: запрос регистрации полиса.
            _logger.Trace($"Запрос регистрации полиса.");

            if (!ModelState.IsValid)
            {
                //Логгирование: ошибка модели данных.
                _logger.Error($"Модель данных регистрации полиса не валидна.");

                return(BadRequest(ModelState));
            }

            var email = string.Empty;

            try
            {
                email = Request
                        .Headers
                        .FirstOrDefault(c => c.Key.Equals("email"))
                        .Value
                        .FirstOrDefault();
            }
            catch
            {
                //Логгирование: ошибка получения email.
                _logger.Error($"Ошибка, заголовок не содержит email.");

                return(NotFound());
            }

            var policyNumber = _policyService.PolicyRegistration(
                email,
                model.CarCost,
                model.CarNumber,
                model.CarModel,
                model.ManufacturedYear,
                model.EnginePower
                );

            if (string.IsNullOrEmpty(policyNumber))
            {
                //Логгирование: ошибка регистрации полиса.
                _logger.Error($"Ошибка регистрации полиса на автомобиль <{model.CarNumber}>.");

                return(NotFound());
            }
            else
            {
                //Логгирование: запрос регистрации выполнен.
                _logger.Trace($"Запрос регистрации полиса на автомобиль <{model.CarNumber}> выполнен.");

                return(Ok(policyNumber));
            }
        }
示例#2
0
        public IHttpActionResult PolicyCost(PolicyRegistrationBindingModel model)
        {
            //Логгирование: запрос рассчета полиса.
            _logger.Trace($"Запрос рассчета полиса.");

            DateTime birthDate;
            DateTime driverLicenseDate;
            var      email = string.Empty;

            try
            {
                email = Request
                        .Headers
                        .FirstOrDefault(c => c.Key.Equals("email"))
                        .Value
                        .FirstOrDefault();
            }
            catch
            {
                //Логгирование: ошибка получения email.
                _logger.Error($"Ошибка, заголовок не содержит email.");

                return(NotFound());
            }

            var user = _authService.GetUser(email);

            if (user == null)
            {
                //Логгирование: пустой пользователь.
                _logger.Error($"Ошибка пользователь <{email}> пустой.");

                return(NotFound());
            }

            if (user.BirthDate == null || user.DriverLicenseDate == null)
            {
                //Логгирование: ошибка даты.
                _logger.Error(
                    $"Ошибка дата рождения <{user.BirthDate}>, " +
                    $"или дата выдачи прав <{user.DriverLicenseDate}> " +
                    $"пользователя <{email}> некорректна.");
            }

            birthDate         = user.BirthDate;
            driverLicenseDate = user.DriverLicenseDate;

            var policyCost = _policyService.PolicyCalculate(
                email,
                model.CarCost,
                model.ManufacturedYear,
                driverLicenseDate,
                birthDate,
                model.EnginePower);

            //Логгирование: запрос регистрации выполнен.
            _logger.Trace(
                $"Запрос регистрации полиса на автомобиль <{model.CarNumber}> выполнен." +
                $" Стоимость полиса <{policyCost}> рублей.");

            return(Ok(policyCost));
        }