localizing bug record creations
This commit is contained in:
@ -4,17 +4,16 @@ namespace Yavsc.Attributes.Validation
|
|||||||
{
|
{
|
||||||
public class YaStringLength: YaValidationAttribute
|
public class YaStringLength: YaValidationAttribute
|
||||||
{
|
{
|
||||||
public long MinLen { get; set; } = -1;
|
public long MinimumLength { get; set; } = -1;
|
||||||
private long maxLen;
|
private long maxLen;
|
||||||
public YaStringLength(long maxLen) : base(
|
public YaStringLength(long maxLen) : base( ()=> "BadStringLength")
|
||||||
()=>
|
|
||||||
"BadStringLength")
|
|
||||||
{
|
{
|
||||||
this.maxLen = maxLen;
|
this.maxLen = maxLen;
|
||||||
}
|
}
|
||||||
|
|
||||||
private long excedent=0;
|
// hugly ...
|
||||||
private long manquant=0;
|
static long excedent=0;
|
||||||
|
static long manquant=0;
|
||||||
|
|
||||||
public override bool IsValid(object value) {
|
public override bool IsValid(object value) {
|
||||||
|
|
||||||
@ -24,23 +23,24 @@ namespace Yavsc.Attributes.Validation
|
|||||||
|
|
||||||
string stringValue = value as string;
|
string stringValue = value as string;
|
||||||
if (stringValue==null) return false;
|
if (stringValue==null) return false;
|
||||||
if (MinLen>=0)
|
if (MinimumLength>=0)
|
||||||
{
|
{
|
||||||
if (stringValue.Length<MinLen)
|
if (stringValue.Length< MinimumLength)
|
||||||
{
|
|
||||||
manquant = MinLen-stringValue.Length;
|
|
||||||
}
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (maxLen>=0)
|
if (maxLen>=0)
|
||||||
{
|
{
|
||||||
if (stringValue.Length>maxLen) {
|
if (stringValue.Length>maxLen) {
|
||||||
excedent = stringValue.Length-maxLen;
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
public override string FormatErrorMessage(string name)
|
||||||
|
{
|
||||||
|
var temp = base.FormatErrorMessage(name);
|
||||||
|
return string.Format(temp, MinimumLength, maxLen);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -15,18 +15,32 @@ namespace Yavsc.Attributes.Validation
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Get given string from resources
|
||||||
|
/// specified by ErrorMessageResourceType
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="stringName"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public virtual string GetResourceString(string stringName)
|
||||||
|
{
|
||||||
|
var prop = this.ErrorMessageResourceType.GetProperty(stringName);
|
||||||
|
if (prop==null)
|
||||||
|
{
|
||||||
|
return " !e! noprop "+stringName+" in "+ErrorMessageResourceType.Name;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return (string) prop.GetValue(null, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public override string FormatErrorMessage(string name)
|
public override string FormatErrorMessage(string name)
|
||||||
{
|
{
|
||||||
if (ErrorMessageResourceType == null) // failed :/
|
if (ErrorMessageResourceType == null) // failed :/
|
||||||
return name;
|
return base.FormatErrorMessage(name);
|
||||||
if (ErrorMessageResourceName == null) // re failed :/
|
if (ErrorMessageResourceName == null) // re failed :/
|
||||||
return name;
|
return base.FormatErrorMessage(name);
|
||||||
|
|
||||||
var prop = this.ErrorMessageResourceType.GetProperty(ErrorMessageResourceName);
|
return GetResourceString(ErrorMessageResourceName);
|
||||||
if (prop==null) // re re failed :/
|
|
||||||
return "noprop "+ErrorMessageResourceName+" in "+ErrorMessageResourceType.Name;
|
|
||||||
return (string) prop.GetValue(null, null);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -15,10 +15,14 @@ namespace Yavsc.Models.IT.Fixing
|
|||||||
|
|
||||||
public long? FeatureId { get; set; }
|
public long? FeatureId { get; set; }
|
||||||
|
|
||||||
[StringLength(240, ErrorMessageResourceType=typeof(Yavsc.Models.IT.Fixing.Bug), ErrorMessageResourceName="TitleTooLong")]
|
[YaStringLength(240, MinimumLength=4 ,
|
||||||
|
ErrorMessageResourceType=typeof(Yavsc.Models.IT.Fixing.Bug),
|
||||||
|
ErrorMessageResourceName="TitleSizeError")]
|
||||||
public string Title { get; set; }
|
public string Title { get; set; }
|
||||||
|
|
||||||
[StringLength(4096)]
|
[YaStringLength(4096,
|
||||||
|
ErrorMessageResourceType=typeof(Yavsc.Models.IT.Fixing.Bug),
|
||||||
|
ErrorMessageResourceName="DescSizeError")]
|
||||||
public string Description { get; set; }
|
public string Description { get; set; }
|
||||||
|
|
||||||
public BugStatus Status { get; set; }
|
public BugStatus Status { get; set; }
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
//------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <autogenerated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
// Runtime Version:4.0.30319.42000
|
// Mono Runtime Version: 4.0.30319.42000
|
||||||
//
|
//
|
||||||
// Changes to this file may cause incorrect behavior and will be lost if
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
// the code is regenerated.
|
// the code is regenerated.
|
||||||
// </auto-generated>
|
// </autogenerated>
|
||||||
//------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------
|
||||||
|
|
||||||
namespace Yavsc.Models.IT.Fixing {
|
namespace Yavsc.Models.IT.Fixing {
|
||||||
using System;
|
using System;
|
||||||
@ -43,9 +43,15 @@ namespace Yavsc.Models.IT.Fixing {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string TitleTooLong {
|
public static string TitleSizeError {
|
||||||
get {
|
get {
|
||||||
return ResourceManager.GetString("TitleTooLong", resourceCulture);
|
return ResourceManager.GetString("TitleSizeError", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string DescSizeError {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("DescSizeError", resourceCulture);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -58,5 +58,8 @@
|
|||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="TitleTooLong" comment="bug title validation"><value>The title is too long</value></data>
|
|
||||||
|
<data name="TitleSizeError" comment="bug title validation"><value>The title is too long ({0}..{1})</value></data>
|
||||||
|
<data name="DescSizeError" comment="bug title validation"><value>The description field is too long ({0} to {1})</value></data>
|
||||||
|
|
||||||
</root>
|
</root>
|
@ -1,65 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<root>
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
|
||||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:choice maxOccurs="unbounded">
|
|
||||||
<xsd:element name="metadata">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="assembly">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:attribute name="alias" type="xsd:string" />
|
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="data">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="resheader">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:choice>
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:schema>
|
|
||||||
<resheader name="resmimetype">
|
|
||||||
<value>text/microsoft-resx</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="version">
|
|
||||||
<value>2.0</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="reader">
|
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="writer">
|
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<!--
|
|
||||||
route name for the api controller used to tag the 'BlogPost' entity
|
|
||||||
-->
|
|
||||||
<data name="TitleTooLong" comment="validation du titre d'un bug"><value>Le titre est trop long</value></data>
|
|
||||||
</root>
|
|
@ -58,5 +58,7 @@
|
|||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="TitleTooLong" comment="bug title validation"><value>The title is too long</value></data>
|
<data name="TitleSizeError" comment="bug title validation"><value>Le titre est trop court ou trop long (sa taille va de {0} à {1})</value></data>
|
||||||
|
<data name="DescSizeError" comment="bug title validation"><value>Le champ description est trop court ou trop long (sa taille va de {0} à {1})</value></data>
|
||||||
|
|
||||||
</root>
|
</root>
|
Reference in New Issue
Block a user