public RisultatoChiusuraEsercizio ChiusuraEsercizioStraordinario(int idEsercizioStraordinario, int? idEsercizioOrdinario, ChiusuraEsercizioStraordinarioInfo chiusuraEsercizioStraordinarioInfo, string nomeConto, int ordineConto, DateTime? dataChiusura, string note, UserInfo userinfo) { var retryCount = 10; var success = false; var windsorRep = new WindsorConfigRepository(); EsercizioDTO item = null; while (retryCount >= 0 && !success) { try { windsorRep.BeginTransaction(userinfo); var repo = new EsercizioRepository(userinfo, windsorRep); var esercizi = windsorRep.GetContainer(userinfo.Azienda).Resolve<IEsercizioService>(); var chiusura = esercizi.ChiusuraEsercizioStraordinario(idEsercizioStraordinario, idEsercizioOrdinario, chiusuraEsercizioStraordinarioInfo, nomeConto, ordineConto, dataChiusura, note, false); var esercizio = chiusura.Esercizio; item = esercizio != null ? repo.GetByDomainEntity(esercizio) : null; windsorRep.Commit(); success = true; } catch (InvalidDataException ex) { windsorRep.Rollback(); return new RisultatoChiusuraEsercizio(null, ex.Message); } catch (Exception ex) { _log.ErrorFormat("Errore nella chiusura Esercizio straordinario - INIZIO TENTATIVO:{0} - {1} - esercizio straordinario:{2} - esercizio ordinario:{3} - conto{4} - ordine conto:{5} - dataChiusura:{6} - note:{7} - azienda:{8}", ex, (11 - retryCount), Utility.GetMethodDescription(), idEsercizioStraordinario, idEsercizioOrdinario, nomeConto, ordineConto, dataChiusura, note, userinfo.Azienda); windsorRep.Rollback(); if (!isRetryException(ex)) throw; // Add delay here if you wish. System.Threading.Thread.Sleep(1000 * (11 - retryCount)); retryCount--; _log.InfoFormat("Chiusura Esercizio straordinario - INIZIO TENTATIVO:{0} - {1} - esercizio straordinario:{2} - esercizio ordinario:{3} - conto{4} - ordine conto:{5} - dataChiusura:{6} - note:{7} - azienda:{8}", (11 - retryCount), Utility.GetMethodDescription(), idEsercizioStraordinario, idEsercizioOrdinario, nomeConto, ordineConto, dataChiusura, note, userinfo.Azienda); } } if (!success) windsorRep.Rollback(); return new RisultatoChiusuraEsercizio(item, string.Empty); }
public EsercizioDTO NewEsercizio(int idCondominio, int? annoGestionale, GestioneEsercizioEnum gestione, DateTime dataApertura, DateTime dataChiusura, string descrizione, string note, UserInfo userinfo) { var windsorRep = new WindsorConfigRepository(); try { windsorRep.BeginTransaction(userinfo); var repo = new EsercizioRepository(userinfo, windsorRep); var esercizi = windsorRep.GetContainer(userinfo.Azienda).Resolve<IEsercizioService>(); var esercizio = esercizi.NuovoEsercizio(idCondominio, annoGestionale, gestione, dataApertura, dataChiusura, descrizione, note); var item = esercizio != null ? repo.GetByDomainEntity(esercizio) : null; windsorRep.Commit(); return item; } catch (Exception ex) { _log.ErrorFormat("Errore nella creazione di un nuovo esercizio - {0} - idCondominio:{1} - annoGestionale:{2} - dataApertura:{3} - dataChiusura:{4} - descrizione:{5} - note:{6} - azienda:{7}", ex, Utility.GetMethodDescription(), idCondominio, annoGestionale.GetValueOrDefault(), dataApertura, dataChiusura, descrizione, note, userinfo.Azienda); windsorRep.Rollback(); throw; } }
public EsercizioDTO AperturaEsercizioStraordinario(int idEsercizioAttuale, DateTime dataApertura, DateTime dataChiusura, string descrizione, string note, TipoEsercizioStraordinarioEnum tipoEsercizioStraordinario, UserInfo userinfo) { var windsorRep = new WindsorConfigRepository(); try { windsorRep.BeginTransaction(userinfo); var repo = new EsercizioRepository(userinfo, windsorRep); var esercizi = windsorRep.GetContainer(userinfo.Azienda).Resolve<IEsercizioService>(); var esercizio = esercizi.AperturaEsercizioStraordinario(idEsercizioAttuale, dataApertura, dataChiusura, descrizione, note, tipoEsercizioStraordinario); var item = esercizio != null ? repo.GetByDomainEntity(esercizio) : null; windsorRep.Commit(); return item; } catch (Exception ex) { _log.ErrorFormat("Errore nella apertura dell'esercizio straordinario - {0} - idEsercizioAttuale:{1} - dataApertura:{2} - dataChiusura:{3} - descrizione:{4} - note:{5} - azienda:{6}", ex, Utility.GetMethodDescription(), idEsercizioAttuale, dataApertura, dataChiusura, descrizione, note, userinfo.Azienda); windsorRep.Rollback(); throw; } }
public EsercizioDTO GetUltimoEsercizioOrdinario(int idCondominio, UserInfo userinfo) { var windsorRep = new WindsorConfigRepository(); try { windsorRep.BeginTransaction(userinfo); var service = windsorRep.GetContainer(userinfo.Azienda).Resolve<IEsercizioService>(); EsercizioDTO item = null; var esercizio = service.GetUltimoEsercizioOrdinario(idCondominio); if (esercizio != null) { var repo = new EsercizioRepository(userinfo, windsorRep); item = repo.GetByDomainEntity(esercizio); } windsorRep.Commit(); return item; } catch (Exception ex) { _log.ErrorFormat("Errore nella lettura dell'ultimo esercizio ordinario - {0} - condominio:{1}", ex, Utility.GetMethodDescription(), idCondominio); windsorRep.Rollback(); throw; } }