public Boolean Post(ref string error, Modelo.Factura factura, UsuarioDto usuario, HttpContext context)
        {
            var _servicioRelacion = new ServicioRelaciones(this._logger, this._contexto);

            _servicioRelacion.ObtenerRelacionFactura(ref factura);
            Ruta ruta = new Ruta(context, factura);

            if (!ValidarFactura(ref error, ref factura))
            {
                return(false);
            }
            ServicioXml _servicioXml = new ServicioXml(this._logger);

            if (!_servicioXml.GeneraCFDI(ref error, factura, ruta.RutaGuardadoXML, ruta.RutaCertificado, ruta.RutaKey, ruta.RutaArchivosXSLT, ruta.RutaCarpetaFacturasClientes))
            {
                return(false);
            }
            XmlDocument _xmlDocument = new XmlDocument();

            if (!_servicioXml.Timbrar(ref error, ref _xmlDocument, ruta.RutaGuardadoXML, ruta.RutaGuardadoXML))
            {
                return(false);
            }
            Put(ref error, ref factura, _xmlDocument);
            try
            {
                factura.ImagenCbb = ruta.RutaImagenCBB;
                _servicioXml.GeneraCBB(ref error, factura.Sucursal.Rfc, factura.Cliente.Rfc, factura.FolioFiscal, factura.Total, ruta.RutaCBB);
                var correo = factura.Cliente.Correo;
                GenerarPDF(factura, ruta);
                ServicioCorreo.Enviar(factura.Sucursal.Asunto, factura.Sucursal.Mensaje, correo, ruta.RutaPDF, ruta.RutaGuardadoXML, this._logger);
                _servicioRelacion.SanitizarFactura(ref factura);
                Save(ref error, factura);
                return(true);
            }
            catch (Exception e)
            {
                this._logger.EscribirError(e.ToString());
                error = "Ocurrio un error al guardar la factura";
                return(false);
            }
        }
        public Boolean Post(ref string error, Cotizacion cotizacion)
        {
            cotizacion.Fecha = DateTime.Now;
            var _servicioRelacion = new ServicioRelaciones(this._logger, this._contexto);

            cotizacion.CantidadEnLetra = ServicioNumeroLetra.Convertir(cotizacion.Total.ToString("F"), true);
            _servicioRelacion.SanitizarCotizacion(ref cotizacion);
            this._contexto.Cotizaciones.Add(cotizacion);
            try
            {
                this._contexto.SaveChanges();
                return(true);
            }
            catch (Exception e)
            {
                this._logger.EscribirError(e.ToString());
                error = "Ocurrio un error al guardar cotización";
                return(false);
            }
        }