using GMCabsDriverAssistant.Models;
|
|
using GMCabsDriverAssistant.Services;
|
|
using GMCabsDriverAssistantSolution.Models.Rydo;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Net;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace GMCabsDriverAssistantSolution.ViewModels
|
|
{
|
|
[QueryProperty(nameof(BookingId), nameof(BookingId))]
|
|
[QueryProperty(nameof(PickUpAddress), nameof(PickUpAddress))]
|
|
[QueryProperty(nameof(DropUpAddress), nameof(DropUpAddress))]
|
|
[QueryProperty(nameof(IsFutureBooking), nameof(IsFutureBooking))]
|
|
[Obsolete]
|
|
public class AcceptBookingViewModel : BaseViewModel
|
|
{
|
|
#region Constants
|
|
|
|
private const int ASSISTANT_DRIVER_SOURCE = 4;
|
|
|
|
#endregion Constants
|
|
|
|
#region Fields
|
|
public int seconds = 180;
|
|
private string timerSeconds = "3:00";
|
|
private string bookingId = "";
|
|
public string pickUpAddress = "";
|
|
public string dropUpAddress = "";
|
|
private string errorMessage = "";
|
|
private bool isProcessing = true;
|
|
private bool isBookingConfirmed = false;
|
|
public bool isBookingUnavailable = false;
|
|
public bool isFutureBooking = false;
|
|
private bool isBookingConfirmedAndOnDemand = false;
|
|
#endregion
|
|
|
|
#region Properties
|
|
public string TimerSeconds
|
|
{
|
|
get => timerSeconds;
|
|
set
|
|
{
|
|
SetProperty(ref timerSeconds, value);
|
|
}
|
|
}
|
|
public string ErrorMessage
|
|
{
|
|
get => errorMessage;
|
|
set
|
|
{
|
|
SetProperty(ref errorMessage, value);
|
|
}
|
|
}
|
|
|
|
[Obsolete]
|
|
public string BookingId
|
|
{
|
|
get => bookingId;
|
|
set
|
|
{
|
|
SetProperty(ref bookingId, value);
|
|
Processing(value);
|
|
}
|
|
}
|
|
public string PickUpAddress
|
|
{
|
|
get => pickUpAddress;
|
|
set
|
|
{
|
|
SetProperty(ref pickUpAddress, value);
|
|
}
|
|
}
|
|
public string DropUpAddress
|
|
{
|
|
get => dropUpAddress;
|
|
set
|
|
{
|
|
SetProperty(ref dropUpAddress, value);
|
|
}
|
|
}
|
|
public bool IsProcessing
|
|
{
|
|
get => isProcessing;
|
|
set => SetProperty(ref isProcessing, value);
|
|
}
|
|
public bool IsBookingConfirmed
|
|
{
|
|
get => isBookingConfirmed;
|
|
set => SetProperty(ref isBookingConfirmed, value);
|
|
}
|
|
public bool IsBookingUnavailable
|
|
{
|
|
get => isBookingUnavailable;
|
|
set => SetProperty(ref isBookingUnavailable, value);
|
|
}
|
|
public bool IsFutureBooking
|
|
{
|
|
get => isFutureBooking;
|
|
set => SetProperty(ref isFutureBooking, value);
|
|
}
|
|
public bool IsBookingConfirmedAndOnDemand
|
|
{
|
|
get => isBookingConfirmedAndOnDemand;
|
|
set => SetProperty(ref isBookingConfirmedAndOnDemand, value);
|
|
}
|
|
#endregion
|
|
|
|
#region Constructor
|
|
public AcceptBookingViewModel()
|
|
{
|
|
Title = "Processing";
|
|
}
|
|
#endregion
|
|
|
|
#region Methods
|
|
[Obsolete]
|
|
private async void Processing(string booking_Id)
|
|
{
|
|
string rydoAccessToken = Preferences.Get(EftposLoginResponse.RYDO_ACCESS_TOKEN, "");
|
|
Guid driverId = Guid.Parse(Preferences.Get(LoginResponseDto.USER_CODE, ""));
|
|
GMCabsDriverService gmCabsDriverService = new GMCabsDriverService();
|
|
AcceptDeclineBookingRequest acceptBookingRequest = new AcceptDeclineBookingRequest();
|
|
|
|
var location = await Geolocation.GetLastKnownLocationAsync();
|
|
|
|
acceptBookingRequest.DriverId = driverId;
|
|
acceptBookingRequest.DriverSource = ASSISTANT_DRIVER_SOURCE;
|
|
acceptBookingRequest.DriverLatitude = location.Latitude;
|
|
acceptBookingRequest.DriverLongitude = location.Longitude;
|
|
|
|
var res = await gmCabsDriverService.AcceptBooking(acceptBookingRequest, rydoAccessToken, booking_Id);
|
|
if (res.StatusCode == (int)HttpStatusCode.OK)
|
|
{
|
|
Title = "Booking Confirmed";
|
|
IsProcessing = false;
|
|
IsBookingConfirmed = true;
|
|
|
|
if (!IsFutureBooking)
|
|
{
|
|
IsBookingConfirmedAndOnDemand = true;
|
|
Device.StartTimer(TimeSpan.FromSeconds(1), () =>
|
|
{
|
|
if (seconds > 0)
|
|
{
|
|
--seconds;
|
|
TimerSeconds = seconds / 60 + ":" + (seconds % 60 <= 9 ? "0" + seconds % 60 : "" + seconds % 60);
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
|
|
});
|
|
}
|
|
else
|
|
{
|
|
IsBookingConfirmedAndOnDemand = false;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Title = "Booking Unavailable";
|
|
ErrorMessage = res.Message;
|
|
IsProcessing = false;
|
|
IsBookingConfirmed = false;
|
|
IsBookingUnavailable = true;
|
|
}
|
|
|
|
}
|
|
#endregion
|
|
}
|
|
}
|