public string IsAllowPagamenti(IList<int> idScadenze, TipoBonificoEnum tipoBonifico)
 {
     var result = GetServiceClient().IsAllowPagamenti(new List<int>(idScadenze), tipoBonifico, GetUserInfo());
     CloseService();
     return result;
 }
Esempio n. 2
0
		public string IsAllowPagamenti(IList<int> idScadenze, TipoBonificoEnum tipoBonifico, UserInfo userinfo)
		{
			var windsorRep = new WindsorConfigRepository();
			try
			{
				windsorRep.BeginTransaction(userinfo);
			    var service = tipoBonifico != TipoBonificoEnum.Undefined ? windsorRep.GetContainer(userinfo.Azienda).Resolve<IPagamentoService>($"pagamentoService.{tipoBonifico}") : windsorRep.GetContainer(userinfo.Azienda).Resolve<IPagamentoService>();
                var item = service.IsAllowPagamento(idScadenze);
				windsorRep.Commit();
				return item;
			}
			catch (Exception ex)
			{
                _log.ErrorFormat("Errore nel controllo nel controllo di autorizzazione dai pagamenti - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), userinfo.Azienda);
				windsorRep.Rollback();
				throw;
			}
		}
        public ResultPagamento CreatePagamenti(List<DisposizionePagamentoDTO> pagamenti, string descrizione, string folderPath, TipoBonificoEnum tipoBonifico, bool invio, string tipoConto, int? idModello, bool testataPerCondominio, bool mittenteCondominio)
        {
            try
            {
                var result = GetServiceClient().CreatePagamenti(pagamenti, descrizione, tipoBonifico, invio, tipoConto, idModello, testataPerCondominio, mittenteCondominio, GetUserInfo());
                if (result.DocumentInfo.Body != null)
                {
                    var documentInfo = result.DocumentInfo;
                    if (!string.IsNullOrEmpty(folderPath))
                    {
                        if (!string.IsNullOrEmpty(result.DocumentInfo.FileName))
                            documentInfo.FileName = $"{folderPath}/{result.DocumentInfo.FileName}{result.DocumentInfo.FileExtension}";
                        else
                        {
                            documentInfo.FileName = $"{folderPath}/Bonifico_{Guid.NewGuid()}.txt";
                            _log.ErrorFormat("Il nome del file non è presente - {0} - descrizione:{1} - tipoBonifico:{2} - folderPath:{3} - azienda:{4}", Utility.GetMethodDescription(), descrizione, tipoBonifico, folderPath, Login.Instance.CurrentLogin().Azienda);
                        }
                    }
                    if (tipoBonifico == TipoBonificoEnum.CBI || tipoBonifico == TipoBonificoEnum.SEPA)
                        _manageDocumentService.Save(documentInfo);
                    else
                        _manageDocumentService.Open(documentInfo, "Lettera Bonifico", false, MergeFieldType.Default);
                }

                return result;
            }
            catch (Exception ex)
            {
                var log = LogManager.GetLogger("Sfera");
                log.ErrorFormat("Errore nella elaborazione dei pagamenti - {0} - descrizione:{1} - azienda:{2}", ex, Utility.GetMethodDescription(), descrizione, Login.Instance.CurrentLogin().Azienda);
                return new ResultPagamento {Message = ex.Message};
            }
        }
Esempio n. 4
0
		public ResultPagamento CreatePagamenti(BindingList<DisposizionePagamentoDTO> pagamenti, string descrizione, TipoBonificoEnum tipoBonifico, bool invio, string tipoConto, int? idModello, bool testataPerCondominio, bool mittenteCondominio, UserInfo userinfo)
		{
            var retryCount = 5;
            var success = false;
            var windsorRep = new WindsorConfigRepository();
            var item = new ResultPagamento();
            while (retryCount >= 0 && !success)
            {
                try
                {
                    windsorRep.BeginTransaction(userinfo);
                    IPagamentoService pagamentoService = null;
                    TipoPagamentoFatturaEnum tipo = TipoPagamentoFatturaEnum.Undefined;
                    if (tipoBonifico == TipoBonificoEnum.CBI)
                    {
                        pagamentoService = windsorRep.GetContainer(userinfo.Azienda).Resolve<IPagamentoService>("pagamentoService.CBI");
                        tipo = TipoPagamentoFatturaEnum.CBI;
                        tipoConto = "B";
                        invio = true;
                    }
                    else if (tipoBonifico == TipoBonificoEnum.SEPA)
                    {
                        pagamentoService = windsorRep.GetContainer(userinfo.Azienda).Resolve<IPagamentoService>("pagamentoService.SEPA");
                        tipo = TipoPagamentoFatturaEnum.SEPA;
                        tipoConto = "B";
                        invio = true;
                    }
                    else if (tipoBonifico == TipoBonificoEnum.Manuale)
                    {
                        pagamentoService = windsorRep.GetContainer(userinfo.Azienda).Resolve<IPagamentoService>("pagamentoService.Manuale");
                        tipo = TipoPagamentoFatturaEnum.Manuale;
                    }

                    if (pagamentoService != null)
                    {
                        item = pagamentoService.CreatePagamenti(pagamenti, descrizione, tipo, invio, tipoConto, idModello, testataPerCondominio, mittenteCondominio, userinfo.Azienda);
                        windsorRep.Commit();
                    }

                    success = true;
                }
                catch (Exception ex)
                {
                    _log.ErrorFormat("Errore nella creazione dei pagamenti - TENTATIVO:{0} - {1} - descrizione:{2} - azienda:{3}", ex, (6 - retryCount), Utility.GetMethodDescription(), descrizione, userinfo.Azienda + " - number:" + getExceptionId(ex), ex);

                    windsorRep.Rollback();
                    if (!isRetryException(ex))
                        throw;

                    // Add delay here if you wish. 
                    System.Threading.Thread.Sleep(1000 * (6 - retryCount));
                    retryCount--;
                    _log.InfoFormat("Creazione dei pagamenti - INIZIO TENTATIVO:{0} - {1} - descrizione:{2} - azienda:{3}", (6 - retryCount), Utility.GetMethodDescription(), descrizione, userinfo.Azienda);
                }
            }

            if (!success)
                windsorRep.Rollback();

            return item;
		}