Quantcast
Channel: Validação em 3 camadas
Viewing all articles
Browse latest Browse all 3

Validação em 3 camadas

$
0
0

Olá amigos, em parte eu concordo com e. heringer uma solução que adotei foi .....

Criar uma Classe chamada de BusinessClassException que herda de Exception

using System;
using System.Collections;

namespace Business
{
 /// <summary>
 /// This exception has all errors occurred in the business objects during data validation.
 /// Every business object raise a BusinessClassException when it find an validation error
 /// </summary>
 public class BusinessClassException: Exception
 {
  #region private fields
  /// <summary>
  /// List of error messages that raised the exception
  /// </summary>
  private ArrayList m_Errors;
  #endregion
  
  #region constructors
  /// <summary>
  /// Generate an exception with the specified error messages
  /// </summary>
  /// <param name="msgs">Arraylist with error messages</param>
  public BusinessClassException(ArrayList msgs)
  {
   m_Errors = msgs;
  }
  #endregion

  #region properties
  /// <summary>
  /// Get error messages
  /// </summary>
  public ArrayList Errors
  {
   get
   {
    return m_Errors;
   }
  }
  #endregion
 }
}

e pego todas as exceções de regra de negocio atraves dessa classe e listo todas na camada de apresentação .....

Exemplo de como tratar esses errors na camada de negocio ....

namespace Business
{
 /// <summary>
 /// Summary description for Form.
 /// </summary>
 public class Form
 {
  private string        _fileName;
  private ArrayList       _errors = new ArrayList();

  /// <summary>
  /// Form FileName
  /// </summary>
  public string FileName
  {
   get
   {
    return _fileName;
   }
   set
   {
    if (value != null && value != String.Empty)
     _fileName = value;
    else
     _errors.Add("Form.InvalidFileName");
   }
  }

  public void Validate()
  {
   if (_errors.Count > 0)
    throw new BusinessClassException(_errors);
  }
 }
}

Espero ter ajudado

Abraço[]s
Artur Araújo


Viewing all articles
Browse latest Browse all 3