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));
        }
Пример #2
0
        /// <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);
        }