/// <summary> /// Cancela uma NFSe /// /// Obs.: Nem todos provedores suportam este metodo. /// </summary> /// <param name="codigoCancelamento">O codigo de cancelamento.</param> /// <param name="numeroNFSe">O numero da NFSe.</param> /// <param name="motivo">O motivo.</param> /// <returns>RetornoWebservice.</returns> public RetornoWebservice CancelaNFSe(string codigoCancelamento, string numeroNFSe, string motivo) { using (var provider = ProviderManager.GetProvider(Configuracoes)) { return(provider.CancelaNFSe(codigoCancelamento, numeroNFSe, motivo, NotasFiscais)); } }
public bool SetupWebService(int codigoMunicipio, int tipoAmbiente, string certificado, string senha, ref string mensagemAlerta, ref string mensagemErro) { try { oACBrNFSe.Configuracoes.WebServices.CodigoMunicipio = codigoMunicipio; oACBrNFSe.Configuracoes.WebServices.Ambiente = (DFeTipoAmbiente)tipoAmbiente; oACBrNFSe.Configuracoes.Certificados.Certificado = certificado; oACBrNFSe.Configuracoes.Certificados.Senha = senha; // Ajusta as particularidades de cada provedor. using (var provider = ProviderManager.GetProvider(oACBrNFSe.Configuracoes)) { switch (provider.Name.ToUpper()) { case "GINFES": // Provedor Ginfes em ambiente de Homologação não aceita acentos. (Ambiente de Produção aceita normalmente.) if (oACBrNFSe.Configuracoes.WebServices.Ambiente == DFeTipoAmbiente.Homologacao) { oACBrNFSe.Configuracoes.Geral.RetirarAcentos = true; } break; } } } catch (Exception ex) { while (ex != null) { mensagemErro += ex.Message + Environment.NewLine; ex = ex.InnerException; } return(false); } return(true); }
public void Fetch() { if (!_mutexFetch.WaitOne(0)) //try get mutex { //already a fetch in progress _mutexFetch.WaitOne(); //wait on finish _mutexFetch.ReleaseMutex(); return; } if (_providerData == null) { // InfoUrl = SjInfo.SearchSjDe(Name); ProviderData = ProviderManager.GetProvider().FindShow(Name); Status = "Unknown"; } if (_providerData != null) { ShowInformation si = ProviderManager.GetProvider().GetShowInformation(ProviderData, false, true); if (si != null) { Status = si.Status; PreviousEpisodeDate = si.PreviousEpisodeDate; PreviousEpisodeSeasonNr = si.PreviousEpisodeSeasonNr; PreviousEpisodeEpisodeNr = si.PreviousEpisodeEpisodeNr; NextEpisodeDate = si.NextEpisodeDate; NextEpisodeEpisodeNr = si.NextEpisodeEpisodeNr; NextEpisodeSeasonNr = si.NextEpisodeSeasonNr; } } try { IsLoading = true; String cover; var episodes = SjInfo.ParseSjOrgSite(_show, out cover, Settings.Instance.UploadCache); AllDownloads = episodes; if (cover != "") { Cover = cover; } _mutexFetch.ReleaseMutex(); if (_resetOnRefresh) { _resetOnRefresh = false; ApplyFilter(true); } else { ApplyFilter(false); } } catch (Exception ex) { Console.WriteLine(ex.ToString()); } finally { IsLoading = false; } }
private void setDatabaseName() { var builder = new DbConnectionStringBuilder(); builder.ConnectionString = _dbConnectionString; _dataBaseName = ProviderManager.GetProvider(_dataBaseType).GetDataBaseName(builder); }
/// <summary> /// Consulta a NFSe/RPS que atende os filtros informados. /// /// Obs.: Nem todos provedores suportam este metodo. /// </summary> /// <param name="numero">The numero.</param> /// <param name="serie">The serie.</param> /// <param name="tipo">The tipo.</param> /// <returns>RetornoWebservice.</returns> /// <exception cref="NotImplementedException"></exception> public RetornoWebservice ConsultaNFSeRps(string numero, string serie, TipoRps tipo) { using (var provider = ProviderManager.GetProvider(Configuracoes)) { return(provider.ConsultaNFSeRps(numero, serie, tipo, NotasFiscais)); } }
/// <summary> /// Consulta o lote de Rps /// /// Obs.: Nem todos provedores suportam este metodo. /// </summary> /// <param name="protocolo">The protocolo.</param> /// <param name="lote">The lote.</param> /// <returns>RetornoWebservice.</returns> /// <exception cref="NotImplementedException"></exception> public RetornoWebservice ConsultarLoteRps(int lote, string protocolo) { using (var provider = ProviderManager.GetProvider(Configuracoes)) { return(provider.ConsultarLoteRps(lote, protocolo, NotasFiscais)); } }
/// <summary> /// Consulta as NFSe de acordo com os filtros. /// /// Obs.: Nem todos provedores suportam este metodo. /// </summary> /// <param name="inicio">The inicio.</param> /// <param name="fim">The fim.</param> /// <param name="numeroNfse">The numero nfse.</param> /// <param name="pagina">The pagina.</param> /// <param name="cnpjTomador">The CNPJ tomador.</param> /// <param name="imTomador">The im tomador.</param> /// <param name="nomeInter">The nome inter.</param> /// <param name="cnpjInter">The CNPJ inter.</param> /// <param name="imInter">The im inter.</param> /// <param name="serie">The serie.</param> /// <returns>RetornoWebservice.</returns> /// <exception cref="NotImplementedException"></exception> public RetornoWebservice ConsultaNFSe(DateTime?inicio, DateTime?fim, string numeroNfse = "", int pagina = 1, string cnpjTomador = "", string imTomador = "", string nomeInter = "", string cnpjInter = "", string imInter = "", string serie = "") { Guard.Against <ACBrException>(inicio?.Date > fim?.Date, "A data inicial não pode ser maior que a data final."); var oldProtocol = ServicePointManager.SecurityProtocol; try { ServicePointManager.SecurityProtocol = protocolType; using (var provider = ProviderManager.GetProvider(Configuracoes)) { return(provider.ConsultaNFSe(inicio, fim, numeroNfse, pagina, cnpjTomador, imTomador, nomeInter, cnpjInter, imInter, serie, NotasFiscais)); } } catch (Exception exception) { this.Log().Error("[ConsultaNFSe]", exception); throw; } finally { ServicePointManager.SecurityProtocol = oldProtocol; } }
/// <summary> /// Substitui uma NFSe /// /// Obs.: Nem todos provedores suportam este metodo. /// </summary> /// <param name="codigoCancelamento">O codigo de cancelamento.</param> /// <param name="numeroNFSe">O numero da NFSe.</param> /// <param name="motivo">O motivo.</param> /// <returns>RetornoWebservice.</returns> public RetornoWebservice SubstituirNFSe(string codigoCancelamento, string numeroNFSe, string motivo) { Guard.Against <ArgumentException>(codigoCancelamento.IsEmpty(), "ERRO: Código de Cancelamento não informado"); Guard.Against <ArgumentException>(numeroNFSe.IsEmpty(), "ERRO: Numero da NFS-e não informada"); Guard.Against <ArgumentException>(NotasFiscais.Count < 1, "ERRO: Nenhuma RPS carregada ao componente"); var oldProtocol = ServicePointManager.SecurityProtocol; try { ServicePointManager.SecurityProtocol = protocolType; using (var provider = ProviderManager.GetProvider(Configuracoes)) { return(provider.SubstituirNFSe(codigoCancelamento, numeroNFSe, motivo, NotasFiscais)); } } catch (Exception exception) { this.Log().Error("[SubstituirNFSe]", exception); throw; } finally { ServicePointManager.SecurityProtocol = oldProtocol; } }
/// <summary> /// Gera o Xml Da Rps /// </summary> /// <param name="nota"></param> /// <returns></returns> public string GetXml(NotaFiscal nota) { using (var provider = ProviderManager.GetProvider(config)) { return(nota.IdentificacaoNFSe.Numero.IsEmpty() ? provider.GetXmlRps(nota) : provider.GetXmlNFSe(nota)); } }
/// <summary> /// Consulta a situação do lote de RPS. /// /// Obs.: Nem todos provedores suportam este metodo. /// </summary> /// <param name="lote">The lote.</param> /// <param name="protocolo">The protocolo.</param> /// <returns>RetornoWebservice.</returns> public RetornoWebservice ConsultarSituacao(int lote, string protocolo = "") { using (var provider = ProviderManager.GetProvider(Configuracoes)) { return(provider.ConsultarSituacao(lote, protocolo)); } }
/// <summary> /// Consulta o numero de sequencia dos lotes de RPS. /// /// Obs.: Nem todos provedores suportam este metodo. /// </summary> /// <param name="serie">The serie.</param> /// <returns>RetornoWebservice.</returns> /// <exception cref="NotImplementedException"></exception> public RetornoWebservice ConsultarSequencialRps(string serie) { using (var provider = ProviderManager.GetProvider(Configuracoes)) { return(provider.ConsultarSequencialRps(serie)); } }
/// <summary> /// Cancela as NFSe que estão carregadas na lista. /// /// Obs.: Adicionar o motivo de cancelamento nas notas da lista. /// Nem todos provedores suportam este metodo. /// </summary> /// <param name="lote">Identificação do lote.</param> /// <returns>RetornoWebservice.</returns> public RetornoWebservice CancelaNFSe(int lote) { Guard.Against <ArgumentException>(NotasFiscais.Count < 1, "ERRO: Nenhuma NFS-e carregada ao componente"); var provider = ProviderManager.GetProvider(Configuracoes); return(provider.CancelaNFSe(lote, NotasFiscais)); }
/// <summary> /// Carrega a NFSe/RPS do xml. /// </summary> /// <param name="stream">Stream do XML.</param> /// <returns>NotaFiscal carregada.</returns> public NotaFiscal Load(Stream stream) { var provider = ProviderManager.GetProvider(config); var nota = provider.LoadXml(stream); Add(nota); return(nota); }
/// <summary> /// Carrega a NFSe/RPS do XMLDocument. /// </summary> /// <param name="xml">XMLDocument da NFSe/RPS.</param> /// <returns>NotaFiscal carregada.</returns> public NotaFiscal Load(XDocument xml) { var provider = ProviderManager.GetProvider(config); var nota = provider.LoadXml(xml); Add(nota); return(nota); }
/// <summary> /// Carrega a NFSe/RPS do arquivo. /// </summary> /// <param name="xml">caminho do arquivo XML ou string com o XML.</param> /// <param name="encoding">encoding do XML.</param> /// <returns>NotaFiscal carregada.</returns> public NotaFiscal Load(string xml, Encoding encoding = null) { var provider = ProviderManager.GetProvider(config); var nota = provider.LoadXml(xml, encoding); Add(nota); return(nota); }
/// <summary> /// Salvar o xml da Rps/NFSe no determinado arquivo /// </summary> /// <param name="nota">A nota para salvar</param> /// <param name="stream">Stream onde sera salvo o xml</param> /// <returns></returns> public void Save(NotaFiscal nota, Stream stream) { var provider = ProviderManager.GetProvider(config); var xmlNota = nota.IdentificacaoNFSe.Numero.IsEmpty() ? provider.GetXmlRps(nota) : provider.GetXmlNFSe(nota); var doc = XDocument.Parse(xmlNota); doc.Save(stream, SaveOptions.OmitDuplicateNamespaces); }
/// <summary> /// Carrega a NFSe/RPS do xml. /// </summary> /// <param name="stream">Stream do XML.</param> /// <returns>NotaServico carregada.</returns> public NotaServico Load(Stream stream) { using (var provider = ProviderManager.GetProvider(config)) { var nota = provider.LoadXml(stream); Add(nota); return(nota); } }
/// <summary> /// Carrega a NFSe/RPS do XMLDocument. /// </summary> /// <param name="xml">XMLDocument da NFSe/RPS.</param> /// <returns>NotaServico carregada.</returns> public NotaServico Load(XDocument xml) { using (var provider = ProviderManager.GetProvider(config)) { var nota = provider.LoadXml(xml); Add(nota); return(nota); } }
/// <summary> /// Carrega a NFSe/RPS do arquivo. /// </summary> /// <param name="xml">caminho do arquivo XML ou string com o XML.</param> /// <param name="encoding">encoding do XML.</param> /// <returns>NotaServico carregada.</returns> public NotaServico Load(string xml, Encoding encoding = null) { using (var provider = ProviderManager.GetProvider(config)) { var nota = provider.LoadXml(xml, encoding); Add(nota); return(nota); } }
/// <summary> /// Substitui uma NFSe /// /// Obs.: Nem todos provedores suportam este metodo. /// </summary> /// <param name="codigoCancelamento">O codigo de cancelamento.</param> /// <param name="numeroNFSe">O numero da NFSe.</param> /// <param name="motivo">O motivo.</param> /// <returns>RetornoWebservice.</returns> public RetornoWebservice SubstituirNFSe(string codigoCancelamento, string numeroNFSe, string motivo) { Guard.Against <ArgumentException>(codigoCancelamento.IsEmpty(), "ERRO: Código de Cancelamento não informado"); Guard.Against <ArgumentException>(numeroNFSe.IsEmpty(), "ERRO: Numero da NFS-e não informada"); Guard.Against <ArgumentException>(NotasFiscais.Count < 1, "ERRO: Nenhuma RPS carregada ao componente"); var provider = ProviderManager.GetProvider(Configuracoes); return(provider.SubstituirNFSe(codigoCancelamento, numeroNFSe, motivo, NotasFiscais)); }
/// <summary> /// Consulta as NFSe de acordo com os filtros. /// /// Obs.: Nem todos provedores suportam este metodo. /// </summary> /// <param name="inicio">The inicio.</param> /// <param name="fim">The fim.</param> /// <param name="numeroNfse">The numero nfse.</param> /// <param name="pagina">The pagina.</param> /// <param name="cnpjTomador">The CNPJ tomador.</param> /// <param name="imTomador">The im tomador.</param> /// <param name="nomeInter">The nome inter.</param> /// <param name="cnpjInter">The CNPJ inter.</param> /// <param name="imInter">The im inter.</param> /// <param name="serie">The serie.</param> /// <returns>RetornoWebservice.</returns> /// <exception cref="NotImplementedException"></exception> public RetornoWebservice ConsultaNFSe(DateTime?inicio, DateTime?fim, string numeroNfse = "", int pagina = 1, string cnpjTomador = "", string imTomador = "", string nomeInter = "", string cnpjInter = "", string imInter = "", string serie = "") { Guard.Against <ACBrException>(inicio?.Date > fim?.Date, "A data inicial não pode ser maior que a data final."); var provider = ProviderManager.GetProvider(Configuracoes); return(provider.ConsultaNFSe(inicio, fim, numeroNfse, pagina, cnpjTomador, imTomador, nomeInter, cnpjInter, imInter, serie, NotasFiscais)); }
/// <summary> /// Salvar o xml da Rps/NFSe no determinado arquivo /// </summary> /// <param name="nota">A nota para salvar</param> /// <param name="path">Caminho onde sera salvo o arquivo.</param> /// <returns></returns> public void Save(NotaFiscal nota, string path) { var provider = ProviderManager.GetProvider(config); var file = nota.IdentificacaoNFSe.Numero.IsEmpty() ? $"Rps-{nota.IdentificacaoRps.DataEmissao:yyyyMMdd}-{nota.IdentificacaoRps.Numero}.xml" : $"NFSe-{nota.IdentificacaoNFSe.Chave}-{nota.IdentificacaoNFSe.Numero}.xml"; var xmlNota = nota.IdentificacaoNFSe.Numero.IsEmpty() ? provider.GetXmlRps(nota) : provider.GetXmlNFSe(nota); path = Path.Combine(path, file); var doc = XDocument.Parse(xmlNota); doc.Save(path, SaveOptions.OmitDuplicateNamespaces); }
public void ReturnsRightProvider(string url, Type expectedType) { var providerManager = new ProviderManager(); var provider = providerManager.GetProvider(url); if (expectedType == null) { Assert.IsNull(provider); } else { Assert.IsInstanceOf(expectedType, provider); } }
public new void SetUp() { _qeRepository = MockRepository.GenerateMock <IRepository <QueuedEmail> >(); _qeaRepository = MockRepository.GenerateMock <IRepository <QueuedEmailAttachment> >(); _emailSender = MockRepository.GenerateMock <IEmailSender>(); _services = MockRepository.GenerateMock <ICommonServices>(); _mediaService = MockRepository.GenerateMock <IMediaService>(); _mediaStorageProvider = ProviderManager.GetProvider <IMediaStorageProvider>(DatabaseMediaStorageProvider.SystemName); _settingService = new ConfigFileSettingService(null, null); _services.Expect(x => x.Settings).Return(_settingService); _services.Expect(x => x.MediaService).Return(_mediaService); _queuedEmailService = new QueuedEmailService(_qeRepository, _qeaRepository, _emailSender, _services); }
/// <summary> /// Initializes a new instance of the TypeImplementer class. /// </summary> /// <param name="interfaceType">The type to implement.</param> /// <param name="parameterProvider">An optional parameter provider to use when building the type. Used for testing.</param> public TypeImplementer(Type interfaceType, TraceParameterProvider parameterProvider = null) { _interfaceType = interfaceType; _contextProvider = ProviderManager.GetProvider <TraceContextProvider>(interfaceType, typeof(TraceContextProviderAttribute), null); _serializationProvider = TraceSerializationProvider.GetSerializationProvider(interfaceType); _eventAttributeProvider = ProviderManager.GetProvider <EventAttributeProvider>(interfaceType, typeof(EventAttributeProviderAttribute), () => new EventAttributeProvider()); _traceParameterProvider = parameterProvider ?? TraceParameterProvider.GetParameterProvider(interfaceType); // only interfaces support context if (_contextProvider != null && !_interfaceType.IsInterface) { throw new InvalidOperationException("Context Providers can only be added to interface-based logs."); } ImplementType(); }
/// <summary> /// Envia as NFSe para o provedor da cidade. /// </summary> /// <param name="lote">Numero do lote.</param> /// <param name="sincrono">Se for informado <c>true</c> o envio será sincrono.</param> /// <param name="imprimir">Se for informado <c>true</c> imprime as RPS, se o envio foi executado com sucesso.</param> /// <returns>RetornoWebservice.</returns> public RetornoWebservice Enviar(int lote, bool sincrono = false, bool imprimir = false) { Guard.Against <ACBrException>(NotasFiscais.Count < 1, "ERRO: Nenhuma RPS adicionada ao Lote"); Guard.Against <ACBrException>(NotasFiscais.Count > 50, $"ERRO: Conjunto de RPS transmitidos (máximo de 50 RPS) excedido.{Environment.NewLine}" + $"Quantidade atual: {NotasFiscais.Count}"); var oldProtocol = ServicePointManager.SecurityProtocol; try { ServicePointManager.SecurityProtocol = protocolType; ServicePointManager.ServerCertificateValidationCallback += new RemoteCertificateValidationCallback(ValidateServerCertificate); using (var provider = ProviderManager.GetProvider(Configuracoes)) { if (provider.Certificado.IsNull()) { provider.SetCertificate(Certificado); } var ret = sincrono ? provider.EnviarSincrono(lote, NotasFiscais) : provider.Enviar(lote, NotasFiscais); if (ret.Sucesso && DANFSe != null && imprimir) { DANFSe.Imprimir(); } return(ret); } } catch (Exception exception) { this.Log().Error("[Enviar]", exception); throw; } finally { ServicePointManager.SecurityProtocol = oldProtocol; } }
private void setDriverAssembly(string path) { var driver = IntrospectionManager.GetDriver(_providerName); if (driver != null) { _driverAssembly = driver; return; } try { _driverAssembly = ProviderManager.GetProvider(_dataBaseType).GetAssembly(path + "\\Drivers\\"); } catch (Exception) { string info = string.Format("[Provider:'{0}'][Key:'{1}'][Db:'{2}'] {3}", _dataBaseType, _key, _dataBaseName, "Can't found driver!"); LogHelper.LogWarning(info); } }
/// <summary> /// Envia as NFSe para o provedor da cidade. /// </summary> /// <param name="lote">Numero do lote.</param> /// <param name="sincrono">Se for informado <c>true</c> o envio será sincrono.</param> /// <param name="imprimir">Se for informado <c>true</c> imprime as RPS, se o envio foi executado com sucesso.</param> /// <returns>RetornoWebservice.</returns> public RetornoWebservice Enviar(int lote, bool sincrono = false, bool imprimir = false) { Guard.Against <ACBrException>(NotasFiscais.Count < 1, "ERRO: Nenhuma RPS adicionada ao Lote"); Guard.Against <ACBrException>(NotasFiscais.Count > 50, $"ERRO: Conjunto de RPS transmitidos (máximo de 50 RPS) excedido.{Environment.NewLine}" + $"Quantidade atual: {NotasFiscais.Count}"); var provider = ProviderManager.GetProvider(Configuracoes); var ret = sincrono ? provider.EnviarSincrono(lote, NotasFiscais) : provider.Enviar(lote, NotasFiscais); if (ret.Sucesso && DaNfSe != null && imprimir) { DaNfSe.Imprimir(); } return(ret); }
public void Fetch() { if (!_mutexFetch.WaitOne(0)) //try get mutex { //already a fetch in progress _mutexFetch.WaitOne(); //wait on finish _mutexFetch.ReleaseMutex(); return; } if (_providerData == null) { // InfoUrl = SjInfo.SearchSjDe(Name); ProviderData = ProviderManager.GetProvider().FindShow(Name); } try { IsLoading = true; String cover; var episodes = SjInfo.ParseSjOrgSite(_show, out cover, Settings.Instance.UploadCache); AllDownloads = episodes; if (cover != "") { Cover = cover; } _mutexFetch.ReleaseMutex(); if (_resetOnRefresh) { _resetOnRefresh = false; ApplyFilter(true); } else { ApplyFilter(false); } } finally { IsLoading = false; } }
/// <summary> /// Cancela uma NFSe /// /// Obs.: Nem todos provedores suportam este metodo. /// </summary> /// <param name="codigoCancelamento">O codigo de cancelamento.</param> /// <param name="numeroNFSe">O numero da NFSe.</param> /// <param name="motivo">O motivo.</param> /// <returns>RetornoWebservice.</returns> public RetornoWebservice CancelaNFSe(string codigoCancelamento, string numeroNFSe, string motivo) { var oldProtocol = ServicePointManager.SecurityProtocol; try { ServicePointManager.SecurityProtocol = protocolType; using (var provider = ProviderManager.GetProvider(Configuracoes)) { return(provider.CancelaNFSe(codigoCancelamento, numeroNFSe, motivo, NotasFiscais)); } } catch (Exception exception) { this.Log().Error("[CancelaNFSe]", exception); throw; } finally { ServicePointManager.SecurityProtocol = oldProtocol; } }