示例#1
0
        public JsonResult EFDJson()
        {
            var response = new ResponseServicosNotaFiscal();

            try
            {
                var xml = XElement.Parse(Request.Form["xml"].ToString());
                var key = Request.Form["key"].ToString();
                response = Servicos.GravarNotaFiscalNoBancoDeDados(xml, key);
            }
            catch (Exception ex)
            {
                response.Codigo = 501;
                response.Status = "Houve um erro no processamento da nota fiscal";
                log.Error(response.Status, ex);
            }
            return(Json(response));
        }
示例#2
0
        public ResponseServicosNotaFiscal GravarNotaFiscalNoBancoDeDados(XElement xml, string chaveUsuario)
        {
            ResponseServicosNotaFiscal response;

            try
            {
                var usuario = RepositorioUsuario.BuscarUsuarioPorChave(chaveUsuario);
                ValidarUsuario(usuario);

                ValidarXmlDaNota(xml, usuario);

                var nota = FabricaNotaFiscal.Criar(xml, usuario);
                ValidarNotaFiscal(nota);
                SalvarXmlNaPastaDoEmitente(nota, xml);
                RepositorioNota.Incluir(nota);

                var emitente = FabricaParticipante.CriarEmitente(xml);
                RepositorioParticipante.Incluir(emitente);

                var destinatario = FabricaParticipante.CriarDestinatario(xml);
                if (RepositorioParticipante.SelecionarPorCnpjCpf(destinatario.CnpjCpf) == null)
                {
                    RepositorioParticipante.Incluir(destinatario);
                }

                response = new ResponseServicosNotaFiscal(100, "Nota recebida com sucesso");
                return(response);
            }
            catch (ServicosException ex)
            {
                return(ex.Response);
            }
            catch (Exception ex)
            {
                return(response = new ResponseServicosNotaFiscal(501, "erro no servidor " + ex.Message));
            }
        }
示例#3
0
 public ServicosException(string message, Exception innerException, int codigo) : base(message, innerException)
 {
     this.Codigo = codigo;
     Response    = new ResponseServicosNotaFiscal(codigo, message);
 }
示例#4
0
 public ServicosException(string message) : base(message)
 {
     this.Codigo = 0;
     Response    = new ResponseServicosNotaFiscal(this.Codigo, message);
 }