/// <summary>
        /// Constructor general para todos los códigos de error (excepto los errores internos)
        /// </summary>
        public WSException(WSCodError codError, params object[] args)
            : base(FormatearNovedadInterna(codError, args))
        {
            var item = Errores[codError];

            this.Estado  = item.Estado;
            this.Novedad = FormatearNovedadInterna(codError, args);
        }
        private static string FormatearNovedad(WSCodError codError, string novedad)
        {
            var sb = new StringBuilder();

            sb.AppendFormat("(E{0:00}) ", (int)codError);
            sb.AppendFormat(novedad);

            return(sb.ToString());
        }
        private static string FormatearNovedadInterna(WSCodError codError, params object[] args)
        {
            var item = Errores[codError];
            var sb   = new StringBuilder();

            sb.AppendFormat("(E{0:00}) ", (int)codError);
            sb.AppendFormat(item.Novedad, args);

            return(sb.ToString());
        }
        /// <summary>
        /// Helper de creación para los errores internos
        /// </summary>
        public static WSException CrearErrorInterno(WSCodError codError)
        {
            var referencia = Guid.NewGuid().ToString();
            var novedad    = FormatearNovedadInterna((WSCodError)codError, referencia);

            return(new WSException(HttpStatusCode.InternalServerError, novedad)
            {
                Referencia = referencia
            });
        }