Example #1
0
 public RideUser AddRideUser(RideUser p_rideUser)
 {
     try
     {
         m_db.RideUsers.Add(p_rideUser);
         m_db.SaveChanges();
     }
     catch (Exception)
     {
         return(null);
     }
     return(p_rideUser);
 }
Example #2
0
 public RideUser UpdateRideUsers(int p_rideId, RideUser p_rideUser)
 {
     try
     {
         RideUser rideUser = m_db.RideUsers
                             .First(rideUserRecord => rideUserRecord.RideId == p_rideId);
         rideUser.UserId = p_rideUser.UserId;
         m_db.SaveChanges();
         return(rideUser);
     }
     catch (Exception)
     {
         return(null);
     }
 }
Example #3
0
        public int AddNewRide(int driverId, int groupId, List <int> acceptedUsersIds)
        {
            //Create ride
            Ride newRide = new Ride();

            newRide.RideId   = m_rideIDIndex;
            newRide.GroupId  = groupId;
            newRide.DriverId = driverId;
            newRide.Date     = m_dal.GetGroup(groupId).EventTime.Value.Date;
            // newRide.Time = m_dal.GetGroup(groupId).EventTime.Value.TimeOfDay;
            newRide.Distance = 0;



            ++m_rideIDIndex;

            //Add RideUsers
            foreach (int userId in acceptedUsersIds)
            {
                RideUser rideUser = new RideUser();
                rideUser.RideId = newRide.RideId;
                rideUser.UserId = userId;
                m_dal.AddRideUser(rideUser);

                //update match status
                Match tempMatch = new Match();
                tempMatch.GroupId     = groupId;
                tempMatch.DriverId    = driverId;
                tempMatch.UserId      = userId;
                tempMatch.MatchStatus = (int)eMatchStatus.eUnknown;
                m_dal.UpdateMatchStatus(tempMatch, (int)eMatchStatus.eApproved);
            }

            //compute Ride distance
            newRide.Distance = ComputeRideDistance(driverId, groupId, acceptedUsersIds);

            m_dal.AddRide(newRide);

            //Update driver Mileage
            User driverUser = m_dal.GetUser(driverId);

            driverUser.Mileage += newRide.Distance;
            m_dal.UpdateUser(driverId, driverUser);

            SendPassengersNotification(newRide, acceptedUsersIds);

            return(m_rideIDIndex);
        }
Example #4
0
        public int UpdateRide(int driverId, int groupId, List <int> acceptedUsersIds)
        {
            Ride currRide = m_dal.GetRide(driverId, groupId);

            if (currRide != null)
            {
                m_dal.DeleteRideUsers(currRide.RideId);

                foreach (int userId in acceptedUsersIds)
                {
                    RideUser rideUser = new RideUser();
                    rideUser.RideId = currRide.RideId;
                    rideUser.UserId = userId;
                    m_dal.AddRideUser(rideUser);

                    //update match status
                    Match tempMatch = new Match();
                    tempMatch.GroupId     = groupId;
                    tempMatch.DriverId    = driverId;
                    tempMatch.UserId      = userId;
                    tempMatch.MatchStatus = (int)eMatchStatus.eUnknown;
                    m_dal.UpdateMatchStatus(tempMatch, (int)eMatchStatus.eApproved);
                }

                currRide.Distance = ComputeRideDistance(driverId, groupId, acceptedUsersIds);
                m_dal.UpdateRide(currRide.RideId, currRide);

                User driverUser = m_dal.GetUser(driverId);
                driverUser.Mileage += currRide.Distance;
                m_dal.UpdateUser(driverId, driverUser);

                SendPassengersNotification(currRide, acceptedUsersIds);

                return(currRide.RideId);
            }
            return(-1);
        }