Beispiel #1
0
        public ICollection <string> ValidateTrip(AddTripForm model)
        {
            var errors = new List <string>();

            if (string.IsNullOrEmpty(model.StartPoint) || model.StartPoint.Contains(" "))
            {
                errors.Add("Start point cannot be empty");
            }

            if (string.IsNullOrEmpty(model.EndPoint) || model.EndPoint.Contains(" "))
            {
                errors.Add("End point cannot be empty");
            }

            if (model.Seats < SeatsMinCount || model.Seats > SeatsMaxCount)
            {
                errors.Add($"The provided seats are not valid. They must be between {UserMinPassword} and {DefaultMaxLength}.");
            }

            if (DateTime.TryParse(model.DepartureTime, out var date) == false)
            {
                errors.Add($"Date of trim is not a valid");
            }

            //if (IsImageUrl(model.ImagePath) == false)
            //{
            //    errors.Add($"The provided image URL iS not valid.");

            //}
            return(errors);
        }
        public HttpResponse Add(AddTripForm model)
        {
            var errors = this.validator.ValidateTrip(model);

            if (errors.Any())
            {
                return(Redirect("/Trips/Add"));
            }

            var departure = DateTime.ParseExact(model.DepartureTime, "dd.MM.yyyy HH:mm", System.Globalization.CultureInfo.InvariantCulture);
            var trip      = new Trip
            {
                StartPoint    = model.StartPoint,
                EndPoint      = model.EndPoint,
                DepartureTime = departure,
                ImagePath     = model.ImagePath,
                Seats         = model.Seats,
                Description   = model.Description,
            };

            ;
            var user = this.data.Users.First(x => x.Id == this.User.Id);

            var userTrip = new UserTrip {
                Trip = trip, User = user
            };

            trip.UserTrips.Add(userTrip);

            this.data.Trips.Add(trip);

            this.data.SaveChanges();

            return(Redirect("/Trips/All"));
        }