Пример #1
0
    protected void submit_Click(object sender, EventArgs e)
    {
        if (originTB.Text != "" && destinationTB.Text != "" && calendarTB.Text != "")
        {
            DataSet ds = new DataSet();
            try
            {
                RideRequest rr = new RideRequest();
                ds = rr.GetAllRidesFilter(rideTypeDDL.SelectedValue.ToString(), originTB.Text, destinationTB.Text, (Convert.ToDateTime(calendarTB.Text)), Convert.ToInt32(minuteDDL.SelectedValue), Convert.ToInt32(hourDDL.SelectedValue), Convert.ToInt32(genderPrefDDL.SelectedValue));
            }
            catch (Exception ex)
            {
                throw ex;
            }

            if (ds != null)
            {
                ridesRepeater.DataSource = ds.Tables[0];
                ridesRepeater.DataBind();
            }
            else
            {
                Page.Header.Controls.Add(new LiteralControl("<script type='text/javascript'>alert('לא נמצאו טרמפים מתאימים. נסה מאוחר יותר!');</script>"));
            }
        }
        else
        {
            Page.Header.Controls.Add(new LiteralControl("<script type='text/javascript'>alert('אנא הזן מוצא ויעד');</script>"));
        }
    }
Пример #2
0
        public async Task <string> PostRideRequestAsync(string userId, RideRequest rideRequest)
        {
            var uri = new Uri(App.Current.ServerAddress, "api/rides/ride-request")
                      .AddParameter("userId", userId);
            var content = new StringContent(JsonConvert.SerializeObject(rideRequest), System.Text.Encoding.UTF8, "application/json");

            try
            {
                var response = await App.Current.HttpClient.PostAsync(uri, content);

                Console.WriteLine($"Response code: {response.StatusCode}");
                if (response.IsSuccessStatusCode)
                {
                    Console.WriteLine($"Response body: {await response.Content.ReadAsStringAsync()}");
                    return(response.Headers.Location.OriginalString);
                }
                else
                {
                    Console.WriteLine($"Reason phrases: {response.ReasonPhrase}");
                    return(null);
                }
            }
            catch (HttpRequestException e)
            {
                Console.WriteLine($"Got exception: {e}");
                return(null);
            }
        }
Пример #3
0
 private string FormatAcceptedMessageToProvider(RideRequest rideRequest, IUser requestedBy)
 {
     return
         ($"Thank you for accepting to give {requestedBy.UserName} a ride, you can contact them on their number at {requestedBy.PhoneNumber}. " +
          $"As a reminder remeber that you're picking them up at: {rideRequest.Source} and " +
          $"taking them to: {rideRequest.Destination} at: {rideRequest.PickupTime:g}");
 }
Пример #4
0
        public UserRideRequest(User user, RideRequest rideRequest)
            : base(user)
        {
            RideRequest = rideRequest;

            PostStatus().FireAndForgetAsync(Program.ErrorHandler);
        }
Пример #5
0
 public void NotifyNewRide(RideRequest rideRequest, IUrlHelper url)
 {
     foreach (var user in _usersRepository.Users.Where(profile => profile.RideProvider))
     {
         SendNotification(user.PhoneNumber, FormatNewRideMessage(rideRequest, user, url));
     }
 }
 public bool ApproveRequest(int rideId, string requestId, bool isApproved)
 {
     if (isApproved)
     {
         if (BookingDal.GetStatus(requestId).ToString() == "Requested")
         {
             RideRequest request = BookingDal.GetBookingDetails(requestId).Request;
             if (RideDal.IsSeatAvailable(request, rideId))
             {
                 BookingDal.UpdateStatus(requestId, "Approved");
                 return(true);
             }
             else
             {
                 BookingDal.UpdateStatus(requestId, "Rejected");
                 return(false);
             }
         }
     }
     else
     {
         BookingDal.UpdateStatus(requestId, "Rejected");
     }
     return(true);
 }
Пример #7
0
        public async Task <RideResponse> Post(RideRequest body)
        {
            HttpClient httpClient = new HttpClient();

            httpClient.DefaultRequestHeaders.Remove("Authorization");
            httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + token);
            httpClient.BaseAddress = Security.BaseAddress("SANDBOX");
            StringContent       stringContent = new StringContent(JsonConvert.SerializeObject(body), Encoding.UTF8, "application/json");
            HttpResponseMessage response      = await httpClient.PostAsync($"requests", stringContent);

            if (!response.IsSuccessStatusCode)
            {
                string content = await response.Content.ReadAsStringAsync();

                var Exception = JsonConvert.DeserializeObject(content);
                throw new System.Exception(Exception.ToString());
            }
            try
            {
                return(JsonConvert.DeserializeObject <RideResponse>(await response.Content.ReadAsStringAsync()));
            }
            catch (System.Exception ex)
            {
                throw ex;
            }
        }
        public IActionResult AddRequest(AddRequestViewModel addRequestViewModel)
        {
            if (ModelState.IsValid)
            {
                ApplicationUser currentUser = context.Users.Single(u => u.UserName.Equals(User.Identity.Name));

                RideRequest newRequest = new RideRequest
                {
                    RiderOrgLoc   = addRequestViewModel.RiderOrgLoc,
                    RiderDestLoc  = addRequestViewModel.RiderDestLoc,
                    SeatNeeded    = addRequestViewModel.SeatsNeeded,
                    RequestTime   = DateTime.Now.ToString("h:mm:ss tt"),
                    Date          = DateTime.Today,
                    UserAccountID = currentUser.Id,
                    ActiveRequest = true,
                    RiderOrgLat   = addRequestViewModel.RiderOrgLat,
                    RiderOrgLong  = addRequestViewModel.RiderOrgLong,
                    RiderDestLat  = addRequestViewModel.RiderDestLat,
                    RiderDestLong = addRequestViewModel.RiderDestLong
                };

                //Add new ride requesUt to the database
                context.RideRequests.Add(newRequest);
                context.SaveChanges();

                var lastride = context.RideRequests.Last();

                return(Redirect("/RideRequest/GetStatus?rideID=" + lastride.ID));
                //return RedirectToAction("GetStatus");
            }
            else
            {
                return(View(addRequestViewModel));
            }
        }
        public List <RideRequest> GetRequests(int rideId)
        {
            string             connectionString = Configuration.ConnectionString;
            List <RideRequest> requests         = new List <RideRequest>();

            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                string sql = $"Select * from Booking where RideId='{rideId}'";
                using (SqlCommand command = new SqlCommand(sql, connection))
                {
                    connection.Open();
                    using (SqlDataReader dataReader = command.ExecuteReader())
                    {
                        while (dataReader.Read())
                        {
                            RideRequest Request = new RideRequest
                            {
                                PickUp    = Convert.ToString(dataReader["Source"]),
                                Drop      = Convert.ToString(dataReader["Destination"]),
                                NoOfSeats = Convert.ToInt32(dataReader["NoOfSeats"]),
                                Id        = Convert.ToString(dataReader["Id"]),
                                RiderId   = Convert.ToString(dataReader["RiderId"]),
                                StartDate = Convert.ToDateTime(dataReader["StartDate"])
                            };
                            requests.Add(Request);
                        }
                    }
                }
                connection.Close();
            }
            return(requests);
        }
        public IActionResult CancelRider()
        {
            var id = Request.Query["rideID"];

            RideRequest currentRide = context.RideRequests.Single(r => r.ID == int.Parse(id));


            //Change status to cancelled
            currentRide.CanceledRide = true;

            //adds the cancellation reason to the database
            currentRide.CancellationReason = "Rider did not show up";

            //Change seats needed to 0 because the driver will not pick up any riders
            currentRide.SeatNeeded = 0;


            //Removes the request from the Ride Request Queue list
            currentRide.ActiveRequest = false;

            //save the changes made to the ride request
            context.SaveChanges();

            return(RedirectToAction("Index"));
        }
Пример #11
0
        public ActionResult Post([FromBody] PhoneRideRequest request)
        {
            if (request.dropoffs == null || request.passengers == null || request.firstName == null ||
                request.homeAddress == null || request.pickupLocation == null || request.cellPhoneNumber == null)
            {
                return(BadRequest());
            }

            var convertedRideRequest = new RideRequest()
            {
                Pickup         = request.pickupLocation,
                PhoneNumber    = request.cellPhoneNumber,
                NumberOfPeople = request.passengers,
                Destination    = request.homeAddress,
                PatronName     = request.firstName
            };

            try
            {
                DBConnector db = new DBConnector();
                db.InsertRide(convertedRideRequest);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
                return(StatusCode(500));
            }
            return(Ok());
        }
Пример #12
0
        public RideRequest AddRequest(RideRequest request)
        {
            var entity = _databaseContext.Requests.Add(request).Entity;

            _databaseContext.SaveChanges();
            return(entity);
        }
Пример #13
0
        public IHttpActionResult PostConvertRideRequest(RideRequest rideRequest)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            Params  priceParam = new Params();
            decimal price      = priceParam.Price * rideRequest.nbKm;
            Ride    ride       = new Ride()
            {
                RiderId         = rideRequest.RiderId,
                DriverId        = rideRequest.DriverId,
                PosXStart       = rideRequest.PosXStart,
                PosXEnd         = rideRequest.PosXEnd,
                PosYEnd         = rideRequest.PosYEnd,
                PosYStart       = rideRequest.PosYStart,
                PlaceNumber     = rideRequest.PlaceNumber,
                DateCreation    = DateTime.Now,
                DateStart       = null,
                DateEnd         = null,
                Price           = price,
                Payment         = null,
                PromotionCodeId = null
            };

            db.Rides.Add(ride);
            db.SaveChanges();

            return(CreatedAtRoute("DefaultApi", new { id = ride.RideId }, ride));
        }
Пример #14
0
        public async Task <ActionResult <RideResponse> > Post(RideRequest request)
        {
            _logger.LogDebug("{@Configuration}", _configuration.AsEnumerable().Select(kv => $"{kv.Key} - {kv.Value}").ToList());

            _logger.LogDebug("{@LambdaContext}", Request.HttpContext.Items[AbstractAspNetCoreFunction.LAMBDA_CONTEXT]);
            _logger.LogDebug("{@LambdaRequestObject}", Request.HttpContext.Items[AbstractAspNetCoreFunction.LAMBDA_REQUEST_OBJECT]);
            _logger.LogDebug("{@IdentityDetails}", GetIdentityDetails().ToList());

            var rideId = Guid.NewGuid().ToString();

            var username = User.Identity.Name;

            var unicorn = FindUnicorn(request.PickupLocation);

            await _dbContext.SaveAsync(new Ride
            {
                RideId      = rideId,
                RequestTime = DateTime.UtcNow,
                Unicorn     = unicorn,
                UnicornName = unicorn.Name,
                User        = username
            });

            var response = new RideResponse
            {
                Eta         = "30 seconds",
                RideId      = rideId,
                Rider       = username,
                Unicorn     = unicorn,
                UnicornName = unicorn.Name
            };

            return(CreatedAtAction(nameof(Post), response));
        }
Пример #15
0
        public IHttpActionResult PutRideRequest(int id, RideRequest rideRequest)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != rideRequest.RideRequestID)
            {
                return(BadRequest());
            }

            db.Entry(rideRequest).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!RideRequestExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
        public IHttpActionResult JoinedRiders(int rid)
        {
            RideRequest rr = new RideRequest();

            rr.RideId        = rid;
            rr.RequestStatus = "2";
            List <RideRequest>       rrlist = new RideRequestDAC().SelectALLAcceptedRequestByRideId(rr);
            List <JoinedRidersModel> jrlist = new List <JoinedRidersModel>();

            if (rrlist != null)
            {
                foreach (RideRequest m in rrlist)
                {
                    JoinedRidersModel jrmodel = new JoinedRidersModel();
                    Users             utemp   = new UsersDAC().SelectById(m.PassengerId);
                    jrmodel.Id             = m.Id;
                    jrmodel.PassengerId    = m.PassengerId;
                    jrmodel.PickupLocation = m.PickupLocation;
                    jrmodel.Destination    = m.Destination;
                    jrmodel.RideId         = m.RideId;
                    jrmodel.RequestStatus  = m.RequestStatus;
                    jrmodel.TotalAmount    = m.TotalAmount;
                    jrmodel.UserName       = utemp.UserName;
                    jrlist.Add(jrmodel);
                }
                jrlist.TrimExcess();
                return(Ok(jrlist));
            }
            else
            {
                return(NotFound());
            }
        }
Пример #17
0
    protected DataSet GetAllRideRequests()
    {
        RideRequest rideRequest = new RideRequest();
        DataSet     ds          = new DataSet();

        try
        {
            ds = rideRequest.GetUserRideRequests((int)Session["userId"]);
        }
        catch (Exception ex)
        {
            throw ex;
        }

        for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
        {
            if (Convert.ToInt32(ds.Tables[0].Rows[i]["price"]) == -1)
            {
                ds.Tables[0].Rows[i]["price"] = 0;
            }
            string   date = ds.Tables[0].Rows[i]["rideDate"].ToString();
            string[] arr  = date.Split('-');

            ds.Tables[0].Rows[i]["rideDate"] = arr[2] + "/" + arr[1] + "/" + arr[0];
        }
        return(ds);
    }
Пример #18
0
        public ResponseVM ApproveRequest([FromQuery] int rideId, [FromQuery] string requestId, [FromQuery] bool isApprove, [FromQuery] string providerId)
        {
            ResponseVM response = new ResponseVM
            {
                Result = true
            };

            if (isApprove)
            {
                RideRequest request = _rideService.FindRide(rideId).Requests.Find(_ => _.Id == requestId);
                float       amount  = _rideService.CalculateCostForRide(rideId, request.PickUp, request.Drop);
                if (_userService.IsBalanceAvailable(amount, request.RiderId))
                {
                    if (_rideService.ApproveRequest(rideId, requestId, isApprove))
                    {
                        _userService.PayBill(providerId, request.RiderId, amount);
                        response.Result = true;
                    }
                    else
                    {
                        response.ErrorMessage = "The Request can't be Accepted ";
                    }
                }
                else
                {
                    response.ErrorMessage = "The Balance is not Sufficient";
                }
            }
            else
            {
                _rideService.ApproveRequest(rideId, requestId, isApprove);
            }
            return(response);
        }
Пример #19
0
 public form_update_request(RideRequest ride)
 {
     InitializeComponent();
     current    = ride;
     _dbContext = new OIT_RideShare();
     UpdateRideRequestData();
 }
Пример #20
0
    protected void DeleteRideRequest(int rideId)
    {
        RideRequest rideRequest = new RideRequest();

        try
        {
            rideRequest.DeleteRideRequest(Convert.ToInt32(rideId));
        }
        catch (Exception ex)
        {
            throw ex;
        }

        DataTable dt = new DataTable();

        try
        {
            dt = GetAllRideRequests().Tables[0];
        }
        catch (Exception ex)
        {
            throw ex;
        }
        TrempsRepeater.DataSource = dt;
        TrempsRepeater.DataBind();
    }
        public IHttpActionResult RideEnded(int rid)
        {
            Ride r = new Ride();

            r.Id           = rid;
            r.RideStatusId = 3;
            new RideDAC().RideStatusUpdate(r);
            Ride        rtemp  = new RideDAC().SelectById(rid);
            Users       driver = new UsersDAC().SelectById(rtemp.UserId);
            RideRequest rr     = new RideRequest();

            rr.RideId        = rid;
            rr.RequestStatus = "2";
            List <RideRequest> rrlist = new RideRequestDAC().SelectALLAcceptedRequestByRideId(rr);

            if (rrlist != null)
            {
                foreach (RideRequest i in rrlist)
                {
                    Users  passenger = new UsersDAC().SelectById(i.PassengerId);
                    string message   = "Rate your ride with " + driver.UserName + " from " + rtemp.Source + " to " + rtemp.Destination + ".";
                    NotifyRateDriverToJoinedPassengers(passenger.Token, driver, rtemp, message, "RateDriver");
                }
            }
            return(Ok());
        }
        public IHttpActionResult CancelRide(int rid)
        {
            Ride r = new Ride();

            r.Id           = rid;
            r.RideStatusId = 4;
            new RideDAC().RideStatusUpdate(r);
            Ride        ride   = new RideDAC().SelectById(rid);
            Users       driver = new UsersDAC().SelectById(ride.UserId);
            RideRequest rr     = new RideRequest();

            rr.RideId        = rid;
            rr.RequestStatus = "2";
            List <RideRequest> rrlist = new RideRequestDAC().SelectALLAcceptedRequestByRideId(rr);

            if (rrlist != null)
            {
                foreach (RideRequest i in rrlist)
                {
                    Users  u       = new UsersDAC().SelectById(i.PassengerId);
                    String message = driver.UserName + " Cancelled the ride from " + ride.Source + " to " + ride.Destination + " which you joined! ";
                    NotifyCancelledRideStatus(u.Token, message, "JoinedPassengers");
                }
            }
            new RideRequestDAC().DeleteAllRideRequestsByRideId(rid);
            return(Ok());
        }
Пример #23
0
    protected void Page_Load(object sender, EventArgs e)
    {
        RideRequest rr = new RideRequest();
        DataTable   dt = new DataTable();

        //
        try
        {
            dt = rr.getMatchRideRequest(Convert.ToInt32(Request.QueryString["rideId"]));
        }
        catch (Exception ex)
        {
            throw ex;
        }
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            if (Convert.ToInt32(dt.Rows[i]["price"]) == -1)
            {
                dt.Rows[i]["price"] = 0;
            }
            string   date = dt.Rows[i]["rideDate"].ToString();
            string[] arr  = date.Split(' ');
            dt.Rows[i]["rideDate"] = arr[0];
        }

        matchUsersRepeater.DataSource = dt;
        matchUsersRepeater.DataBind();
    }
        protected void RequestRideButton_Click(object sender, EventArgs e)
        {
            string pickupLine1 = PickupLine1TextBox.Text;
            string pickupLine2 = PickupLine2TextBox.Text;
            string pickupCity  = PickupCityTextBox.Text;
            string pickupState = PickupStateTextBox.Text;
            int    pickupZip   = int.Parse(PickupZipTextBox.Text);

            Address pickupAddress = new Address(pickupLine1, pickupLine2, pickupCity, pickupState, pickupZip);

            string dropoffLine1 = DropoffLine1TextBox.Text;
            string dropoffLine2 = DropoffLine2TextBox.Text;
            string dropoffCity  = DropoffCityTextBox.Text;
            string dropoffState = DropoffStateTextBox.Text;
            int    dropoffZip   = int.Parse(DropoffZipTextBox.Text);

            Address dropoffAddress = new Address(dropoffLine1, dropoffLine2, dropoffCity, dropoffState, dropoffZip);

            UserSession userSession = (UserSession)Session["userSession"];

            DateTime    pickupDate  = Convert.ToDateTime(PickupTimeTextBox.Text);
            RideRequest rideRequest = new RideRequest((Customer)userSession.User, pickupAddress, dropoffAddress, DateTime.Now, pickupDate);

            //db = new Database();
            requestID = db.AddRequest(rideRequest);

            RideRequestStatusLabel.Text = "Waiting for Driver";
            RideStatusTimer.Enabled     = true;
        }
Пример #25
0
        public void RequestRide([FromBody] RequestVM request1, [FromQuery] int rideId, [FromQuery] string userId)
        {
            RideRequest request = _mapper.Map <RideRequest>(request1);

            request.RideId  = rideId;
            request.RiderId = userId;
            _rideService.RequestRide(request);
        }
        public List <RideRequest> SelectALLAcceptedRequestByPassengerId(RideRequest rr)
        {
            SqlCommand cmd = new SqlCommand(SELECT_All_ACCEPTED_REQUEST_BY_PASSENGERID, DACHelper.GetConnection());

            cmd.Parameters.AddWithValue("@PassengerId", rr.PassengerId);
            cmd.Parameters.AddWithValue("@Status", rr.RequestStatus);
            return(fetchRideRequest(cmd));
        }
Пример #27
0
 public form_Rider()
 {
     InitializeComponent();
     _dbContext = new OIT_RideShare();
     rider      = new Rider();
     user       = new User();
     request    = new RideRequest();
 }
Пример #28
0
        private async Task RequestRide()
        {
            rideRequest = await AppConstants.ShyftClient.RequestRide(pickupLocation.Value.Latitude, pickupLocation.Value.Longitude,
                                                                     dropoffLocation.Value.Latitude, dropoffLocation.Value.Longitude,
                                                                     selectedRideType.Value);

            GoToRide();
        }
Пример #29
0
        public form_Admin()
        {
            InitializeComponent();
            _dbContext = new OIT_RideShare();

            updateLists();
            current_request = null;
            current_User    = null;
        }
Пример #30
0
 private string FormatNewRideMessage(RideRequest rideRequest, IUser user, IUrlHelper url)
 {
     return($"Someone in your area would like a ride." + Environment.NewLine +
            $"From: {rideRequest.Source}" + Environment.NewLine +
            $"To: {rideRequest.Destination}" + Environment.NewLine +
            $"At: {rideRequest.PickupTime:g}" + Environment.NewLine +
            $"Accpet? {_options.BaseUrl}{url.Action("Accept", "RideRequest", new {rideRequestId = rideRequest.Id, username = user.UserName, auth = rideRequest.AuthId})}" +
            Environment.NewLine +
            $"Once you accept you will be sent their Username and Phone number");
 }