|
using System.ComponentModel.DataAnnotations;
using System.Text.RegularExpressions;
namespace IssueVision.Data.Web
{
public sealed class IssueVisionServiceConstant
{
public const byte HighestPriority = 1;
public const byte LowestPriority = 4;
public const byte HighestSeverity = 1;
public const byte LowestSeverity = 4;
public const byte OpenStatusID = 0;
public const byte ActiveStatusID = 1;
public const byte ResolvedStatusID = 3;
public const string UserTypeAdmin = "Admin";
public const string UserTypeUser = "User";
}
public static partial class UserRules
{
/// <summary>
/// validate user email address
/// </summary>
/// <param name="email"></param>
/// <param name="validationContext"></param>
/// <returns></returns>
public static ValidationResult IsValidEmail(string email, ValidationContext validationContext)
{
// user Email can be null
if (email == null)
return ValidationResult.Success;
// Return true if strIn is in valid e-mail format.
if (Regex.IsMatch(email,
@"^(?("")("".+?""@)|(([0-9a-zA-Z]((\.(?!\.))|[-!#\$%&'\*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-zA-Z])@))" +
@"(?(\[)(\[(\d{1,3}\.){3}\d{1,3}\])|(([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,6}))$"))
return ValidationResult.Success;
else
return new ValidationResult(ErrorResources.ValidationErrorInvalidEmail, new string[] { "Email" });
}
}
public static partial class IssueRules
{
/// <summary>
/// When status is Resolved, the ResolutionID cannot be null or zero,
/// and when the status is not Resolved, the ResolutionID should be
/// either null or zero.
/// </summary>
/// <param name="issue"></param>
/// <param name="validationContext"></param>
/// <returns></returns>
public static ValidationResult CheckStatusResolved(Issue issue, ValidationContext validationContext)
{
if (issue.StatusID == IssueVisionServiceConstant.ResolvedStatusID &&
(issue.ResolutionID == null || issue.ResolutionID == 0))
return new ValidationResult(ErrorResources.IssueResolutionIsRequired, new string[] { "ResolutionID" });
if (issue.StatusID != IssueVisionServiceConstant.ResolvedStatusID &&
issue.ResolutionID != null && issue.ResolutionID != 0)
return new ValidationResult(ErrorResources.IssueResolutionIsNotNeeded, new string[] { "ResolutionID" });
return ValidationResult.Success;
}
/// <summary>
/// When status is Active, assigned-to-user cannot be null.
/// </summary>
/// <param name="issue"></param>
/// <param name="validationContext"></param>
/// <returns></returns>
public static ValidationResult CheckStatusActive(Issue issue, ValidationContext validationContext)
{
if (issue.StatusID == IssueVisionServiceConstant.ActiveStatusID && issue.AssignedToID == null)
return new ValidationResult(ErrorResources.AssignedToIDIsRequired, new string[] { "AssignedToID" });
return ValidationResult.Success;
}
/// <summary>
/// When status is Open, assigned-to-user should be null.
/// </summary>
/// <param name="issue"></param>
/// <param name="validationContext"></param>
/// <returns></returns>
public static ValidationResult CheckStatusOpen(Issue issue, ValidationContext validationContext)
{
if (issue.StatusID == IssueVisionServiceConstant.OpenStatusID && issue.AssignedToID != null)
return new ValidationResult(ErrorResources.AssignedToIDIsNotNeeded, new string[] { "AssignedToID" });
return ValidationResult.Success;
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
Weidong has been an information system professional since 1990. He has a Master's degree in Computer Science, and is currently a MCSD .NET