public IActionResult Post(CFDi cfdi)
        {
            TimbradoService service = new TimbradoService();
            var             results = new Dictionary <string, Object>();

            try
            {
                cfdi = service.cancelarTimbre(cfdi);
                results.Add("cfdi", cfdi);
                return(Ok(results));
            }
            catch (Exception e)
            {
                if (e is CancellationException || e is InvalidInvoiceNumberException || e is WebServiceCommunicationException)
                {
                    results.Add("message", e.Message);
                    return(BadRequest(results));
                }
                results.Add("message", "Error en el servidor");
                return(StatusCode(500, results));
            }
        }
Exemple #2
0
        public IActionResult Post(CFDi cfdi)
        {
            var results = new Dictionary <string, Object>();

            try
            {
                TimbradoService timService = new TimbradoService();
                timService.Timbrar(cfdi);
                results.Add("cfdi", cfdi);
                return(Ok(results));
            }
            catch (Exception e)
            {
                if (e is InvalidRFCException || e is NotFoundException)
                {
                    results.Add("message", e.Message);
                    return(NotFound(results));
                }
                if (e is CertificateException || e is InvoiceNumberAvailabilityException)
                {
                    results.Add("message", e.Message);
                    return(Conflict(results));
                }
                if (e is InvalidCfdiDataException || e is WebServiceValidationException ||
                    e is WebServiceCommunicationException || e is InvalidInvoiceTypeException ||
                    e is InvoiceAtZeroException || e is PaymentGreaterThanBalanceException ||
                    e is InvalidInvoiceTypeException || e is InvoiceAtZeroException ||
                    e is SameDayInvoiceException || e is InvoiceDateMismatchException ||
                    e is ExpiredInvoiceException)
                {
                    results.Add("message", e.Message);
                    return(BadRequest(results));
                }
                logger.Error(e.Message);
                results.Add("message", "Error en el servidor");
                return(StatusCode(500, results));
            }
        }