/// <summary> /// Adds a new booking record to storage. /// </summary> /// <param name="newBooking">The Save_Bookings object to be added</param> /// <returns>The newly added custom event</returns> public Save_Bookings AddBooking(Save_Bookings newBooking) { var ride = _unitOfWork.RideRepository.FirstOrDefault(x => x.rideID == newBooking.rideID); var bookings = _unitOfWork.BookingRepository.GetAll(x => x.rideID == newBooking.rideID); int bookedCount = 0; foreach (var booking in bookings) { bookedCount += 1; } if (ride.capacity < bookedCount) { throw new ResourceCreationException() { ExceptionMessage = "Ride is full!" }; } var idParam = new SqlParameter("@ID", newBooking.ID); var rideIdParam = new SqlParameter("@RIDEID", newBooking.rideID); var isDriverParam = new SqlParameter("@ISDRIVER", newBooking.isDriver); var context = new CCTEntities1(); context.Database.ExecuteSqlCommand("CREATE_BOOKING @ID, @RIDEID, @ISDRIVER", idParam, rideIdParam, isDriverParam); _unitOfWork.Save(); return(newBooking); }
/// <summary> /// Delete the myschedule whose id is specified by the parameter. /// </summary> /// <param name="event_id">The myschedule id</param> /// <param name="gordon_id">The gordon id</param> /// <returns>The myschedule that was just deleted</returns> public MYSCHEDULE Delete(string event_id, string gordon_id) { // Account Verification var account = _unitOfWork.AccountRepository.FirstOrDefault(x => x.gordon_id == gordon_id); if (account == null) { throw new ResourceNotFoundException() { ExceptionMessage = "The account was not found." }; } var result = _unitOfWork.MyScheduleRepository.FirstOrDefault(x => x.GORDON_ID == gordon_id && x.EVENT_ID == event_id); if (result == null) { throw new ResourceNotFoundException() { ExceptionMessage = "The MySchedule was not found." }; } var idParam = new SqlParameter("@GORDONID", gordon_id); var eventIdParam = new SqlParameter("@EVENTID", event_id); var context = new CCTEntities1(); context.Database.ExecuteSqlCommand("DELETE_MYSCHEDULE @EVENTID, @GORDONID", eventIdParam, idParam); // run stored procedure. _unitOfWork.Save(); return(result); }
/// <summary> /// Sets the path for the profile image. /// </summary> /// <param name="id">The student id</param> /// <param name="path"></param> /// <param name="name"></param> public void UpdateProfileImage(string id, string path, string name) { if (_unitOfWork.AccountRepository.FirstOrDefault(x => x.gordon_id == id) == null) { throw new ResourceNotFoundException() { ExceptionMessage = "The account was not found." }; } var authParam = new SqlParameter("@ID", id); var pathParam = new SqlParameter("@FILE_PATH", path); if (path == null) { pathParam = new SqlParameter("@FILE_PATH", DBNull.Value); } var nameParam = new SqlParameter("@FILE_NAME", name); if (name == null) { nameParam = new SqlParameter("@FILE_NAME", DBNull.Value); } var context = new CCTEntities1(); context.Database.ExecuteSqlCommand("UPDATE_PHOTO_PATH @ID, @FILE_PATH, @FILE_NAME", authParam, pathParam, nameParam); //run stored procedure. }
/// <summary> /// Delete the ride whose id is specified by the parameter. /// </summary> /// <param name="rideID">The myschedule id</param> /// <param name="gordon_id">The gordon id</param> /// <returns>The myschedule that was just deleted</returns> public Save_Rides DeleteRide(string rideID, string gordon_id) { //make get first or default then use generic repository delete on result var result = _unitOfWork.RideRepository.FirstOrDefault(x => x.rideID == rideID); var booking = _unitOfWork.BookingRepository.FirstOrDefault(x => x.ID == gordon_id && x.rideID == rideID && x.isDriver == 1); if (!(booking == null)) { if (result == null) { throw new ResourceNotFoundException() { ExceptionMessage = "The ride was not found." }; } var idParam = new SqlParameter("@RIDE_ID", rideID); var context = new CCTEntities1(); context.Database.ExecuteSqlCommand("DELETE_RIDE @RIDE_ID", idParam); // run stored procedure. _unitOfWork.Save(); var idParam2 = new SqlParameter("@RIDE_ID", rideID); context.Database.ExecuteSqlCommand("DELETE_BOOKINGS @RIDE_ID", idParam2); // run stored procedure. _unitOfWork.Save(); } return(result); }
/// <summary> /// Execute the sql query /// </summary> /// <param name="query">An sql statement. Can be a stored procedure or even a simple SELECT statement</param> /// <param name="parameters">Parameters to pass into the stored procedure</param> /// <returns></returns> public static IEnumerable<T> query(string query, params object[] parameters) { using (var context = new CCTEntities1()) { var result = context.Database.SqlQuery<T>(query, parameters).AsEnumerable(); return result.ToList(); } }
/// <summary> /// Update the myschedule item. /// </summary> /// <param name="sched">The schedule information</param> /// <returns>The original schedule</returns> public MYSCHEDULE Update(MYSCHEDULE sched) { var gordon_id = sched.GORDON_ID; var event_id = sched.EVENT_ID; // Account Verification var account = _unitOfWork.AccountRepository.FirstOrDefault(x => x.gordon_id == gordon_id); if (account == null) { throw new ResourceNotFoundException() { ExceptionMessage = "The account was not found." }; } var original = _unitOfWork.MyScheduleRepository.FirstOrDefault(x => x.GORDON_ID == gordon_id && x.EVENT_ID == event_id); if (original == null) { throw new ResourceNotFoundException() { ExceptionMessage = "The MySchedule was not found." }; } var eventIdParam = new SqlParameter("@EVENTID", sched.EVENT_ID); var idParam = new SqlParameter("@GORDONID", sched.GORDON_ID); var locationParam = sched.LOCATION == null ? new SqlParameter("@LOCATION", original.LOCATION): new SqlParameter("@LOCATION", sched.LOCATION); var descriptionParam = sched.DESCRIPTION == null ? new SqlParameter("@DESCRIPTION", original.DESCRIPTION) : new SqlParameter("@DESCRIPTION", sched.DESCRIPTION); var monCdeParam = new SqlParameter("@MON_CDE", (object)sched.MON_CDE ?? DBNull.Value); var tueCdeParam = new SqlParameter("@TUE_CDE", (object)sched.TUE_CDE ?? DBNull.Value); var wedCdeParam = new SqlParameter("@WED_CDE", (object)sched.WED_CDE ?? DBNull.Value); var thuCdeParam = new SqlParameter("@THU_CDE", (object)sched.THU_CDE ?? DBNull.Value); var friCdeParam = new SqlParameter("@FRI_CDE", (object)sched.FRI_CDE ?? DBNull.Value); var satCdeParam = new SqlParameter("@SAT_CDE", (object)sched.SAT_CDE ?? DBNull.Value); var sunCdeParam = new SqlParameter("@SUN_CDE", (object)sched.SUN_CDE ?? DBNull.Value); var allDayParam = sched.IS_ALLDAY == null ? new SqlParameter("@IS_ALLDAY", original.IS_ALLDAY) : new SqlParameter("@IS_ALLDAY", sched.IS_ALLDAY); var beginTimeParam = sched.BEGIN_TIME == null ? new SqlParameter("@BEGINTIME", original.BEGIN_TIME) : new SqlParameter("@BEGINTIME", sched.BEGIN_TIME); var endTimeParam = sched.END_TIME == null ? new SqlParameter("@ENDTIME", original.END_TIME) : new SqlParameter("@ENDTIME", sched.END_TIME); var context = new CCTEntities1(); context.Database.ExecuteSqlCommand("UPDATE_MYSCHEDULE " + "@EVENTID, @GORDONID, @LOCATION, @DESCRIPTION, @MON_CDE, @TUE_CDE, @WED_CDE, " + "@THU_CDE, @FRI_CDE, @SAT_CDE, @SUN_CDE, @IS_ALLDAY, @BEGINTIME, @ENDTIME" , eventIdParam, idParam, locationParam, descriptionParam, monCdeParam, tueCdeParam, wedCdeParam, thuCdeParam, friCdeParam, satCdeParam, sunCdeParam, allDayParam, beginTimeParam, endTimeParam); // run stored procedure. _unitOfWork.Save(); return(original); }
/// <summary> /// Cancel the ride whose id is specified by the parameter. /// </summary> /// <param name="rideID">The ride id</param> /// <param name="gordon_id">The gordon id</param> /// <returns>The ride that was just deleted</returns> public int CancelRide(string rideID, string gordon_id) { var idParam = new SqlParameter("@STUDENT_ID", gordon_id); var rideIdParam = new SqlParameter("@RIDE_ID", rideID); var context = new CCTEntities1(); var result = context.Database.ExecuteSqlCommand("CANCEL_RIDE @STUDENT_ID, @RIDE_ID", idParam, rideIdParam); // run stored procedure. _unitOfWork.Save(); return(result); }
/// <summary> /// privacy setting of mobile phone. /// </summary> /// <param name="id">id</param> /// <param name="value">Y or N</param> public void UpdateMobilePrivacy(string id, string value) { var original = _unitOfWork.AccountRepository.FirstOrDefault(x => x.gordon_id == id); if (original == null) { throw new ResourceNotFoundException() { ExceptionMessage = "The account was not found." }; } var idParam = new SqlParameter("@ID", id); var valueParam = new SqlParameter("@VALUE", value); var context = new CCTEntities1(); context.Database.ExecuteSqlCommand("UPDATE_PHONE_PRIVACY @ID, @VALUE", idParam, valueParam); // run stored procedure. }
/// <summary> /// Sets the path for the profile image. /// </summary> /// <param name="id">The student id</param> /// <param name="path"></param> /// <param name="name"></param> public void UpdateProfileImage(string id, string path, string name) { if (_unitOfWork.AccountRepository.FirstOrDefault(x => x.gordon_id == id) == null) { throw new ResourceNotFoundException() { ExceptionMessage = "The account was not found." }; } var authParam = new SqlParameter("@ID", id); var pathParam = new SqlParameter("@FILE_PATH", path); if (path == null) { pathParam = new SqlParameter("@FILE_PATH", DBNull.Value); } var nameParam = new SqlParameter("@FILE_NAME", name); if (name == null) { nameParam = new SqlParameter("@FILE_NAME", DBNull.Value); } var context = new CCTEntities1(); context.Database.ExecuteSqlCommand("UPDATE_PHOTO_PATH @ID, @FILE_PATH, @FILE_NAME", authParam, pathParam, nameParam); //run stored procedure. // Update value in cached data var student = Data.StudentData.FirstOrDefault(x => x.ID == id); var facStaff = Data.FacultyStaffData.FirstOrDefault(x => x.ID == id); var alum = Data.AlumniData.FirstOrDefault(x => x.ID == id); if (student != null) { student.preferred_photo = (path == null ? 0 : 1); } else if (facStaff != null) { facStaff.preferred_photo = (path == null ? 0 : 1); } else if (alum != null) { alum.preferred_photo = (path == null ? 0 : 1); } }
/// <summary> /// Update a faculty member's office hour string. Blatent copying of the above procudeure. /// </summary> /// <param name="id">id</param> /// <param name="value"></param> public void UpdateOfficeHours(string id, string value) { var original = _unitOfWork.AccountRepository.FirstOrDefault(x => x.gordon_id == id); if (original == null) { throw new ResourceNotFoundException() { ExceptionMessage = "The account was not found." }; } var accountID = original.account_id; var idParam = new SqlParameter("@ACCOUNT_ID", accountID); var valueParam = new SqlParameter("@VALUE", value); var context = new CCTEntities1(); context.Database.ExecuteSqlCommand("UPDATE_OFFICE_HOURS @ACCOUNT_ID, @VALUE", idParam, valueParam); //run stored procedure. }
/// <summary> /// Sets the path for the profile links. /// </summary> /// <param name="username">The username</param> /// <param name="type"></param> /// <param name="path"></param> public void UpdateProfileLink(string username, string type, CUSTOM_PROFILE path) { var original = _unitOfWork.ProfileCustomRepository.GetByUsername(username); if (original == null) { var nameParam = new SqlParameter("@USERNAME", username); var fParam = new SqlParameter("@FACEBOOK", DBNull.Value); var tParam = new SqlParameter("@TWITTER", DBNull.Value); var iParam = new SqlParameter("@INSTAGRAM", DBNull.Value); var lParam = new SqlParameter("@LINKEDIN", DBNull.Value); var hParam = new SqlParameter("@HANDSHAKE", DBNull.Value); var context = new CCTEntities1(); context.Database.ExecuteSqlCommand("CREATE_SOCIAL_LINKS @USERNAME, @FACEBOOK, @TWITTER, @INSTAGRAM, @LINKEDIN, @HANDSHAKE", nameParam, fParam, tParam, iParam, lParam, hParam); //run stored procedure to create a row in the database for this user. original = _unitOfWork.ProfileCustomRepository.GetByUsername(username); } switch (type) { case "facebook": original.facebook = path.facebook; break; case "twitter": original.twitter = path.twitter; break; case "instagram": original.instagram = path.instagram; break; case "linkedin": original.linkedin = path.linkedin; break; case "handshake": original.handshake = path.handshake; break; } _unitOfWork.Save(); }
/// <summary> /// Adds a new ride record to storage. /// </summary> /// <param name="newRide">The Save_Rides object to be added</param> /// <param name="gordon_id">The gordon_id of the user creating the ride</param> /// <returns>The newly added custom event</returns> public Save_Rides AddRide(Save_Rides newRide, string gordon_id) { // Assign event id var rideList = _unitOfWork.RideRepository.GetAll(x => x.rideID == newRide.rideID); int highestRideID = 1; foreach (var ride in rideList) { highestRideID += 1; } var newRideID = highestRideID.ToString(); var idParam = new SqlParameter("@ID", gordon_id); var rideIdParam = new SqlParameter("@RIDEID", newRide.rideID); var isDriverParam = new SqlParameter("@ISDRIVER", 1); var context = new CCTEntities1(); var rideIdParam2 = new SqlParameter("@RIDEID", newRide.rideID); var destinationParam = new SqlParameter("@DESTINATION", newRide.destination); var meetingPointParam = new SqlParameter("@MEETINGPOINT", newRide.meetingPoint); var startTimeParam = new SqlParameter("@STARTTIME", newRide.startTime); var endTimeParam = new SqlParameter("@ENDTIME", newRide.endTime); var capacityParam = new SqlParameter("@CAPACITY", newRide.capacity); var notesParam = new SqlParameter("@NOTES", newRide.notes); var canceledParam = new SqlParameter("@CANCELED", newRide.canceled); var result = context.Database.ExecuteSqlCommand("CREATE_RIDE @RIDEID, @DESTINATION, @MEETINGPOINT, @STARTTIME, @ENDTIME, @CAPACITY, @NOTES, @CANCELED", rideIdParam2, destinationParam, meetingPointParam, startTimeParam, endTimeParam, capacityParam, notesParam, canceledParam); if (result == null) { throw new ResourceNotFoundException() { ExceptionMessage = "The ride could not be created." }; } context.Database.ExecuteSqlCommand("CREATE_BOOKING @ID, @RIDEID, @ISDRIVER", idParam, rideIdParam, isDriverParam); // run stored procedure. _unitOfWork.Save(); return(newRide); }
/// <summary> /// Delete the booking whose ids are specified by the parameter. /// </summary> /// <param name="rideID">The myschedule id</param> /// <param name="gordon_id">The gordon id</param> /// <returns>The myschedule that was just deleted</returns> public Save_Bookings DeleteBooking(string rideID, string gordon_id) { var result = _unitOfWork.BookingRepository.FirstOrDefault(x => x.ID == gordon_id && x.rideID == rideID); if (result != null) { var rideIDParam = new SqlParameter("@RIDE_ID", rideID); var gordonIDParam = new SqlParameter("@ID", gordon_id); var context = new CCTEntities1(); // If driver booking is deleted, ride is deleted // TODO: notify users if (result.isDriver == 1) { context.Database.ExecuteSqlCommand("DELETE_RIDE @RIDE_ID", rideIDParam); // run stored procedure. _unitOfWork.Save(); } context.Database.ExecuteSqlCommand("DELETE_BOOKING @RIDE_ID, @ID", rideIDParam, gordonIDParam); // run stored procedure. _unitOfWork.Save(); } return(result); }
/// <summary> /// privacy setting user profile photo. /// </summary> /// <param name="id">id</param> /// <param name="value">Y or N</param> public void UpdateImagePrivacy(string id, string value) { var original = _unitOfWork.AccountRepository.FirstOrDefault(x => x.gordon_id == id); if (original == null) { throw new ResourceNotFoundException() { ExceptionMessage = "The account was not found." }; } var accountID = original.account_id; var idParam = new SqlParameter("@ACCOUNT_ID", accountID); var valueParam = new SqlParameter("@VALUE", value); var context = new CCTEntities1(); context.Database.ExecuteSqlCommand("UPDATE_SHOW_PIC @ACCOUNT_ID, @VALUE", idParam, valueParam); //run stored procedure. // Update value in cached data var student = Data.StudentData.FirstOrDefault(x => x.ID == id); var facStaff = Data.FacultyStaffData.FirstOrDefault(x => x.ID == id); var alum = Data.AlumniData.FirstOrDefault(x => x.ID == id); if (student != null) { student.show_pic = (value == "Y" ? 1 : 0); } else if (facStaff != null) { facStaff.show_pic = (value == "Y" ? 1 : 0); } else if (alum != null) { alum.show_pic = (value == "Y" ? 1 : 0); } }
public UnitOfWork() { _context = new CCTEntities1(); _myGordonCtx = new MyGordonEntities(); }
public HousingService(IUnitOfWork unitOfWork) { _unitOfWork = unitOfWork; _context = new CCTEntities1(); }
public UnitOfWork() { _context = new CCTEntities1(); }
/// <summary> /// Initializes a new instance of the <see cref="GenericRepository{T}" /> class. /// </summary> /// <param name="context">The context for the repository</param> public GenericRepository(CCTEntities1 context) { _context = context; _dbSet = _context.Set <T>(); }