Пример #1
0
 //metoda pomocnicza sprawdzająca występowanie błędów
 private static bool HasAnyErrors(InsERT.Mox.Validation.IValidationMetadataStore store, ITypedDataErrorInfo errorInfo)
 {
     return
         (errorInfo != null &&
          (
              errorInfo.Errors.Any() ||
              errorInfo.MemberErrors.Any()
          ));
 }
Пример #2
0
        //metoda pomocnicza zbierająca informacje o błędach
        private static void PodajBledy(this InsERT.Mox.BusinessObjects.IBusinessObject obiektBiznesowy,
                                       InsERT.Mox.Validation.IValidationMetadataStore store,
                                       List <BladInfo> bledy)
        {
            HashSet <ITypedDataErrorInfo> invalidData = new HashSet <ITypedDataErrorInfo>();

            ((InsERT.Mox.DataAccess.IGetDataDomain)obiektBiznesowy).DataDomain.TraverseData(
                obiektBiznesowy.Data, (o) =>
            {
                ITypedDataErrorInfo dataErrorInfoEx = o as ITypedDataErrorInfo;
                if (HasAnyErrors(store, dataErrorInfoEx))
                {
                    invalidData.Add(dataErrorInfoEx);
                }
                return(true);
            });

            foreach (var encjaZBledami in invalidData)
            {
                foreach (var bladNaCalejEncji in encjaZBledami.Errors)
                {
                    StringBuilder sb = new StringBuilder(3);
                    sb.AppendLine(bladNaCalejEncji.ToString());
                    sb.Append(" na encjach:" + encjaZBledami.GetType().Name);
                    DataErrorType errorType = store.GetEntryForClrType(bladNaCalejEncji.GetType());
                    bledy.Add(new BladInfo(sb.ToString(), errorType.Severity));
                }
                foreach (var bladNaKonkretnychPolach in encjaZBledami.MemberErrors)
                {
                    StringBuilder sb = new StringBuilder(3);
                    sb.AppendLine(bladNaKonkretnychPolach.Key.ToString());
                    sb.AppendLine(" na polach:");
                    sb.AppendLine(string.Join(", ", bladNaKonkretnychPolach.Select(b => encjaZBledami.GetType().Name + "." + b)));
                    DataErrorType errorType = store.GetEntryForClrType(bladNaKonkretnychPolach.Key.GetType());
                    bledy.Add(new BladInfo(sb.ToString(), errorType.Severity));
                }
            }
        }