150 lines
6.2 KiB
C#
150 lines
6.2 KiB
C#
using AyCode.Entities.Locations;
|
|
using AyCode.Interfaces.TimeStampInfo;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel.DataAnnotations;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Text.RegularExpressions;
|
|
using System.Threading.Tasks;
|
|
using TIAM.Entities.Transfers;
|
|
using TIAM.Resources;
|
|
|
|
namespace TIAMWebApp.Shared.Application.Models.ClientSide.UI.WizardModels
|
|
{
|
|
public class TransferWizardModel
|
|
{
|
|
public Guid Id { get; set; }
|
|
public Guid UserId { get; set; }
|
|
public Guid? ProductId { get; set; }
|
|
public Guid UserProductMappingId { get; set; }
|
|
|
|
public Guid UserProductToCarId { get; set; }
|
|
|
|
public Guid? ReferralId { get; set; }
|
|
|
|
#region wizard fields
|
|
[Destination(ErrorMessage = "The destination value is invalid.")]
|
|
[DataType("TransferDestination")]
|
|
[Display(Name = ResourceKeys.Destination, ResourceType = typeof(TIAMResources))]
|
|
public string? Destination { get; set; }
|
|
|
|
|
|
[DataType("TransferDestination")]
|
|
[Display(Name = ResourceKeys.PickupAddress, ResourceType = typeof(TIAMResources))]
|
|
public string? PickupAddress { get; set; }
|
|
|
|
//Flight number
|
|
[DataType(DataType.Text)]
|
|
[Display(Name = ResourceKeys.FlightNumber + " " + ResourceKeys.Optional, ResourceType = typeof(TIAMResources))]
|
|
public string? FlightNumber { get; set; }
|
|
|
|
[Required(ErrorMessage = "The pickup time should be specified.")]
|
|
[DataType(DataType.Date)]
|
|
[Display(Name = ResourceKeys.PickupTime, ResourceType = typeof(TIAMResources))]
|
|
public DateTime TripDate { get; set; } = DateTime.UtcNow.AddDays(2);
|
|
|
|
[Required(ErrorMessage = "The amount of passengers should be specified.")]
|
|
[DataType("Int")]
|
|
[Display(Name = ResourceKeys.NumberOfPassengers, ResourceType = typeof(TIAMResources))]
|
|
public int NumberOfPassengers { get; set; } = 1;
|
|
|
|
[Required(ErrorMessage = "The amount of luggage should be specified.")]
|
|
[DataType("Int")]
|
|
[Display(Name = ResourceKeys.NumberOfLuggage, ResourceType = typeof(TIAMResources))]
|
|
public int NumberOfLuggage { get; set; } = 1;
|
|
|
|
//full name
|
|
[Required(ErrorMessage = "The name should be specified.")]
|
|
[DataType("FullName")]
|
|
[Display(Name = ResourceKeys.FullName, ResourceType = typeof(TIAMResources))]
|
|
public string? FullName => GetFullName();
|
|
|
|
public string? FirstName { get; set; }
|
|
public string? LastName { get; set; }
|
|
|
|
//phone number
|
|
[Required(ErrorMessage = "The phone number should be specified.")]
|
|
[DataType(DataType.PhoneNumber)]
|
|
[Display(Name = ResourceKeys.PhoneNumber, ResourceType = typeof(TIAMResources))]
|
|
public string? PhoneNumber { get; set; }
|
|
|
|
//email address
|
|
[Required(ErrorMessage = "The email address should be specified.")]
|
|
[DataType(DataType.EmailAddress)]
|
|
[Display(Name = ResourceKeys.EmailAddress, ResourceType = typeof(TIAMResources))]
|
|
public string? EmailAddress { get; set; }
|
|
|
|
[DataType("Price")]
|
|
[Display(Name = ResourceKeys.Price, ResourceType = typeof(TIAMResources))]
|
|
public double? Price { get; set;}
|
|
|
|
[DataType(DataType.MultilineText)]
|
|
[Display(Name = ResourceKeys.Comment, ResourceType = typeof(TIAMResources))]
|
|
public string? Comment { get; set; }
|
|
|
|
//[DataType("Driver")]
|
|
//[Display(Name = ResourceKeys.Driver, ResourceType = typeof(TIAMResources))]
|
|
//public DriverModel Driver { get; set; }
|
|
|
|
#endregion wizard fields
|
|
|
|
|
|
|
|
public TransferWizardModel() { }
|
|
public TransferWizardModel(string destination, string pickupAddress) : this(Guid.NewGuid(), destination, pickupAddress) { }
|
|
public TransferWizardModel(Guid id, string destination, string pickupAddress) {
|
|
Destination = destination;
|
|
PickupAddress = pickupAddress;
|
|
}
|
|
|
|
public TransferWizardModel(string destination, string pickupAddress, DateTime tripDate, int numberOfPassengers, string firstName, string lastName, string phoneNumber, string emailAddress) : this(Guid.NewGuid(), destination, pickupAddress, tripDate, numberOfPassengers, firstName, lastName, phoneNumber, emailAddress) { }
|
|
|
|
|
|
public TransferWizardModel(Guid id, string destination, string pickupAddress, DateTime tripDate, int numberOfPassengers, string firstName, string lastName, string phoneNumber, string emailAddress)
|
|
{
|
|
Id = id;
|
|
Destination = destination;
|
|
PickupAddress = pickupAddress;
|
|
TripDate = tripDate;
|
|
NumberOfPassengers = numberOfPassengers;
|
|
FirstName = firstName;
|
|
LastName = lastName;
|
|
PhoneNumber = phoneNumber;
|
|
EmailAddress = emailAddress;
|
|
}
|
|
|
|
public TransferWizardModel(string destination, string pickupAddress, DateTime tripDate, int numberOfPassengers, string firstName, string lastName, string phoneNumber, string emailAddress, DriverModel driver) : this(Guid.NewGuid(), destination, pickupAddress, tripDate, numberOfPassengers, firstName, lastName, phoneNumber, emailAddress, driver) { }
|
|
|
|
|
|
public TransferWizardModel(Guid id, string destination, string pickupAddress, DateTime tripDate, int numberOfPassengers, string firstName, string lastName, string phoneNumber, string emailAddress, DriverModel driver)
|
|
{
|
|
Id = id;
|
|
Destination = destination;
|
|
PickupAddress = pickupAddress;
|
|
TripDate = tripDate;
|
|
NumberOfPassengers = numberOfPassengers;
|
|
FirstName = firstName;
|
|
LastName = lastName;
|
|
PhoneNumber = phoneNumber;
|
|
EmailAddress = emailAddress;
|
|
//Driver = driver;
|
|
}
|
|
|
|
public string GetFullName()
|
|
{
|
|
return FirstName + " " + LastName;
|
|
}
|
|
|
|
|
|
}
|
|
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = false)]
|
|
public class DestinationAttribute : ValidationAttribute
|
|
{
|
|
public override bool IsValid(object value)
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
}
|