Initial Commit ...
This commit is contained in:
@@ -0,0 +1,405 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using xCommons.Extensions;
|
||||
using xExceptions.Constants;
|
||||
|
||||
namespace xCommons.Providers {
|
||||
public partial class XValidationProvider {
|
||||
private ICollection<System.Action> validationGroup;
|
||||
|
||||
//
|
||||
#region Simple Validators ...
|
||||
/// <summary>
|
||||
/// given objects must not null
|
||||
/// </summary>
|
||||
/// <param name="values"></param>
|
||||
public void NotNull (
|
||||
params object[] values) {
|
||||
//
|
||||
foreach (var o in values) {
|
||||
//
|
||||
if (o == null) {
|
||||
XException.InvalidArgs.Throw ();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// given strings must not empty or null
|
||||
/// </summary>
|
||||
/// <param name="values"></param>
|
||||
public void NotEmpty (
|
||||
params string[] values) {
|
||||
//
|
||||
foreach (var s in values) {
|
||||
//
|
||||
if (s.IsNullOrEmpty ()) {
|
||||
XException.InvalidArgs.Throw ();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Check a numeric value is bigger than 0
|
||||
/// </summary>
|
||||
/// <param name="values"></param>
|
||||
public void NotZero (
|
||||
params int[] values) {
|
||||
//
|
||||
foreach (var s in values) {
|
||||
//
|
||||
if (s == 0) {
|
||||
XException.InvalidArgs.Throw ();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Check a numeric value is bigger than 0
|
||||
/// </summary>
|
||||
/// <param name="values"></param>
|
||||
public void NotZero (
|
||||
params long[] values) {
|
||||
//
|
||||
foreach (var s in values) {
|
||||
//
|
||||
if (s == 0) {
|
||||
XException.InvalidArgs.Throw ();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Check a numeric value is bigger than 0
|
||||
/// </summary>
|
||||
/// <param name="values"></param>
|
||||
public void NotZero (
|
||||
params decimal[] values) {
|
||||
//
|
||||
foreach (var s in values) {
|
||||
//
|
||||
if (s == 0) {
|
||||
XException.InvalidArgs.Throw ();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Check a Value is a Valid Guid ...
|
||||
/// </summary>
|
||||
/// <param name="values"></param>
|
||||
public void IsGuid (params string[] values) {
|
||||
//
|
||||
foreach (var s in values) {
|
||||
//
|
||||
if (!s.IsGuid () || s.IsDefaultGuid ()) {
|
||||
XException.InvalidArgs.Throw ();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Check a Value is a Valid Guid ...
|
||||
/// </summary>
|
||||
/// <param name="values"></param>
|
||||
public void IsGuid (params Guid[] values) {
|
||||
//
|
||||
foreach (var s in values) {
|
||||
//
|
||||
if (s.IsNull () || s.IsDefaultGuid ()) {
|
||||
XException.InvalidArgs.Throw ();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Check a Value is an MD5 ...
|
||||
/// </summary>
|
||||
/// <param name="values"></param>
|
||||
public void IsMD5 (params string[] values) {
|
||||
//
|
||||
foreach (var s in values) {
|
||||
//
|
||||
if (!s.IsMD5String ()) {
|
||||
XException.InvalidArgs.Throw ();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// non zero childs
|
||||
/// </summary>
|
||||
/// <param name="values"></param>
|
||||
public void NotZeroChilds (
|
||||
params IEnumerable<object>[] values) {
|
||||
//
|
||||
foreach (var s in values) {
|
||||
//
|
||||
if (s == null ||
|
||||
s.Count () == 0) {
|
||||
XException.InvalidArgs.Throw ();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// non zero childs
|
||||
/// </summary>
|
||||
/// <param name="values"></param>
|
||||
public void NotZeroChilds (
|
||||
params ICollection<object>[] values) {
|
||||
//
|
||||
foreach (var s in values) {
|
||||
//
|
||||
if (s == null ||
|
||||
s.Count == 0) {
|
||||
XException.InvalidArgs.Throw ();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// given string must be a valid URL ...
|
||||
/// </summary>
|
||||
/// <param name="url"></param>
|
||||
/// <param name="exception"></param>
|
||||
public void Url (
|
||||
string url,
|
||||
Exception exception = null
|
||||
) {
|
||||
//
|
||||
NotEmpty (url);
|
||||
|
||||
//
|
||||
if (exception == null) {
|
||||
exception = XException.InavlidUrl.ToException ();
|
||||
}
|
||||
|
||||
//
|
||||
if (!url.IsValidUrl ()) {
|
||||
throw exception;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// given string must be a valid Email Address ...
|
||||
/// </summary>
|
||||
/// <param name="emailAdress"></param>
|
||||
/// <param name="exception"></param>
|
||||
public void EmailAddress (
|
||||
string emailAdress,
|
||||
Exception exception = null
|
||||
) {
|
||||
//
|
||||
NotEmpty (emailAdress);
|
||||
|
||||
//
|
||||
if (exception == null) {
|
||||
exception = XException.InvalidEmailAddress.ToException ();
|
||||
}
|
||||
|
||||
//
|
||||
if (!emailAdress.IsValidEmail ()) {
|
||||
throw exception;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// given string must be a valid Mobile Number ...
|
||||
/// </summary>
|
||||
/// <param name="mobileNumber"></param>
|
||||
/// <param name="exception"></param>
|
||||
public void MobileNumber (
|
||||
string mobileNumber,
|
||||
Exception exception = null
|
||||
) {
|
||||
//
|
||||
NotEmpty (mobileNumber);
|
||||
|
||||
//
|
||||
if (exception == null) {
|
||||
exception = XException.InvalidMobileNumber.ToException ();
|
||||
}
|
||||
|
||||
//
|
||||
if (!mobileNumber.IsValidMobileNumber ()) {
|
||||
throw exception;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
//
|
||||
#region Group Validatos ...
|
||||
public XValidationProvider GroupValidationBuilder () {
|
||||
//
|
||||
validationGroup = new List<System.Action> ();
|
||||
|
||||
//
|
||||
return this;
|
||||
}
|
||||
|
||||
public XValidationProvider AddNotEmpty (params string[] values) {
|
||||
//
|
||||
this.validationGroup.Add (() =>
|
||||
this.NotEmpty (values)
|
||||
);
|
||||
|
||||
//
|
||||
return this;
|
||||
}
|
||||
|
||||
public XValidationProvider AddNotNull (params object[] values) {
|
||||
//
|
||||
this.validationGroup.Add (() =>
|
||||
this.NotNull (values)
|
||||
);
|
||||
|
||||
//
|
||||
return this;
|
||||
}
|
||||
|
||||
public XValidationProvider AddNotZero (params int[] values) {
|
||||
//
|
||||
this.validationGroup.Add (() =>
|
||||
this.NotZero (values)
|
||||
);
|
||||
|
||||
//
|
||||
return this;
|
||||
}
|
||||
|
||||
public XValidationProvider AddNotZero (params long[] values) {
|
||||
//
|
||||
this.validationGroup.Add (() =>
|
||||
this.NotZero (values)
|
||||
);
|
||||
|
||||
//
|
||||
return this;
|
||||
}
|
||||
|
||||
public XValidationProvider AddNotZero (params decimal[] values) {
|
||||
//
|
||||
this.validationGroup.Add (() =>
|
||||
this.NotZero (values)
|
||||
);
|
||||
|
||||
//
|
||||
return this;
|
||||
}
|
||||
|
||||
public XValidationProvider AddIsGuid (params string[] values) {
|
||||
//
|
||||
this.validationGroup.Add (() =>
|
||||
this.IsGuid (values)
|
||||
);
|
||||
|
||||
//
|
||||
return this;
|
||||
}
|
||||
|
||||
public XValidationProvider AddIsGuid (params Guid[] values) {
|
||||
//
|
||||
this.validationGroup.Add (() =>
|
||||
this.IsGuid (values)
|
||||
);
|
||||
|
||||
//
|
||||
return this;
|
||||
}
|
||||
|
||||
public XValidationProvider AddIsMD5 (params string[] values) {
|
||||
//
|
||||
this.validationGroup.Add (() =>
|
||||
this.IsMD5 (values)
|
||||
);
|
||||
|
||||
//
|
||||
return this;
|
||||
}
|
||||
|
||||
public XValidationProvider AddNotZeroChilds (params IEnumerable<object>[] values) {
|
||||
//
|
||||
this.validationGroup.Add (() =>
|
||||
this.NotZeroChilds (values)
|
||||
);
|
||||
|
||||
//
|
||||
return this;
|
||||
}
|
||||
|
||||
public XValidationProvider AddNotZeroChilds (params ICollection<object>[] values) {
|
||||
//
|
||||
this.validationGroup.Add (() =>
|
||||
this.NotZeroChilds (values)
|
||||
);
|
||||
|
||||
//
|
||||
return this;
|
||||
}
|
||||
|
||||
public XValidationProvider AddEmailAddress (
|
||||
string emailAdress,
|
||||
Exception exception = null) {
|
||||
//
|
||||
this.validationGroup.Add (() =>
|
||||
this.EmailAddress (emailAdress, exception)
|
||||
);
|
||||
|
||||
//
|
||||
return this;
|
||||
}
|
||||
|
||||
public XValidationProvider AddMobileNumber (
|
||||
string mobileNumber,
|
||||
Exception exception = null) {
|
||||
//
|
||||
this.validationGroup.Add (() =>
|
||||
this.MobileNumber (mobileNumber, exception)
|
||||
);
|
||||
|
||||
//
|
||||
return this;
|
||||
}
|
||||
|
||||
public XValidationProvider AddUrl (
|
||||
string url,
|
||||
Exception exception = null) {
|
||||
//
|
||||
this.validationGroup.Add (() =>
|
||||
this.Url (url, exception)
|
||||
);
|
||||
|
||||
//
|
||||
return this;
|
||||
}
|
||||
|
||||
public void ValidateGroup () {
|
||||
//
|
||||
// Run each Tasks ...
|
||||
foreach (var action in validationGroup) {
|
||||
action.Invoke ();
|
||||
}
|
||||
|
||||
//
|
||||
// Clear Task List ...
|
||||
validationGroup.Clear ();
|
||||
}
|
||||
|
||||
public async Task ValidateGroupAsync () {
|
||||
//
|
||||
// Run each Tasks ...
|
||||
foreach (var action in validationGroup) {
|
||||
await Task.Run (action);
|
||||
}
|
||||
|
||||
//
|
||||
// Clear Task List ...
|
||||
validationGroup.Clear ();
|
||||
}
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user