You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

144 lines
5.1 KiB

using GMCabsDriverAssistant.Models;
using GMCabsDriverAssistant.Utils;
using GMCabsDriverAssistant.ViewModels;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Maui;
using Microsoft.Maui.Controls;
using GMCabsDriverAssistantSolution.ViewModels;
namespace GMCabsDriverAssistant.Services
{
public class DispatchAppComponentService : BaseViewModel
{
#region Properties
public static DispatchAppComponentService _instance = null;
public static object chekLock = new object();
public static string startTripButtonText = "START TRIP";
public static string startTimeOrEndLocation = "";
public static string timerSeconds = "00:00:00";
public static bool meterTripStarted = false;
public static bool visibleTrip = false;
public static string startSuburb = "";
public static bool isOkButtonVisible = false;
public static bool isStartTripButtonVisible = true;
public static bool isPlotButtonVisible = true;
public static string pickUpDateTimeOrEndSuburb = "";
public static bool isTripStarted = false;
public static bool isTripEndeded = false;
public static int seconds = 0;
public static int autocloseOkSecond = 30;
public static string bluetoothConnectionStatusText;
public static string imageIcon = "avail_button.png";
#endregion
#region Constructor
private DispatchAppComponentService()
{
}
public static DispatchAppComponentService Instance
{
get
{
lock (chekLock)
{
if (_instance == null)
_instance = new DispatchAppComponentService();
return _instance;
}
}
}
#endregion
#region Methods
public static void ManageDriverTrip(bool fromMeter)
{
if (startTripButtonText.Equals("START TRIP"))
{
startTimeOrEndLocation = "Start Time";
startTrip(fromMeter);
timerSeconds = "00:00:00";
}
else if (startTripButtonText.Equals("DROP OFF"))
{
startTimeOrEndLocation = "Ending At";
endTrip(fromMeter);
isOkButtonVisible = true;
}
}
private static void startTrip(bool fromMeter)
{
meterTripStarted = true;
imageIcon = "busy_button.png";
visibleTrip = true;
pickUpDateTimeOrEndSuburb = DateTime.Now.ToString("dd MMM hh:mm tt");
startTripButtonText = "DROP OFF";
Preferences.Set("MeterRunningStatus", "Running");
}
private static void endTrip(bool fromMeter)
{
meterTripStarted = true;
imageIcon = "avail_button.png";
isStartTripButtonVisible = false;
Preferences.Set("MeterRunningStatus", "Stopped");
}
public async static Task<string> GetSuburbName(bool fromMeter, bool isStart)
{
int statusflags = 0;
var token = Preferences.Get(SecureStorageData.Token,"");
if (isStart)
statusflags = Constant.DRIVER_STATUS_ON_TRIP;
else
statusflags = Constant.DRIVER_STATUS_AVAILABLE;
GMCabsDriverService gmCabsDriverService = new GMCabsDriverService();
var suburbName = await gmCabsDriverService.UpdateBookingStatus(token, statusflags, fromMeter);
return suburbName;
}
public static void StartTrip(int seconds)
{
++seconds;
timerSeconds = (seconds / 3600 <= 9 ? "0" + seconds / 3600 : "" + seconds / 3600) + ":" + ((seconds % 3600) / 60 <= 9 ? "0" + (seconds % 3600) / 60 : "" + (seconds % 3600) / 60) + ":" + (seconds % 60 <= 9 ? "0" + seconds % 60 : "" + seconds % 60);
}
public static void OnOkClick()
{
visibleTrip = false;
startTripButtonText = "START TRIP";
isStartTripButtonVisible = true;
isOkButtonVisible = false;
Preferences.Set("MeterRunningStatus", "");
}
public static string MeterStartTrip()
{
startTripButtonText = "START TRIP";
return startTripButtonText;
}
public static string MeterEndTrip()
{
startTripButtonText = "DROP OFF";
return startTripButtonText;
}
public static void SetToInitialProperties()
{
startTripButtonText = "START TRIP";
startTimeOrEndLocation = "";
timerSeconds = "00:00:00";
meterTripStarted = false;
imageIcon = "avail_button.png";
visibleTrip = false;
startSuburb = "";
isOkButtonVisible = false;
isStartTripButtonVisible = true;
pickUpDateTimeOrEndSuburb = "";
isTripStarted = false;
isTripEndeded = false;
seconds = 0;
autocloseOkSecond = 30;
}
#endregion
}
}