示例#1
0
        private async Task <bool> RideCostIsUsedForOtherRideAsync(RideCost rideCost, Ride exceptRide)
        {
            var rideCostIsDefaultForUser = await _uow.Users.FindBy(u => u.DefaultRideCostId == rideCost.Id).AnyAsync();

            var rideCostIsUsedForOtherRide = await _uow.Rides.FindBy(r => r.RideCostId == rideCost.Id && r.Id != exceptRide.Id).AnyAsync();

            return(!rideCostIsDefaultForUser && !rideCostIsUsedForOtherRide);
        }
示例#2
0
        public async Task <RideCost> SetRideCostForRideAsync(Ride ride, RideCost rideCost)
        {
            _uow.RideCosts.Upsert(rideCost);
            ride.RideCost = rideCost;
            _uow.Rides.Edit(ride);

            await _uow.SaveChangesAsync();

            return(rideCost);
        }
示例#3
0
        // RIDECOSTS ******************
        public async Task <RideCost> SetDefaultRideCostForUserAsync(User user, RideCost rideCost)
        {
            _uow.RideCosts.Upsert(rideCost);
            user.DefaultRideCost = rideCost;
            _uow.Users.Edit(user);

            await _uow.SaveChangesAsync();

            return(rideCost);
        }
示例#4
0
        private void SetUpTestData()
        {
            DateTime startDate = new DateTime(2000, 1, 1);
            DateTime endDate   = new DateTime(2029, 1, 1);

            _testOwner = new User()
            {
                Name = "Me", Email = "*****@*****.**", IsDriver = true, IsRider = false, IdentityUserId = Guid.NewGuid()
            };
            _testRider = new User()
            {
                Name = "Somebody", Email = "*****@*****.**", IsDriver = false, IsRider = true, IdentityUserId = Guid.NewGuid()
            };

            _testLocation1 = new Location()
            {
                Address = new Address()
                {
                    Line1      = "10236 180th Ave",
                    City       = "LeRoy",
                    State      = "MI",
                    PostalCode = "49655",
                    Country    = "US"
                },
                LatLng = new LatLng()
                {
                    Lat = 43.96299F,
                    Lng = -85.44361F
                },
                Name  = "Home",
                Owner = _testOwner
            };
            _testLocation2 = new Location()
            {
                Address = new Address()
                {
                    Line1      = "415 N Mitchell",
                    City       = "Cadillac",
                    State      = "MI",
                    PostalCode = "49601",
                    Country    = "US"
                },
                LatLng = new LatLng()
                {
                    Lat = 44.253227F,
                    Lng = -85.40183F
                },
                Name  = "Work",
                Owner = _testOwner
            };
            _testLocation3 = new Location()
            {
                Address = new Address()
                {
                    Line1      = "21400 Perry Ave",
                    City       = "Big Rapids",
                    State      = "MI",
                    PostalCode = "496307",
                    Country    = "US"
                },
                LatLng = new LatLng()
                {
                    Lat = 43.687443F,
                    Lng = -85.51758F
                },
                Name = "WalMart Big Rapids"
            };
            _testLocation4 = new Location()
            {
                Address = new Address()
                {
                    Line1      = "130 Fulton St W",
                    City       = "Grand Rapids",
                    State      = "MI",
                    PostalCode = "49503",
                    Country    = "US"
                },
                LatLng = new LatLng()
                {
                    Lat = 42.96322F,
                    Lng = -85.67093F
                },
                Name = "Van Andel Arena"
            };
            _testLocation5 = new Location()
            {
                Address = new Address()
                {
                    Line1      = "8917 E 34 Rd",
                    City       = "Cadillac",
                    State      = "MI",
                    PostalCode = "49601",
                    Country    = "US"
                },
                LatLng = new LatLng()
                {
                    Lat = 44.281467F,
                    Lng = -85.397835F
                },
                Name = "WalMart Cadillac"
            };

            _testRide1 = new Ride()
            {
                Creator         = _testOwner,
                Driver          = _testOwner,
                StartDate       = startDate,
                EndDate         = endDate,
                AvailableSeats  = 3,
                IsSeekingRiders = true,
                IsSeekingDriver = false,
                Repeating       = (byte)WeekDay.WeekDays
            };
            _testRide2 = new Ride()
            {
                Creator         = _testOwner,
                Driver          = _testOwner,
                StartDate       = startDate,
                EndDate         = endDate,
                AvailableSeats  = 3,
                IsSeekingRiders = true,
                IsSeekingDriver = false,
                Repeating       = (byte)WeekDay.WeekDays
            };
            _testRide3 = new Ride()
            {
                Creator         = _testRider,
                IsSeekingRiders = false,
                IsSeekingDriver = true,
                Repeating       = (byte)WeekDay.WeekDays
            };

            _testRideLeg1 = new RideLeg()
            {
                Ride        = _testRide1,
                Origin      = _testLocation1,
                Destination = _testLocation2,
                StartTime   = new TimeSpan(8, 0, 0),
                TravelTime  = new TimeSpan(0, 25, 0),
                Distance    = 20F
            };
            _testRideLeg2 = new RideLeg()
            {
                Ride        = _testRide1,
                Origin      = _testLocation2,
                Destination = _testLocation1,
                StartTime   = new TimeSpan(17, 0, 0),
                TravelTime  = new TimeSpan(0, 25, 0),
                Distance    = 20F
            };
            _testRideLeg3 = new RideLeg()
            {
                Ride        = _testRide2,
                Origin      = _testLocation1,
                Destination = _testLocation3,
                StartTime   = new TimeSpan(8, 0, 0),
                TravelTime  = new TimeSpan(0, 25, 0)
            };
            _testRideLeg4 = new RideLeg()
            {
                Ride        = _testRide2,
                Origin      = _testLocation3,
                Destination = _testLocation4,
                StartTime   = new TimeSpan(12, 0, 0),
                TravelTime  = new TimeSpan(0, 25, 0)
            };
            _testRideLeg5 = new RideLeg()
            {
                Ride        = _testRide2,
                Origin      = _testLocation4,
                Destination = _testLocation1,
                StartTime   = new TimeSpan(17, 0, 0),
                TravelTime  = new TimeSpan(0, 25, 0)
            };
            _testRideLeg6 = new RideLeg()
            {
                Ride        = _testRide3,
                Origin      = _testLocation1,
                Destination = _testLocation5,
                StartTime   = new TimeSpan(8, 0, 0),
                TravelTime  = new TimeSpan(0, 25, 0),
                Distance    = 22F
            };
            _testRideLeg7 = new RideLeg()
            {
                Ride        = _testRide3,
                Origin      = _testLocation5,
                Destination = _testLocation1,
                StartTime   = new TimeSpan(17, 0, 0),
                TravelTime  = new TimeSpan(0, 25, 0),
                Distance    = 22F
            };

            _testRideCost = new RideCost()
            {
                BaseCost                = 2.00M,
                CostPerMile             = 0.20M,
                PickupCostPerHour       = 20M,
                PickupCostPerMile       = .25M,
                PickupDistanceMileLimit = 20,
                PickupTimeLimitMinutes  = 30
            };
        }