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.
 

154 lines
4.6 KiB

using GMCabsDriverAssistant.Models;
using GMCabsDriverAssistant.Services;
using GMCabsDriverAssistantSolution.Views;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GMCabsDriverAssistantSolution.ViewModels
{
[QueryProperty(nameof(PhoneNumber), nameof(PhoneNumber))]
public class UserSignUpViewModel : BaseViewModel
{
#region Fields
private string driverslicence;
private string password;
private string firstname;
private string lastname;
private string email;
private string message;
private string phoneNumber;
#endregion
#region Properties
public string DriverLicence
{
get => driverslicence;
set
{
SetProperty(ref driverslicence, value);
ErrorMessage = string.Empty;
}
}
public string Password
{
get => password;
set
{
SetProperty(ref password, value);
ErrorMessage = string.Empty;
}
}
public string FirstName
{
get => firstname;
set
{
SetProperty(ref firstname, value);
ErrorMessage = string.Empty;
}
}
public string LastName
{
get => lastname;
set
{
SetProperty(ref lastname, value);
ErrorMessage = string.Empty;
}
}
public string Email
{
get => email;
set
{
SetProperty(ref email, value);
ErrorMessage = string.Empty;
}
}
public string ErrorMessage
{
get => message;
set => SetProperty(ref message, value);
}
public Command SignUpCommand { get; }
public string PhoneNumber
{
get => phoneNumber;
set
{
SetProperty(ref phoneNumber, value);
ErrorMessage = string.Empty;
}
}
#endregion
#region Constructor
public UserSignUpViewModel()
{
SignUpCommand = new Command(OnSignUpClicked);
#if DEBUG
#endif
}
#endregion
#region Methods
private async void OnSignUpClicked(object obj)
{
CreateLightDriverRequest createLightDriverRequest = new CreateLightDriverRequest();
ErrorMessage = "";
if (string.IsNullOrWhiteSpace(DriverLicence))
{
ErrorMessage = "Driver Licence required for Sign-Up";
return;
}
if (string.IsNullOrWhiteSpace(FirstName))
{
ErrorMessage = "First Name required for Sign-Up";
return;
}
if (string.IsNullOrWhiteSpace(LastName))
{
ErrorMessage = "Last Name required for Sign-Up";
return;
}
if (string.IsNullOrWhiteSpace(PhoneNumber))
{
ErrorMessage = "Mobile required for Sign-Up";
return;
}
if (string.IsNullOrWhiteSpace(Password))
{
ErrorMessage = "Password required for Sign-Up";
return;
}
if (string.IsNullOrWhiteSpace(Email))
{
ErrorMessage = "Email required for Sign-Up";
return;
}
IsBusy = true;
createLightDriverRequest.DriverLicence = DriverLicence;
createLightDriverRequest.FirstName = FirstName;
createLightDriverRequest.LastName = LastName;
createLightDriverRequest.Password = Password;
createLightDriverRequest.Email = Email;
createLightDriverRequest.MobileNumber = PhoneNumber;
GMCabsDriverService gmCabsDriverService = new GMCabsDriverService();
bool result = await gmCabsDriverService.CreateLightDriver(createLightDriverRequest);
if (result)
{
IsBusy = false;
await Shell.Current.GoToAsync($"//{nameof(LoginPage)}/{nameof(UserSignUpPage)}/{nameof(UserRegistrationVerifyOtpPage)}?{nameof(UserSignUpViewModel.PhoneNumber)}={PhoneNumber}");
}
else
{
IsBusy = false;
ErrorMessage = "Sign Up falied";
return;
}
}
#endregion
}
}