Added some data annotations to validate SetupViewModel

--HG--
branch : dev
This commit is contained in:
Erik Porter
2010-02-04 14:54:55 -08:00
parent ec8df71e50
commit fd68c90349
4 changed files with 48 additions and 0 deletions

View File

@@ -111,6 +111,8 @@
<Compile Include="Scheduling\Models\Task.cs" />
<Compile Include="Settings\Controllers\SiteSettingsDriver.cs" />
<Compile Include="Settings\Permissions.cs" />
<Compile Include="Setup\Annotations\SqlDatabaseConnectionStringAttribute.cs" />
<Compile Include="Setup\Annotations\StringLengthMin.cs" />
<Compile Include="Setup\Controllers\SetupController.cs" />
<Compile Include="Setup\Routes.cs" />
<Compile Include="Setup\Services\ISetupService.cs" />

View File

@@ -0,0 +1,21 @@
using System.ComponentModel.DataAnnotations;
using System.Data.SqlClient;
namespace Orchard.Core.Setup.Annotations {
public class SqlDatabaseConnectionStringAttribute : ValidationAttribute {
public override bool IsValid(object value) {
if (value is string && ((string)value).Length > 0) {
try {
var connectionStringBuilder = new SqlConnectionStringBuilder(value as string);
//TODO: (erikpo) Should the keys be checked here to ensure that a valid combination was entered? Needs investigation.
}
catch {
return false;
}
}
return true;
}
}
}

View File

@@ -0,0 +1,19 @@
using System;
using System.ComponentModel.DataAnnotations;
namespace Orchard.Core.Setup.Annotations {
public class StringLengthMin : ValidationAttribute {
private readonly int _minimumLength;
public StringLengthMin(int minimumLength) {
_minimumLength = minimumLength;
if (minimumLength <= 1)
throw new ArgumentException("Value must be greater than or equal to 2", "minimumLength");
}
public override bool IsValid(object value) {
return !(value is string) || (value as string).Length >= _minimumLength;
}
}
}

View File

@@ -1,10 +1,16 @@
using System.ComponentModel.DataAnnotations;
using Orchard.Core.Setup.Annotations;
using Orchard.Mvc.ViewModels;
namespace Orchard.Core.Setup.ViewModels {
public class SetupViewModel : BaseViewModel {
[Required, StringLength(70)]
public string SiteName { get; set; }
[StringLengthMin(3), StringLength(25)]
public string AdminUsername { get; set; }
[StringLengthMin(6), StringLength(20)]
public string AdminPassword { get; set; }
[SqlDatabaseConnectionString]
public string DatabaseConnectionString { get; set; }
}
}