DataModels
This commit is contained in:
parent
940056695c
commit
bf8eece4e6
@ -0,0 +1,35 @@
|
||||
using System.Text.RegularExpressions;
|
||||
using PimpMyRideContracts.Exceptions;
|
||||
using PimpMyRideContracts.Extensions;
|
||||
using PimpMyRideContracts.Infrastructure;
|
||||
|
||||
namespace PimpMyRideContracts.DataModels;
|
||||
|
||||
public class CarDataModel(string carId, string carMark, string carModel, string carNumber) : IValidation
|
||||
{
|
||||
public string CarId { get; private set; } = carId;
|
||||
public string CarMark { get; private set; } = carMark;
|
||||
public string CarModel { get; private set; } = carModel;
|
||||
public string CarNumber { get; private set; } = carNumber;
|
||||
|
||||
public void Validate()
|
||||
{
|
||||
if (CarId.IsEmpty())
|
||||
throw new ValidationException("Field CarId is empty");
|
||||
|
||||
if (!CarId.IsGuid())
|
||||
throw new ValidationException("The value in the field CarId is not a unique identifier");
|
||||
|
||||
if (CarMark.IsEmpty())
|
||||
throw new ValidationException("Field CarMark is empty");
|
||||
|
||||
if (CarModel.IsEmpty())
|
||||
throw new ValidationException("Field CarModel is empty");
|
||||
|
||||
if (CarNumber.IsEmpty())
|
||||
throw new ValidationException("Field CarNumber is empty");
|
||||
|
||||
if (!Regex.IsMatch(CarNumber, @"^[АВЕКМНОРСТУХ]\d{3}(?<!000)[АВЕКМНОРСТУХ]{2}\d{2,3}$"))
|
||||
throw new ValidationException("Field CarNumber is not a car number");
|
||||
}
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
using PimpMyRideContracts.Enums;
|
||||
using PimpMyRideContracts.Exceptions;
|
||||
using PimpMyRideContracts.Extensions;
|
||||
using PimpMyRideContracts.Infrastructure;
|
||||
|
||||
namespace PimpMyRideContracts.DataModels;
|
||||
|
||||
public class OperationDataModel(string operationId, OperationType operationType, List<OperationSupplieDataModel> supplies) : IValidation
|
||||
{
|
||||
public string OperationId { get; private set; } = operationId;
|
||||
public OperationType OperationType { get; private set; } = operationType;
|
||||
public List<OperationSupplieDataModel> Supplies { get; private set; } = supplies;
|
||||
|
||||
public void Validate()
|
||||
{
|
||||
if (OperationId.IsEmpty())
|
||||
throw new ValidationException("Field OperationId is empty");
|
||||
|
||||
if (!OperationId.IsGuid())
|
||||
throw new ValidationException("The value in the field OperationId is not a unique identifier");
|
||||
|
||||
if ((Supplies?.Count ?? 0) == 0)
|
||||
throw new ValidationException("The operation must include supplies");
|
||||
}
|
||||
}
|
@ -0,0 +1,30 @@
|
||||
using PimpMyRideContracts.Exceptions;
|
||||
using PimpMyRideContracts.Extensions;
|
||||
using PimpMyRideContracts.Infrastructure;
|
||||
|
||||
namespace PimpMyRideContracts.DataModels;
|
||||
|
||||
public class OperationSupplieDataModel(string operationId, string supplieId, int supplieCount) : IValidation
|
||||
{
|
||||
public string OperationId { get; private set; } = operationId;
|
||||
public string SupplieId { get; private set; } = supplieId;
|
||||
public int SupplieCount { get; private set; } = supplieCount;
|
||||
|
||||
public void Validate()
|
||||
{
|
||||
if (OperationId.IsEmpty())
|
||||
throw new ValidationException("Field OperationId is empty");
|
||||
|
||||
if (!OperationId.IsGuid())
|
||||
throw new ValidationException("The value in the field OperationId is not a unique identifier");
|
||||
|
||||
if (SupplieId.IsEmpty())
|
||||
throw new ValidationException("Field SupplieId is empty");
|
||||
|
||||
if (!SupplieId.IsGuid())
|
||||
throw new ValidationException("The value in the field SupplieId is not a unique identifier");
|
||||
|
||||
if (SupplieCount <= 0)
|
||||
throw new ValidationException("The value in field SupplieCount less ot equal 0");
|
||||
}
|
||||
}
|
@ -0,0 +1,37 @@
|
||||
using PimpMyRideContracts.Exceptions;
|
||||
using PimpMyRideContracts.Extensions;
|
||||
using PimpMyRideContracts.Infrastructure;
|
||||
|
||||
namespace PimpMyRideContracts.DataModels;
|
||||
|
||||
public class ServiceDataModel(string serviceId, string workerId, string carId, List<ServiceOperationDataModel> operations) : IValidation
|
||||
{
|
||||
public string ServiceId { get; private set; } = serviceId;
|
||||
public string WorkerId { get; private set; } = workerId;
|
||||
public string CarId { get; private set; } = carId;
|
||||
public List<ServiceOperationDataModel> Operations { get; private set; } = operations;
|
||||
|
||||
public void Validate()
|
||||
{
|
||||
if (ServiceId.IsEmpty())
|
||||
throw new ValidationException("Field ServiceId is empty");
|
||||
|
||||
if (!ServiceId.IsGuid())
|
||||
throw new ValidationException("The value in the field ServiceId is not a unique identifier");
|
||||
|
||||
if (WorkerId.IsEmpty())
|
||||
throw new ValidationException("Field WorkerId is empty");
|
||||
|
||||
if (!WorkerId.IsGuid())
|
||||
throw new ValidationException("The value in the field WorkerId is not a unique identifier");
|
||||
|
||||
if (CarId.IsEmpty())
|
||||
throw new ValidationException("Field CarId is empty");
|
||||
|
||||
if (!CarId.IsGuid())
|
||||
throw new ValidationException("The value in the field CarId is not a unique identifier");
|
||||
|
||||
if ((Operations?.Count ?? 0) == 0)
|
||||
throw new ValidationException("The service must include operations");
|
||||
}
|
||||
}
|
@ -0,0 +1,26 @@
|
||||
using PimpMyRideContracts.Exceptions;
|
||||
using PimpMyRideContracts.Extensions;
|
||||
using PimpMyRideContracts.Infrastructure;
|
||||
|
||||
namespace PimpMyRideContracts.DataModels;
|
||||
|
||||
public class ServiceOperationDataModel(string serviceId, string operationId) : IValidation
|
||||
{
|
||||
public string ServiceId { get; private set; } = serviceId;
|
||||
public string OperationId { get; private set; } = operationId;
|
||||
|
||||
public void Validate()
|
||||
{
|
||||
if(OperationId.IsEmpty())
|
||||
throw new ValidationException("Field OperationId is empty");
|
||||
|
||||
if (!OperationId.IsGuid())
|
||||
throw new ValidationException("The value in the field OperationId is not a unique identifier");
|
||||
|
||||
if(ServiceId.IsEmpty())
|
||||
throw new ValidationException("Field ServiceId is empty");
|
||||
|
||||
if (!ServiceId.IsGuid())
|
||||
throw new ValidationException("The value in the field ServiceId is not a unique identifier");
|
||||
}
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
using PimpMyRideContracts.Enums;
|
||||
using PimpMyRideContracts.Exceptions;
|
||||
using PimpMyRideContracts.Extensions;
|
||||
using PimpMyRideContracts.Infrastructure;
|
||||
|
||||
namespace PimpMyRideContracts.DataModels;
|
||||
|
||||
public class SuppliesDataModel(string supplieId, string supplieName, SuppliesType supplieType) : IValidation
|
||||
{
|
||||
public string SupplieId { get; private set; } = supplieId;
|
||||
public string SupplieName { get; private set; } = supplieName;
|
||||
public SuppliesType SupplieType { get; private set; } = supplieType;
|
||||
|
||||
public void Validate()
|
||||
{
|
||||
if (SupplieId.IsEmpty())
|
||||
throw new ValidationException("Field SupplieId is empty");
|
||||
|
||||
if (!SupplieId.IsGuid())
|
||||
throw new ValidationException("The value in the field SupplieId is not a unique identifier");
|
||||
|
||||
if (SupplieName.IsEmpty())
|
||||
throw new ValidationException("Field SupplieName is empty");
|
||||
|
||||
if (SupplieType == SuppliesType.None)
|
||||
throw new ValidationException("Field SupplieType is empty");
|
||||
}
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
using PimpMyRideContracts.Enums;
|
||||
using PimpMyRideContracts.Exceptions;
|
||||
using PimpMyRideContracts.Extensions;
|
||||
using PimpMyRideContracts.Infrastructure;
|
||||
|
||||
namespace PimpMyRideContracts.DataModels;
|
||||
|
||||
public class WorkerDataModel(string workerId, string workerFIO, PostType postType) : IValidation
|
||||
{
|
||||
public string WorkerId { get; private set; } = workerId;
|
||||
public string WorkerFIO { get; private set; } = workerFIO;
|
||||
public PostType PostType { get; private set; } = postType;
|
||||
|
||||
public void Validate()
|
||||
{
|
||||
if (WorkerId.IsEmpty())
|
||||
throw new ValidationException("Field WorkerId is empty");
|
||||
|
||||
if (!WorkerId.IsGuid())
|
||||
throw new ValidationException("The value in the field WorkerId is not a unique identifier");
|
||||
|
||||
if (WorkerFIO.IsEmpty())
|
||||
throw new ValidationException("Field WorkerFIO is empty");
|
||||
|
||||
if (PostType == PostType.None)
|
||||
throw new ValidationException("Field PostType is empty");
|
||||
}
|
||||
}
|
11
PimpMyRideProject/PimpMyRideContracts/Enums/OperationType.cs
Normal file
11
PimpMyRideProject/PimpMyRideContracts/Enums/OperationType.cs
Normal file
@ -0,0 +1,11 @@
|
||||
namespace PimpMyRideContracts.Enums;
|
||||
|
||||
public enum OperationType
|
||||
{
|
||||
None = 0,
|
||||
TireReplacement = 1,
|
||||
PistonReplacement = 2,
|
||||
TimingBeltReplacing = 3,
|
||||
OilChange = 4,
|
||||
BodyPainting = 5
|
||||
}
|
13
PimpMyRideProject/PimpMyRideContracts/Enums/PostType.cs
Normal file
13
PimpMyRideProject/PimpMyRideContracts/Enums/PostType.cs
Normal file
@ -0,0 +1,13 @@
|
||||
namespace PimpMyRideContracts.Enums;
|
||||
|
||||
public enum PostType
|
||||
{
|
||||
None = 0,
|
||||
CarMechanic = 1,
|
||||
CarElectrician = 2,
|
||||
Straightener = 3,
|
||||
BodyRepairSpecialist = 4,
|
||||
TireFitter = 5,
|
||||
CarDiagnosticTechnician = 6,
|
||||
CarAirConditioningSpecialist = 7
|
||||
}
|
13
PimpMyRideProject/PimpMyRideContracts/Enums/SuppliesType.cs
Normal file
13
PimpMyRideProject/PimpMyRideContracts/Enums/SuppliesType.cs
Normal file
@ -0,0 +1,13 @@
|
||||
namespace PimpMyRideContracts.Enums;
|
||||
|
||||
public enum SuppliesType
|
||||
{
|
||||
None = 0,
|
||||
Suspension = 1,
|
||||
Engine = 2,
|
||||
Gearbox = 3,
|
||||
Tires = 4,
|
||||
Rims = 5,
|
||||
Electronics = 6,
|
||||
Body = 7
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
namespace PimpMyRideContracts.Exceptions;
|
||||
|
||||
public class ValidationException(string message) : Exception(message)
|
||||
{
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
namespace PimpMyRideContracts.Extensions;
|
||||
|
||||
public static class StringExtensions
|
||||
{
|
||||
public static bool IsEmpty(this string str)
|
||||
{
|
||||
return string.IsNullOrWhiteSpace(str);
|
||||
}
|
||||
|
||||
public static bool IsGuid(this string str)
|
||||
{
|
||||
return Guid.TryParse(str, out _);
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
namespace PimpMyRideContracts.Infrastructure;
|
||||
|
||||
public interface IValidation
|
||||
{
|
||||
void Validate();
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user