School Commit Init
This commit is contained in:
@@ -0,0 +1,116 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using District_3_App.ProfileSocialNetworkInfoStuff.Entities;
|
||||
|
||||
namespace District_3_App.ExtraInfo
|
||||
{
|
||||
public class Account
|
||||
{
|
||||
private string cardNumber;
|
||||
private string holderName;
|
||||
private string expirationDate;
|
||||
private string cvv;
|
||||
|
||||
// public UserExtraInfo UserExtraInfo { get; private set; }
|
||||
public User User { get; private set; }
|
||||
public string CardNumber
|
||||
{
|
||||
get => cardNumber;
|
||||
set
|
||||
{
|
||||
/*if (!IsNumeric(value) || value.Length != 16)
|
||||
{
|
||||
throw new ArgumentException("Card Number must be a string of 16 digits (numeric input only).");
|
||||
}*/
|
||||
cardNumber = value;
|
||||
}
|
||||
}
|
||||
|
||||
public string HolderName
|
||||
{
|
||||
get => holderName;
|
||||
set
|
||||
{
|
||||
/*if (!IsAlphabetic(value))
|
||||
{
|
||||
throw new ArgumentException("Holder Name must contain alphabetic characters only.");
|
||||
}*/
|
||||
holderName = value;
|
||||
}
|
||||
}
|
||||
|
||||
public string ExpirationDate
|
||||
{
|
||||
get => expirationDate;
|
||||
set
|
||||
{
|
||||
/*if (!IsValidExpirationDate(value))
|
||||
{
|
||||
throw new ArgumentException("Expiration Date must be in MM/YY format (numeric input only).");
|
||||
}*/
|
||||
expirationDate = value;
|
||||
}
|
||||
}
|
||||
|
||||
public string CVV
|
||||
{
|
||||
get => cvv;
|
||||
set
|
||||
{
|
||||
/*if (!IsNumeric(value) || value.Length != 3)
|
||||
{
|
||||
throw new ArgumentException("CVV must be a three-digit code (numeric input only).");
|
||||
}*/
|
||||
cvv = value;
|
||||
}
|
||||
}
|
||||
|
||||
public Account(User user, string cardNumber, string holderName, string expirationDate, string cvv)
|
||||
{
|
||||
User = user;
|
||||
CardNumber = cardNumber;
|
||||
HolderName = holderName;
|
||||
ExpirationDate = expirationDate;
|
||||
CVV = cvv;
|
||||
}
|
||||
|
||||
private bool IsNumeric(string value)
|
||||
{
|
||||
return long.TryParse(value, out _);
|
||||
}
|
||||
|
||||
private bool IsAlphabetic(string value)
|
||||
{
|
||||
return !string.IsNullOrWhiteSpace(value) && value.All(c => char.IsLetter(c) || char.IsWhiteSpace(c));
|
||||
}
|
||||
|
||||
private bool IsValidExpirationDate(string value)
|
||||
{
|
||||
if (value.Length != 5 || value[2] != '/')
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
string[] parts = value.Split('/');
|
||||
if (parts.Length != 2)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!int.TryParse(parts[0], out int month) || !int.TryParse(parts[1], out int year))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (month < 1 || month > 12 || year < DateTime.Now.Year % 100 || year > (DateTime.Now.Year % 100) + 10)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user