Esempio n. 1
0
        public void CheckDistanceBtwMoscowAndSamara()
        {
            using (var dataWarehouseContext = new EFDataWarehouseContext())
            {
                // Arrange.
                const int realDistance   = 854;
                var       mileageService = new MileageCalculatingService();

                // Act.
                var calcDistance = mileageService.GetMileage("Москва", "Самара");

                // Assert.
                Assert.AreEqual(realDistance, calcDistance);
            }
        }
Esempio n. 2
0
        public ActionResult Create(CreateRequestModel model)
        {
            var valid     = true;
            var addresses = new List <string>();

            if (model.Errors == null)
            {
                model.Errors = new List <string>();
            }

            if (model.Request.DepartureAddress == "" && model.Request.DeparturePointId == 0)
            {
                model.Errors.Add("Укажите адрес отправления");
                valid = false;
            }

            if (model.Request.DestinationAddress == "" && model.Request.DestinationPointId == 0)
            {
                model.Errors.Add("Укажите адрес назначения");
                valid = false;
            }

            //TODO сделать валидацию даты времени отправления

            if (!valid)
            {
                var poiList = _locationService.GetPOIList();
                model.POIList          = new SelectList(poiList, "Id", "Name");
                model.POIListAddresses = new SelectList(poiList, "Id", "Address");

                return(View(model));
            }

            var    mileageService = new MileageCalculatingService();
            string calcDestinationAddress;
            string calcDepartureAddress;

            if (model.Request.DestinationPointId == 0)
            {
                calcDestinationAddress = model.Request.DestinationAddress;
            }
            else
            {
                calcDestinationAddress = _locationService.GetPOIById(model.Request.DestinationPointId).Address;
            }

            if (model.Request.DeparturePointId == 0)
            {
                calcDepartureAddress = model.Request.DepartureAddress;
            }
            else
            {
                calcDepartureAddress = _locationService.GetPOIById(model.Request.DeparturePointId).Address;
            }

            model.Request.Mileage = mileageService.GetMileage(calcDepartureAddress, calcDestinationAddress);


            model.Request.AuthorLogin = User.Identity.Name;
            var error = "";

            if (!_requestService.AddRequest(model.Request, out error))
            {
                model.Errors.Add(error);
                var poiList = _locationService.GetPOIList();
                model.POIList          = new SelectList(poiList, "Id", "Name");
                model.POIListAddresses = new SelectList(poiList, "Id", "Address");
                return(View(model));
            }

            var userId = _userService.GetUserByMail(HttpContext.User.Identity.Name).Id;

            var newLog = new DtoLog()
            {
                CreatorFirstName = _employeeService.GetUserLastName(userId).Firstname,
                CreatorLastName  = _employeeService.GetUserLastName(userId).Lastname,
                BrowserName      = HttpContext.Request.Browser.Browser,
                IpAddress        = HttpContext.Request.UserHostAddress,
                RequestMile      = model.Request.Mileage,
                RequestPrice     = 10
            };

            _logService.AddLog(newLog, out error);

            return(RedirectToAction("Index", "Request"));
        }