public IHttpActionResult PostRide([FromBody] Save_Rides newRide) { var authenticatedUser = this.ActionContext.RequestContext.Principal as ClaimsPrincipal; var username = authenticatedUser.Claims.FirstOrDefault(x => x.Type == "user_name").Value; var id = _accountService.GetAccountByUsername(username).GordonID; var result = _saveService.AddRide(newRide, id); if (result == null) { return(NotFound()); } return(Ok(result)); }
/// <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); }