public RideUser AddRideUser(RideUser p_rideUser) { try { m_db.RideUsers.Add(p_rideUser); m_db.SaveChanges(); } catch (Exception) { return(null); } return(p_rideUser); }
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); } }
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); }
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); }