public void Create(TripServiceModel tripModel)
        {
            var trip = new Trip()
            {
                StartPoint    = tripModel.StartPoint,
                EndPoint      = tripModel.EndPoint,
                Description   = tripModel.Description,
                Seats         = tripModel.Seats,
                ImagePath     = tripModel.ImagePath,
                DepartureTime = tripModel.DepartureTime
            };

            context.Trips.Add(trip);
            context.SaveChanges();
        }
        public TripServiceModel GetById(string tripId)
        {
            var tripFromDb = context.Trips.SingleOrDefault(t => t.Id == tripId);

            if (tripFromDb == null)
            {
                return(null);
            }

            var trip = new TripServiceModel()
            {
                Id            = tripFromDb.Id,
                StartPoint    = tripFromDb.StartPoint,
                EndPoint      = tripFromDb.EndPoint,
                Description   = tripFromDb.Description,
                DepartureTime = tripFromDb.DepartureTime,
                ImagePath     = tripFromDb.ImagePath,
                Seats         = tripFromDb.Seats
            };

            return(trip);
        }
        public HttpResponse Add(AddBindingModel input)
        {
            if (!IsUserLoggedIn())
            {
                return(Redirect("/Home/Index"));
            }

            if (string.IsNullOrEmpty(input.StartPoint) || string.IsNullOrWhiteSpace(input.StartPoint))
            {
                return(Redirect("/Trips/Add"));
            }

            if (string.IsNullOrEmpty(input.EndPoint) || string.IsNullOrWhiteSpace(input.EndPoint))
            {
                return(Redirect("/Trips/Add"));
            }

            if (string.IsNullOrEmpty(input.DepartureTime) || string.IsNullOrWhiteSpace(input.DepartureTime))
            {
                return(Redirect("/Trips/Add"));
            }

            if (string.IsNullOrEmpty(input.Description) || string.IsNullOrWhiteSpace(input.Description) || input.Description.Length > 80)
            {
                return(Redirect("/Trips/Add"));
            }

            if (input.Seats < 2 || input.Seats > 6)
            {
                return(Redirect("/Trips/Add"));
            }

            var dateTimeParsed = new DateTime();

            if (!DateTime.TryParse(input.DepartureTime, out dateTimeParsed))
            {
                var dateArgs = input.DepartureTime.Split('.').ToList();
                var day      = int.Parse(dateArgs[0]);
                var month    = int.Parse(dateArgs[1]);

                var timeArgs = dateArgs[2].Split(' ').ToList();
                var year     = int.Parse(timeArgs[0]);

                var hourArgs = timeArgs[1].Split(':').ToList();
                var hour     = int.Parse(hourArgs[0]);
                var minutes  = int.Parse(hourArgs[1]);

                var date = new DateTime(year, month, day, hour, minutes, 0);

                var trip = new TripServiceModel
                {
                    StartPoint    = input.StartPoint,
                    EndPoint      = input.EndPoint,
                    Seats         = input.Seats,
                    Description   = input.Description,
                    ImagePath     = input.ImagePath,
                    DepartureTime = date
                };

                tripService.Create(trip);
            }
            else
            {
                var trip = new TripServiceModel
                {
                    StartPoint    = input.StartPoint,
                    EndPoint      = input.EndPoint,
                    Seats         = input.Seats,
                    Description   = input.Description,
                    ImagePath     = input.ImagePath,
                    DepartureTime = dateTimeParsed
                };

                tripService.Create(trip);
            }

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