public bool SaveShare(CreateRideViewModel createRideViewModel)
        {
            RideShare rideShare = new RideShare();

            rideShare.AC = createRideViewModel.AC;
            rideShare.ContributionPerHead = createRideViewModel.ContributionPerHead;
            rideShare.CreatedOn           = createRideViewModel.CreatedOn;
            rideShare.DestinationCityId   = createRideViewModel.DestinationCityId;
            rideShare.Id = Guid.NewGuid().ToString();
            rideShare.TravelStartTime = createRideViewModel.TravelStartTime;
            rideShare.Vehicle         = createRideViewModel.Vehicle;
            rideShare.SeatsOffered    = createRideViewModel.SeatsOffered;
            rideShare.MemberCardId    = createRideViewModel.MemberCarId;
            db.RideShares.Add(rideShare);
            City city = new City();

            city.CityName = createRideViewModel.SourceCity;
            city.Id       = createRideViewModel.SourceCityId;
            db.Cities.Add(city);
            city.CityName = createRideViewModel.DestinationCity;
            city.Id       = createRideViewModel.DestinationCityId;
            db.Cities.Add(city);
            db.SaveChanges();
            return(true);
        }
Esempio n. 2
0
        public async Task <CreateRideViewModel> CreateRide(CreateRideViewModel model)
        {
            var rides = this.mapper.Map <List <Ride> > (model);

            foreach (Ride r in rides)
            {
                r.Driver = await this.repositories.Users.FindById(r.DriverId);
            }

            await this.repositories.Rides.CreateRangeAsync(rides);

            rides.Select(x => {
                var fromAddress = this.repositories.Addresses.FindByCondition(y => AreEquals(y.Latitude, x.FromAddress.Latitude, 0.0001f) && AreEquals(y.Longitude, x.FromAddress.Longitude, 0.0001f)).FirstOrDefault();
                var toAddress   = this.repositories.Addresses.FindByCondition(y => AreEquals(y.Latitude, x.ToAddress.Latitude, 0.0001f) && AreEquals(y.Longitude, x.ToAddress.Longitude, 0.0001f)).FirstOrDefault();
                if (fromAddress != null)
                {
                    this.repositories.Addresses.SetEntityState(x.FromAddress, EntityState.Unchanged);
                }
                if (toAddress != null)
                {
                    this.repositories.Addresses.SetEntityState(x.ToAddress, EntityState.Unchanged);
                }

                return(0);
            }).ToList();

            await this.repositories.Save();

            return(model);
        }
Esempio n. 3
0
        public IActionResult Create(CreateRideViewModel model)
        {
            if (ModelState.IsValid)
            {
                Guid userId;
                var  userIdClaim = this.User.Claims.FirstOrDefault(f => f.Type == ClaimTypes.NameIdentifier);

                Ride ride = new Ride();
                ride.Id                    = Guid.NewGuid();
                ride.DriverId              = Guid.TryParse(userIdClaim.Value, out userId) ? userId : Guid.Empty;
                ride.FromCity              = model.FromCity;
                ride.ToCity                = model.ToCity;
                ride.TravelDate            = model.TravelDate;
                ride.FreePlaces            = model.FreeSeats.Value;
                ride.Price                 = model.Price.Value;
                ride.AdditionalInformation = model.AdditionalInformation;

                this.ridesManager.CreateItem(ride);
                this.ridesManager.SaveChanges();

                return(RedirectToAction("Manage", "Rides"));
            }
            return(View(model));
        }
        public void SetUp()
        {
            _fakeBackendApiService = Substitute.For <IBackendApiService>();
            _fakeNavigationService = Substitute.For <INavigationService>();
            _fakePageDialogService = Substitute.For <IPageDialogService>();
            _uut = new CreateRideViewModel(_fakeNavigationService, _fakePageDialogService, _fakeBackendApiService);


            _priceResponseOk = new PriceResponse(new HttpResponseMessage()
            {
                StatusCode = HttpStatusCode.OK,
                Content    = new StringContent(JsonConvert.SerializeObject(new
                {
                    price = 100.00,
                }), Encoding.UTF8, "application/json"),
            });

            _priceResponseBadRequest = new PriceResponse(new HttpResponseMessage()
            {
                StatusCode = HttpStatusCode.BadRequest,
                Content    = new StringContent(JsonConvert.SerializeObject(new
                {
                    errors = new Dictionary <string, IList <string> >()
                    {
                        { "error", new List <string> {
                              "The address is not valid"
                          } }
                    },
                }), Encoding.UTF8, "application/json"),
            });

            _rideResponseOk = new CreateRideResponse(new HttpResponseMessage()
            {
                StatusCode = HttpStatusCode.OK,
                Content    = new StringContent(JsonConvert.SerializeObject(new
                {
                    id = 1,
                    startDestination     = new { cityName = "Test", postalCode = 1234, streetName = "Tester", streetNumber = 1 },
                    endDestination       = new { cityName = "Tester", postalCode = 4321, streetName = "Test", streetNumber = 2 },
                    departureTime        = DateTime.Now.Add(new TimeSpan(0, 0, 30)),
                    confirmationDeadline = DateTime.Now.Subtract(new TimeSpan(0, 2, 0)),
                    passengerCount       = 1,
                    createdOn            = DateTime.Now,
                    price  = 100,
                    status = 0,
                }), Encoding.UTF8, "application/json"),
            });

            _rideResponseBadRequest = new CreateRideResponse(new HttpResponseMessage()
            {
                StatusCode = HttpStatusCode.BadRequest,
                Content    = new StringContent(JsonConvert.SerializeObject(new
                {
                    errors = new Dictionary <string, IList <string> >()
                    {
                        { "error", new List <string> {
                              "Not enough money"
                          } }
                    },
                }), Encoding.UTF8, "application/json"),
            });
        }
Esempio n. 5
0
 public async Task <CreateRideViewModel> CreateRide(CreateRideViewModel model)
 {
     return(await this.rideService.CreateRide(model));
 }
        public List <Ride> Convert(CreateRideViewModel VM, List <Ride> dest, ResolutionContext context)
        {
            var toReturn = new List <Ride> ();

            if (VM.Trip.LayoverAddress == null)
            {
                var Ride = new Ride();

                Ride.DriverId  = VM.userId;
                Ride.FreeSeats = VM.Trip.FreeSeats1;
                Ride.FromAddress.CountryCode  = VM.Trip.FromAddress.Address.CountryCode;
                Ride.FromAddress.ExactAddress = VM.Trip.FromAddress.Address.FreeformAddress;
                Ride.FromAddress.Governorate  = VM.Trip.FromAddress.Address.CountrySubdivision;
                Ride.FromAddress.Municipality = VM.Trip.FromAddress.Address.Municipality;
                Ride.FromAddress.StreetName   = VM.Trip.FromAddress.Address.streetName;
                Ride.FromAddress.Latitude     = VM.Trip.FromAddress.Position.Lat;
                Ride.FromAddress.Longitude    = VM.Trip.FromAddress.Position.Lon;
                Ride.FromAddress.Country      = VM.Trip.FromAddress.Address.Country;

                Ride.ToAddress.CountryCode  = VM.Trip.ToAddress.Address.CountryCode;
                Ride.ToAddress.ExactAddress = VM.Trip.ToAddress.Address.FreeformAddress;
                Ride.ToAddress.Governorate  = VM.Trip.ToAddress.Address.CountrySubdivision;
                Ride.ToAddress.Municipality = VM.Trip.ToAddress.Address.Municipality;
                Ride.ToAddress.StreetName   = VM.Trip.ToAddress.Address.streetName;
                Ride.ToAddress.Latitude     = VM.Trip.ToAddress.Position.Lat;
                Ride.ToAddress.Longitude    = VM.Trip.ToAddress.Position.Lon;
                Ride.ToAddress.Country      = VM.Trip.ToAddress.Address.Country;
                Ride.Departure = new DateTime(VM.Trip.DepartureDate.Year, VM.Trip.DepartureDate.Month, VM.Trip.DepartureDate.Day).AddHours(VM.Trip.DepartureHour).AddMinutes(VM.Trip.departureMinutes);

                toReturn.Add(Ride);
                if (VM.IsRoadTrip)
                {
                    var temp = Ride.ToAddress;
                    Ride.ToAddress   = Ride.FromAddress;
                    Ride.FromAddress = temp;
                    Ride.Departure   = new DateTime(VM.Trip.RoadTripDate.Year, VM.Trip.RoadTripDate.Month, VM.Trip.RoadTripDate.Day).AddHours(VM.Trip.RoadTripDepartureHour).AddMinutes(VM.Trip.RoadTripdepartureMinutes);
                    toReturn.Add(Ride);
                }
                return(toReturn);
            }
            else
            {
                var Ride1 = new Ride();
                Ride1.DriverId = VM.userId;

                Ride1.FreeSeats = VM.Trip.FreeSeats1;
                Ride1.FromAddress.CountryCode  = VM.Trip.FromAddress.Address.CountryCode;
                Ride1.FromAddress.ExactAddress = VM.Trip.FromAddress.Address.FreeformAddress;
                Ride1.FromAddress.Governorate  = VM.Trip.FromAddress.Address.CountrySubdivision;
                Ride1.FromAddress.Municipality = VM.Trip.FromAddress.Address.Municipality;
                Ride1.FromAddress.StreetName   = VM.Trip.FromAddress.Address.streetName;
                Ride1.FromAddress.Latitude     = VM.Trip.FromAddress.Position.Lat;
                Ride1.FromAddress.Longitude    = VM.Trip.FromAddress.Position.Lon;
                Ride1.FromAddress.Country      = VM.Trip.FromAddress.Address.Country;
                Ride1.ToAddress.CountryCode    = VM.Trip.LayoverAddress.Address.CountryCode;
                Ride1.ToAddress.ExactAddress   = VM.Trip.LayoverAddress.Address.FreeformAddress;
                Ride1.ToAddress.Governorate    = VM.Trip.LayoverAddress.Address.CountrySubdivision;
                Ride1.ToAddress.Municipality   = VM.Trip.LayoverAddress.Address.Municipality;
                Ride1.ToAddress.StreetName     = VM.Trip.LayoverAddress.Address.streetName;
                Ride1.ToAddress.Latitude       = VM.Trip.LayoverAddress.Position.Lat;
                Ride1.ToAddress.Longitude      = VM.Trip.LayoverAddress.Position.Lon;
                Ride1.ToAddress.Country        = VM.Trip.ToAddress.Address.Country;
                Ride1.Departure = new DateTime(VM.Trip.DepartureDate.Year, VM.Trip.DepartureDate.Month, VM.Trip.DepartureDate.Day).AddHours(VM.Trip.DepartureHour).AddMinutes(VM.Trip.departureMinutes);
                toReturn.Add(Ride1);
                var Ride2 = new Ride();
                Ride2.DriverId = VM.userId;

                Ride2.FreeSeats = VM.Trip.FreeSeats2;
                Ride2.FromAddress.CountryCode  = VM.Trip.LayoverAddress.Address.CountryCode;
                Ride2.FromAddress.ExactAddress = VM.Trip.LayoverAddress.Address.FreeformAddress;
                Ride2.FromAddress.Governorate  = VM.Trip.LayoverAddress.Address.CountrySubdivision;
                Ride2.FromAddress.Municipality = VM.Trip.LayoverAddress.Address.Municipality;
                Ride2.FromAddress.StreetName   = VM.Trip.LayoverAddress.Address.streetName;
                Ride2.FromAddress.Latitude     = VM.Trip.LayoverAddress.Position.Lat;
                Ride2.FromAddress.Longitude    = VM.Trip.LayoverAddress.Position.Lon;
                Ride2.FromAddress.Country      = VM.Trip.LayoverAddress.Address.Country;
                Ride2.ToAddress.CountryCode    = VM.Trip.ToAddress.Address.CountryCode;
                Ride2.ToAddress.ExactAddress   = VM.Trip.ToAddress.Address.FreeformAddress;
                Ride2.ToAddress.Governorate    = VM.Trip.ToAddress.Address.CountrySubdivision;
                Ride2.ToAddress.Municipality   = VM.Trip.ToAddress.Address.Municipality;
                Ride2.ToAddress.StreetName     = VM.Trip.ToAddress.Address.streetName;
                Ride2.ToAddress.Latitude       = VM.Trip.ToAddress.Position.Lat;
                Ride2.ToAddress.Longitude      = VM.Trip.ToAddress.Position.Lon;
                Ride2.ToAddress.Country        = VM.Trip.ToAddress.Address.Country;
                Ride2.Departure = new DateTime(VM.Trip.DepartureDate.Year, VM.Trip.DepartureDate.Month, VM.Trip.DepartureDate.Day).AddHours(VM.Trip.DepartureHour).AddMinutes(VM.Trip.departureMinutes);
                toReturn.Add(Ride2);
                if (VM.IsRoadTrip)
                {
                    var ride3 = new Ride();
                    ride3.Departure   = new DateTime(VM.Trip.RoadTripDate.Year, VM.Trip.RoadTripDate.Month, VM.Trip.RoadTripDate.Day).AddHours(VM.Trip.RoadTripDepartureHour).AddMinutes(VM.Trip.RoadTripdepartureMinutes);
                    ride3.FreeSeats   = Ride2.FreeSeats;
                    ride3.FromAddress = Ride2.ToAddress;
                    ride3.ToAddress   = Ride2.FromAddress;
                    ride3.DriverId    = VM.userId;
                    var ride4 = new Ride();
                    ride4.Departure   = new DateTime(VM.Trip.RoadTripDate.Year, VM.Trip.RoadTripDate.Month, VM.Trip.RoadTripDate.Day).AddHours(VM.Trip.RoadTripDepartureHour).AddMinutes(VM.Trip.RoadTripdepartureMinutes);
                    ride4.FreeSeats   = Ride1.FreeSeats;
                    ride4.FromAddress = Ride1.ToAddress;
                    ride4.ToAddress   = Ride1.FromAddress;
                    ride4.DriverId    = VM.userId;
                    toReturn.Add(ride3);
                    toReturn.Add(ride4);
                }
                return(toReturn);
            }
        }
Esempio n. 7
0
 public ActionResult Share(CreateRideViewModel createRideViewModel)
 {
     rideShareRepository.SaveShare(createRideViewModel);
     return(View());
 }
Esempio n. 8
0
        // GET: ShareRide
        public ActionResult Index()
        {
            CreateRideViewModel createRideViewModel = new CreateRideViewModel();

            return(View(createRideViewModel));
        }