2017-04-11 1 views
0

DevForce의 엔티티에 대해 유효성 검사를 수행하고 있으며 탐색 속성의 유효성 검사 이외에 필요한 작업을 모두 처리했습니다.설정되지 않은 탐색 속성에 대해 확인을 반환하는 DevForce 유효성 확인

속성에 RequiredValueVerifier 특성을 배치하려고 시도했지만 UI에 유효성 검사 오류가 표시되지만 Manager.VerifierEngine.Execute ({entitytovalidate})를 사용하면 즉시 결과가 다시 표시됩니다.

DevForce가 nullos를 생성하고 Nullos에있는 속성을 수정할 수 있지만 Nullo에서 값을 업데이트하지 않은 경우 VeirifierEngine이 반환하지 않는 방식을 사용하고 싶습니다.

현재 나의 해결 방법은 ID에 FKey에 사용되는 보조 Int32RangeVerifier를 사용하는 것이지만 해결 방법으로는 만족스럽지 않습니다.

Verifier Provider를 이러한 속성에 대해서만 만들지 않고도이 작업을 수행하려고합니다.

누구에게도 해결책이 있다면 공유 할 수 있다면 크게 감사하겠습니다. 여기

는 현재 주위에 작업의 샘플입니다 : 사전에

namespace BearPaw.Models.Main 
{ 
[MetadataType(typeof(TechnicianNoteMetadata))] 
public partial class TechnicianNote { 

    public static TechnicianNote Create(int byUserId, DateTimeZone clientZone, DateTime userUtc) 
    { 
     var newItem = new TechnicianNote() 
     { 
      CreatedById = byUserId, 
      CreatedDate = userUtc, 
      CreatedDateTz = clientZone.Id, 
      ModifiedById = byUserId, 
      ModifiedDate = userUtc, 
      ModifiedDateTz = clientZone.Id 
     }; 
     return newItem; 
    } 

} 

    public class TechnicianNoteMetadata 
    { 
    [Int32RangeVerifier(ErrorMessage = "Note Category is required", MinValue = 1)] 
    public static int NoteCategoryId; 

    [RequiredValueVerifier(DisplayName = "Note Category")] 
    public static NoteCategory NoteCategory; 

    [RequiredValueVerifier(DisplayName = "Note Detail")] 
    public static string NoteDetail; 

    } 
} 

많은 감사

당신은 탐색 속성 유효성 검사를 처리 할 수있는 사용자 정의 검증을 만들고 VerifierEngine에 직접 추가 할 수 있습니다

답변

0

IVerifierProvider을 사용하지 않으려면 AddVerifier 메서드를 사용하십시오. 예를 들어

:

public class NullEntityVerifier : PropertyValueVerifier 
{ 
    public NullEntityVerifier(
     Type entityType, 
     string propertyName, 
     string displayName = null) 
     : base(new PropertyValueVerifierArgs(entityType, propertyName, true, displayName)) { } 

    public NullEntityVerifier(PropertyValueVerifierArgs verifierArgs) 
     : base(verifierArgs) { } 

    protected override VerifierResult VerifyValue(object itemToVerify, object valueToVerify, TriggerContext triggerContext, VerifierContext verifierContext) 
    { 
     var entity = valueToVerify as Entity; 
     var msg = $"{this.ApplicableType.Name}.{this.DisplayName} is required."; 
     return new VerifierResult(entity != null && !entity.EntityAspect.IsNullEntity, msg); 
    } 
} 

엔진에 추가하려면 다음

var verifier = new NullEntityVerifier(typeof(TechnicianNote), "NoteCategory"); 
_em1.VerifierEngine.AddVerifier(verifier); 

을 당신이 당신의 검증에 대한 사용자 정의 속성을 만들 수 있습니다 때문 검증기를 고수하십시오. 자세한 내용은 DevForce Resource Center을 참조하십시오.

+0

훌륭함, 나는 속성 검증자가 이것을 수행하는 훌륭한 방법 일 수 있다는 것을 완전히 잊어 버렸습니다. 고마워. –

관련 문제