Пример #1
0
 /// <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));
     }
 }
Пример #2
0
        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);
        }
Пример #3
0
        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;
            }
        }
Пример #4
0
        private void setDatabaseName()
        {
            var builder = new DbConnectionStringBuilder();

            builder.ConnectionString = _dbConnectionString;
            _dataBaseName            = ProviderManager.GetProvider(_dataBaseType).GetDataBaseName(builder);
        }
Пример #5
0
 /// <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));
     }
 }
Пример #6
0
 /// <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));
     }
 }
Пример #7
0
        /// <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;
            }
        }
Пример #8
0
        /// <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));
     }
 }
Пример #10
0
 /// <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));
     }
 }
Пример #11
0
 /// <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));
     }
 }
Пример #12
0
        /// <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));
        }
Пример #13
0
        /// <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);
        }
Пример #14
0
        /// <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);
        }
Пример #15
0
        /// <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);
        }
Пример #16
0
        /// <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);
     }
 }
Пример #20
0
        /// <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));
        }
Пример #21
0
        /// <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));
        }
Пример #22
0
        /// <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);
        }
Пример #23
0
            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);
                }
            }
Пример #24
0
        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);
        }
Пример #25
0
        /// <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();
        }
Пример #26
0
        /// <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;
            }
        }
Пример #27
0
        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);
            }
        }
Пример #28
0
        /// <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);
        }
Пример #29
0
        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;
            }
        }
Пример #30
0
        /// <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;
            }
        }