Beispiel #1
0
        public IActionResult Create([Bind] CarrierInputModel carrier)
        {
            if (!ModelState.IsValid)
            {
                TempData["msg"] = "Model is not valid!";
                return(Create());
            }
            City    newCity    = _cityService.GetByName(carrier.CityName);
            Address newAddress = new Address
            {
                StreetName   = carrier.StreetName,
                StreetNumber = carrier.StreetNumber,
                City         = newCity
            };
            Carrier newCarrier = new Carrier
            {
                Name    = carrier.Name,
                Address = newAddress
            };

            if (_carrierService.AddNewCarrier(newCarrier))
            {
                TempData["msg"] = "Carrier is created!";
            }
            else
            {
                TempData["msg"] = "Carrier is not created!";
            }

            return(RedirectToPage("~/Home"));
        }
        public IActionResult Create([Bind] DepartureInputModel departureInput)
        {
            if (!ModelState.IsValid)
            {
                TempData["msg"] = "Model is not valid!";
                return(Create());
            }

            Departure newDeparture = new Departure
            {
                CityFrom        = _cityService.GetByName(departureInput.CityFrom),
                CityTo          = _cityService.GetByName(departureInput.CityTo),
                Carrier         = _carrierService.GetByName(departureInput.Carrier),
                PaymentCategory = _paymentCategoryService.GetByName(departureInput.PaymentCategory),
                Vehicle         = _vehicleService.GetByRegistration(departureInput.VehicleRegistration)
            };

            if (_cityService.IsSameCity(newDeparture.CityFrom, newDeparture.CityTo))
            {
                TempData["msg"] = "Departure must be between two different cities!";
                return(Create());
            }

            newDeparture.Distance = _distanceService.CalculateDistance(newDeparture.CityFrom, newDeparture.CityTo);

            //TODO: create service for calculate price of card
            newDeparture.PriceOfCard = _priceService.CalculatePrice(newDeparture.Distance.DistanceBetween, newDeparture.PaymentCategory.Price);

            //TODO: get number of seats by vehicle
            newDeparture.NumberOfSeats = newDeparture.Vehicle.Capacity;

            if (_deparatureService.Add(newDeparture))
            {
                TempData["msg"] = "Departure is created!";
            }
            else
            {
                TempData["msg"] = "Departure is not created!";
            }

            return(RedirectToPage("/Index"));
        }