public EsecuzioneImportazioneDati(string fileName, string password, string prefissoConto, bool contiStudio, TipoSaldi tipoSaldi, SoftwareInput inputType, TipoArchivioImportato tipoArchivio) { _tipoArchivio = tipoArchivio; _fileName = fileName; _inputType = inputType; _prefissoConto = prefissoConto; _contiStudio = contiStudio; _tipoSaldi = tipoSaldi; _password = password; InitializeComponent(); Load += esecuzioneImportazioneDatiLoad; DialogResult = DialogResult.OK; }
public string ImportaCondomini(string inputPathFileName, string prefixConto, bool importaContiStudio, TipoSaldi tipoSaldi, string password, SoftwareInput importType) { string message; var fullPathFileName = compressFile(inputPathFileName, importType == SoftwareInput.Excel || importType == SoftwareInput.Summa); // get some info about the input file var fileInfo = new FileInfo(fullPathFileName); // open input stream using (var stream = new FileStream(fullPathFileName, FileMode.Open, FileAccess.Read)) { var key = Guid.NewGuid(); using (var uploadStreamWithProgress = new StreamWithProgress(stream)) { //uploadStreamWithProgress.ProgressChanged += uploadStreamWithProgress_ProgressChanged; // start service client var client = new FileTransferServiceClient(); // upload file client.UploadFile(key.ToString(), fileInfo.Length, uploadStreamWithProgress); // close service client //client.Close(); } message = GetServiceClient().ImportazioneCondomini(key.ToString(), prefixConto, importaContiStudio, tipoSaldi, password, importType, GetUserInfo()); // Aggiorno le lista di condomini, unità immobiliari e persone _cacheService.LoadPersone(); _cacheService.LoadCondomini(); _cacheService.LoadUI(); _cacheService.LoadEsercizi(); CloseService(); } return message; }
private string loadCondominio(string codiceCondominio, string prefixConto, bool loadContiStudio, TipoSaldi tipoSaldi, Azienda azienda, OleDbConnection conn) { var message = string.Empty; var condominioAdapter = new OleDbDataAdapter("SELECT * FROM Stabili WHERE S_COD_STA=" + codiceCondominio, conn); var dsCondomini = new DataSet("Condomini"); condominioAdapter.Fill(dsCondomini, "Stabili"); var rowCondominio = dsCondomini.Tables["Stabili"].Rows[0]; var dataFineEsercizio = (DateTime)rowCondominio["S_FIN_ESE"]; var condominio = _daoFactory.GetCondominioDao().GetByCodice(codiceCondominio.PadLeft(3, '0'), azienda.ID); if (condominio == null) { condominio = new Condominio(rowCondominio["S_NOME"].ToString(), dataFineEsercizio.Day, dataFineEsercizio.Month, dataFineEsercizio.Year + 1, azienda) { Codice = codiceCondominio.PadLeft(3, '0'), Indirizzo = new Address { Indirizzo = rowCondominio["S_VIA"].ToString(), Cap = rowCondominio["S_CAP"].ToString() } }; // Indirizzo if (rowCondominio["S_LOCALITA"] != DBNull.Value && !string.IsNullOrEmpty(rowCondominio["S_LOCALITA"].ToString())) { var comuni = _daoFactory.GetComuneDao().GetByDescrizione(rowCondominio["S_LOCALITA"].ToString().Trim()); if (comuni.Count == 1) condominio.Indirizzo.Comune = comuni[0]; else condominio.Indirizzo.Localita = rowCondominio["S_LOCALITA"].ToString(); } _daoFactory.GetCondominioDao().SaveOrUpdate(condominio); addDefault(condominio, loadContiStudio); } else { // Eliminazione Movimenti Bancari _daoFactory.GetMovimentoBancarioDao().ExecuteQuery("DeleteMovimentiBancari", new[] {new QueryParam("IdCondominio", condominio.ID)}); _daoFactory.GetCondominioDao().ExecuteQuery("DeleteAnagraficaContabilitaCondominio", new[] {new QueryParam("IdCondominio", condominio.ID)}); // Eliminazione vecchi dati foreach (var unita in _daoFactory.GetUnitaImmobiliareDao().GetByCondominio(condominio.ID)) { foreach (var mill in unita.Millesimi) { mill.ContoRiferimento.Millesimi.Remove(mill); _daoFactory.GetMillesimoDao().Delete(mill); } unita.Millesimi.Clear(); IList<SoggettoCondominio> soggetti = unita.Soggetti.ToList(); foreach (var sogg in soggetti) { sogg.UnitaImmobiliare.Soggetti.Remove(sogg); _daoFactory.GetSoggettoCondominioDao().Delete(sogg); } unita.Soggetti.Clear(); unita.GruppoStabileRiferimento.UnitaImmobiliari.Remove(unita); _daoFactory.GetUnitaImmobiliareDao().Delete(unita); } foreach (Palazzina stabileDelete in condominio.Palazzine) { foreach (GruppoStabile gruppo in stabileDelete.GruppiStabile) { _daoFactory.GetGruppoStabileDao().Delete(gruppo); } _daoFactory.GetPalazzinaDao().Delete(stabileDelete); } condominio.Palazzine.Clear(); var stabileFirst = new Palazzina(condominio, "Stabile A"); _daoFactory.GetPalazzinaDao().SaveOrUpdate(stabileFirst); // Dati Bancari foreach (DatiBancariCondomini banca in condominio.DatiBancari) { foreach (MovimentoBancario mov in banca.MovimentiBancari) _daoFactory.GetMovimentoBancarioDao().Delete(mov); _daoFactory.GetDatiBancariCondominiDao().Delete(banca); } condominio.DatiBancari.Clear(); // Piano Conti foreach (Conto contoDelete in condominio.Conti) _daoFactory.GetContoDao().Delete(contoDelete); condominio.Conti.Clear(); // Esercizi foreach (Esercizio esercizioDelete in condominio.Esercizi) { esercizioDelete.AnnoGestionale.Esercizi.Remove(esercizioDelete); _daoFactory.GetEsercizioDao().Delete(esercizioDelete); } condominio.Esercizi.Clear(); // Anno Gestionale foreach (AnnoGestionale anno in condominio.AnniGestionali) _daoFactory.GetAnnoGestionaleDao().Delete(anno); condominio.AnniGestionali.Clear(); // ------------------------------------- // Default del condominio // ------------------------------------- addDefault(condominio, loadContiStudio); } if (rowCondominio["S_NOTE"] != DBNull.Value && !string.IsNullOrEmpty(rowCondominio["S_NOTE"].ToString())) condominio.Note = rowCondominio["S_NOTE"].ToString(); if (rowCondominio["S_COD_SIA"] != DBNull.Value && !string.IsNullOrEmpty(rowCondominio["S_COD_SIA"].ToString())) condominio.CodiceSIA = rowCondominio["S_COD_SIA"].ToString().Trim(); if (rowCondominio["S_COD_FISCALE"] != DBNull.Value && !string.IsNullOrEmpty(rowCondominio["S_COD_FISCALE"].ToString())) condominio.CodiceFiscale = rowCondominio["S_COD_FISCALE"].ToString().Trim(); if (rowCondominio["S_IBAN_COMPLETO"] != DBNull.Value && !string.IsNullOrEmpty(rowCondominio["S_IBAN_COMPLETO"].ToString())) { var datiBancari = new DatiBancariCondomini(rowCondominio["S_IBAN_COMPLETO"].ToString().Trim(), condominio); condominio.DatiBancari.Add(datiBancari); } else if (rowCondominio["S_ABI"] != DBNull.Value && !string.IsNullOrEmpty(rowCondominio["S_ABI"].ToString()) && rowCondominio["S_CAB"] != DBNull.Value && !string.IsNullOrEmpty(rowCondominio["S_CAB"].ToString()) && rowCondominio["S_NR_CC"] != DBNull.Value && !string.IsNullOrEmpty(rowCondominio["S_NR_CC"].ToString())) { var coor = new CoordinateBancarie { Abi = rowCondominio["S_ABI"].ToString().Trim().PadLeft(5, '0'), Cab = rowCondominio["S_CAB"].ToString().Trim().PadLeft(5, '0'), ContoCorrente = rowCondominio["S_NR_CC"].ToString().Trim().PadLeft(12, '0') }; var datiBancari = new DatiBancariCondomini(coor.CalcolaIBAN(), condominio); condominio.DatiBancari.Add(datiBancari); } // Scale var stabile = Library.IesiGenericCollections<Palazzina>.GetByIndex(condominio.Palazzine, 0); var scala = Library.IesiGenericCollections<GruppoStabile>.GetByIndex(stabile.GruppiStabile, 0); var firstScala = true; for (int i = 1; i <= 52; i++) { if (rowCondominio["S_DES_CIV" + i.ToString().PadLeft(2, '0')] != DBNull.Value && !string.IsNullOrEmpty(rowCondominio["S_DES_CIV" + i.ToString().PadLeft(2, '0')].ToString())) { if (firstScala && scala != null) { scala.Descrizione = rowCondominio["S_DES_CIV" + i.ToString().PadLeft(2, '0')].ToString(); scala.Indirizzo = new Address {Indirizzo = condominio.Indirizzo.Indirizzo}; firstScala = false; } else { var scalaNew = new GruppoStabile(stabile, rowCondominio["S_DES_CIV" + i.ToString().PadLeft(2, '0')].ToString()) {Indirizzo = {Indirizzo = condominio.Indirizzo.Indirizzo}}; stabile.GruppiStabile.Add(scalaNew); _daoFactory.GetGruppoStabileDao().SaveOrUpdate(scalaNew); } } } if (firstScala && scala != null) { scala.Indirizzo = new Address {Indirizzo = condominio.Indirizzo.Indirizzo}; } // ---------------------------------------------------------------------------------- // Piano dei conti // ---------------------------------------------------------------------------------- var pianoContiAdapter = new OleDbDataAdapter("SELECT * FROM PiaContS WHERE PS_COD_STA=" + codiceCondominio, conn); pianoContiAdapter.Fill(dsCondomini, "PianoConti"); var loadedConti = new Dictionary<int, Conto>(); var tbPianoConti = dsCondomini.Tables["PianoConti"]; Conto conto = null; var indexConto = 0; foreach (DataRow row in tbPianoConti.Rows) { try { conto = loadContoSottoconto(row, condominio, conto, loadedConti, prefixConto, ref indexConto); } catch (Exception ex) { _log.Error("Errore inaspettato nell'importazione di un condominio da YStabili - (Piano dei conti) - " + Library.Utility.GetMethodDescription() + " - PS_CONTO:" + row["PS_CONTO"] + " - PS_SOTTOC:" + row["PS_SOTTOC"], ex); message = "Errore inaspettato nell'importazione di un condominio da YStabili - " + ex.Message; return message; } } // ---------------------------------------------------------------------------------- // Anagrafiche // ---------------------------------------------------------------------------------- var unitaAdapter = new OleDbDataAdapter("SELECT * FROM Unita WHERE U_COD_STA=" + codiceCondominio + " ORDER BY U_COD_UNITA", conn); var soggettiAdapter = new OleDbDataAdapter("SELECT * FROM Condomini WHERE C_COD_STA=" + codiceCondominio + " ORDER BY C_COD_UNITA", conn); unitaAdapter.Fill(dsCondomini, "Unita"); soggettiAdapter.Fill(dsCondomini, "Condomini"); var tbUnita = dsCondomini.Tables["Unita"]; var tbAnagrafiche = dsCondomini.Tables["Condomini"]; // Unità Immobiliari UnitaImmobiliare lastUnita = null; var ordineUnita = 0; foreach (DataRow row in tbUnita.Rows) { try { var soggetti = tbAnagrafiche.Select("C_COD_STA = " + row["U_COD_STA"] + " AND C_COD_UNITA = " + row["U_COD_UNITA"]); UnitaImmobiliare unitaCorrente; if (soggetti.All(isConduttore) && isConduttore(soggetti[0])) unitaCorrente = lastUnita; else { var indexScala = 0; if (row["U_NR_CIVICO"] != DBNull.Value && !string.IsNullOrEmpty(row["U_NR_CIVICO"].ToString())) indexScala = int.Parse(row["U_NR_CIVICO"].ToString()) - 1; var scalaCorrente = Library.IesiGenericCollections<GruppoStabile>.GetByIndex(stabile.GruppiStabile, indexScala); ordineUnita++; unitaCorrente = new UnitaImmobiliare(scalaCorrente, _daoFactory.GetTipoUnitaImmobiliareDao().GetById(1, false)) { Ordine = ordineUnita, Descrizione = "$proprietario1", AziendaID = azienda.ID, CodiceImportazione = row["U_COD_STA"] + "&" + row["U_COD_UNITA"] }; lastUnita = unitaCorrente; _daoFactory.GetUnitaImmobiliareDao().SaveOrUpdate(unitaCorrente); } var soggettiCondominio = setSoggettiUnita(unitaCorrente, soggetti); if (soggettiCondominio.Count > 0) { // Saldi inizio esercizio setSaldiInizioEsercizio(row, soggettiCondominio, tipoSaldi); // Millesimi setMillesimi(row, unitaCorrente, loadedConti); } } catch (Exception ex) { _log.Error("Errore inaspettato nell'importazione di un condominio da YStabili - (Unità Immobiliare) - " + Library.Utility.GetMethodDescription() + " - U_COD_STA:" + row["U_COD_STA"] + " - U_COD_UNITA:" + row["U_COD_UNITA"], ex); message = "Errore inaspettato nell'importazione di un condominio da YStabili - " + ex.Message; return message; } } if (string.IsNullOrEmpty(message)) { _log.Info("Caricato il condominio: " + codiceCondominio + " - " + condominio.Descrizione + " -- " + Library.Utility.GetMethodDescription()); } return message; }
public string LoadCondomini(string key, string prefixConto, bool loadContiStudio, TipoSaldi tipoSaldi, int idAzienda, string password) { string message = string.Empty; try { string databasePath = saveDatabase(key); _log.Info("Salvato il database nel percorso: " + databasePath + " - " + Library.Utility.GetMethodDescription()); var conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0; User Id=; Jet OLEDB:Database Password="******"; Data Source=" + databasePath); var azienda = _daoFactory.GetAziendaDao().GetById(idAzienda, false); var condominioAdapter = new OleDbDataAdapter("SELECT * FROM Stabili;", conn); var dsCondomini = new DataSet("Condomini"); condominioAdapter.Fill(dsCondomini, "Stabili"); message = dsCondomini.Tables["Stabili"].Rows.Cast<DataRow>().Aggregate(message, (current, row) => current + loadCondominio(row["S_COD_STA"].ToString(), prefixConto, loadContiStudio, tipoSaldi, azienda, conn)); _log.Info("Caricati " + dsCondomini.Tables["Stabili"].Rows.Count + " condomini - Messaggio:" + message + " - " + Library.Utility.GetMethodDescription()); return message; } catch (OleDbException ex) { message = ex.Message; _log.Error("Errore inaspettato nell'importazione di un condominio da YStabili: " + Library.Utility.GetMethodDescription() + " - message: " + message, ex); } catch (Exception ex) { message = ex.Message; _log.Error("Errore inaspettato nell'importazione di un condominio da YStabili: " + Library.Utility.GetMethodDescription() + " - message: " + message, ex); } return message; }
public string LoadCondominio(string key, string codiceCondominio, string prefixConto, bool loadContiStudio, TipoSaldi tipoSaldi, int idAzienda, string password) { string message; try { var databasePath = saveDatabase(key); _log.Info("Salvato il database nel percorso: " + databasePath + " - " + Library.Utility.GetMethodDescription()); // =========================================================================================================== // Lettura Tabelle // =========================================================================================================== // ---------------------------------------------------------------------------------- // Condomini // ---------------------------------------------------------------------------------- var conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0; User Id=; Jet OLEDB:Database Password="******"; Data Source=" + databasePath); var azienda = _daoFactory.GetAziendaDao().GetById(idAzienda, false); message = loadCondominio(codiceCondominio, prefixConto, loadContiStudio, tipoSaldi, azienda, conn); _log.Info("Caricato il condominio " + codiceCondominio + " - Messaggio:" + message + " - " + Library.Utility.GetMethodDescription()); } catch (OleDbException ex) { message = ex.Message; _log.Error("Errore inaspettato nell'importazione di un condominio da YStabili: " + Library.Utility.GetMethodDescription() + " - message: " + message, ex); } catch (Exception ex) { message = ex.Message; _log.Error("Errore inaspettato nell'importazione di un condominio da YStabili: " + Library.Utility.GetMethodDescription() + " - message: " + message, ex); } return message; }
public string LoadCondominioOLD(byte[] database, string codiceCondominio, TipoSaldi tipoSaldi, int idAzienda, string password) { string message = string.Empty; try { // ----------------------------------------------------------------------------------------------------------- // Decompressione del database // ----------------------------------------------------------------------------------------------------------- const string databasePath = @"C:\temp\y.mdb"; var fsOut = new FileStream(databasePath, FileMode.Create, FileAccess.Write, FileShare.None); var gZipStream = new GZipStream(new MemoryStream(database), CompressionMode.Decompress); const int bufferSize = 4096; var b = new byte[bufferSize]; while (true) { int n = gZipStream.Read(b, 0, b.Length); if (n > 0) fsOut.Write(b, 0, n); else break; } fsOut.Close(); fsOut.Dispose(); // =========================================================================================================== // Lettura Tabelle // =========================================================================================================== // ---------------------------------------------------------------------------------- // Condomini // ---------------------------------------------------------------------------------- var conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0; User Id=; Jet OLEDB:Database Password="******"; Data Source=" + databasePath); var condominioAdapter = new OleDbDataAdapter("SELECT * FROM Stabili WHERE S_COD_STA=" + codiceCondominio, conn); var azienda = _daoFactory.GetAziendaDao().GetById(idAzienda, false); var dsCondomini = new DataSet("Condomini"); condominioAdapter.Fill(dsCondomini, "Stabili"); var rowCondominio = dsCondomini.Tables["Stabili"].Rows[0]; var dataFineEsercizio = (DateTime)rowCondominio["S_FIN_ESE"]; var condominio = _daoFactory.GetCondominioDao().GetByCodice(codiceCondominio.PadLeft(3, '0'), azienda.ID); if (condominio == null) { condominio = new Condominio(rowCondominio["S_NOME"].ToString(), dataFineEsercizio.Day, dataFineEsercizio.Month, dataFineEsercizio.Year + 1, azienda) { Codice = codiceCondominio.PadLeft(3, '0'), Indirizzo = new Address { Indirizzo = rowCondominio["S_VIA"].ToString(), Cap = rowCondominio["S_CAP"].ToString() } }; // Indirizzo if (rowCondominio["S_LOCALITA"] != DBNull.Value && !string.IsNullOrEmpty(rowCondominio["S_LOCALITA"].ToString())) { var comuni = _daoFactory.GetComuneDao().GetByDescrizione(rowCondominio["S_LOCALITA"].ToString().Trim()); if (comuni.Count == 1) condominio.Indirizzo.Comune = comuni[0]; else condominio.Indirizzo.Localita = rowCondominio["S_LOCALITA"].ToString(); } _daoFactory.GetCondominioDao().SaveOrUpdate(condominio); addDefault(condominio, true); } else { // Eliminazione vecchi dati foreach(var unita in _daoFactory.GetUnitaImmobiliareDao().GetByCondominio(condominio.ID)) { foreach (var mill in unita.Millesimi) { mill.ContoRiferimento.Millesimi.Remove(mill); _daoFactory.GetMillesimoDao().Delete(mill); } unita.Millesimi.Clear(); unita.GruppoStabileRiferimento.UnitaImmobiliari.Remove(unita); _daoFactory.GetUnitaImmobiliareDao().Delete(unita); } foreach (var stabileDelete in condominio.Palazzine) { foreach (var gruppo in stabileDelete.GruppiStabile) { _daoFactory.GetGruppoStabileDao().Delete(gruppo); } _daoFactory.GetPalazzinaDao().Delete(stabileDelete); } condominio.Palazzine.Clear(); var stabileFirst = new Palazzina(condominio, "Stabile A"); _daoFactory.GetPalazzinaDao().SaveOrUpdate(stabileFirst); // Dati Bancari foreach (var banca in condominio.DatiBancari) { foreach (var mov in banca.MovimentiBancari) _daoFactory.GetMovimentoBancarioDao().Delete(mov); _daoFactory.GetDatiBancariCondominiDao().Delete(banca); } condominio.DatiBancari.Clear(); // Piano Conti foreach (var contoDelete in condominio.Conti) _daoFactory.GetContoDao().Delete(contoDelete); condominio.Conti.Clear(); // Esercizi foreach(var esercizioDelete in condominio.Esercizi) { esercizioDelete.AnnoGestionale.Esercizi.Remove(esercizioDelete); _daoFactory.GetEsercizioDao().Delete(esercizioDelete); } condominio.Esercizi.Clear(); // Anno Gestionale foreach(var anno in condominio.AnniGestionali) _daoFactory.GetAnnoGestionaleDao().Delete(anno); condominio.AnniGestionali.Clear(); // ------------------------------------- // Default del condominio // ------------------------------------- // Conti comuni del Piano dei conti var conti = _daoFactory.GetPianoContiDao().GetByAzienda(idAzienda); foreach (var pianoConto in conti) pianoConto.ConvertToConto(condominio); // Nuovo esercizio var inizioEsercizioOld = (DateTime)rowCondominio["S_INI_ESE"]; var fineEsercizioOld = (DateTime)rowCondominio["S_FIN_ESE"]; var annoNew = new AnnoGestionale(condominio, inizioEsercizioOld.AddYears(1).Year, fineEsercizioOld.AddYears(1).Year); _daoFactory.GetAnnoGestionaleDao().SaveOrUpdate(annoNew); var esercizioNew = new Esercizio(condominio, inizioEsercizioOld.AddYears(1), fineEsercizioOld.AddYears(1), annoNew, GestioneEsercizioEnum.Ordinario); _daoFactory.GetEsercizioDao().SaveOrUpdate(esercizioNew); } if (rowCondominio["S_NOTE"] != DBNull.Value && !string.IsNullOrEmpty(rowCondominio["S_NOTE"].ToString())) condominio.Note = rowCondominio["S_NOTE"].ToString(); if (rowCondominio["S_COD_SIA"] != DBNull.Value && !string.IsNullOrEmpty(rowCondominio["S_COD_SIA"].ToString())) condominio.CodiceSIA = rowCondominio["S_COD_SIA"].ToString().Trim(); if (rowCondominio["S_COD_FISCALE"] != DBNull.Value && !string.IsNullOrEmpty(rowCondominio["S_COD_FISCALE"].ToString())) condominio.CodiceFiscale = rowCondominio["S_COD_FISCALE"].ToString().Trim(); if (rowCondominio["S_IBAN_COMPLETO"] != DBNull.Value && !string.IsNullOrEmpty(rowCondominio["S_IBAN_COMPLETO"].ToString())) { var datiBancari = new DatiBancariCondomini(rowCondominio["S_IBAN_COMPLETO"].ToString().Trim(), condominio); condominio.DatiBancari.Add(datiBancari); } else if (rowCondominio["S_ABI"] != DBNull.Value && !string.IsNullOrEmpty(rowCondominio["S_ABI"].ToString()) && rowCondominio["S_CAB"] != DBNull.Value && !string.IsNullOrEmpty(rowCondominio["S_CAB"].ToString()) && rowCondominio["S_NR_CC"] != DBNull.Value && !string.IsNullOrEmpty(rowCondominio["S_NR_CC"].ToString())) { var coor = new CoordinateBancarie { Abi = rowCondominio["S_ABI"].ToString().Trim().PadLeft(5, '0'), Cab = rowCondominio["S_CAB"].ToString().Trim().PadLeft(5, '0'), ContoCorrente = rowCondominio["S_NR_CC"].ToString().Trim().PadLeft(12, '0') }; var datiBancari = new DatiBancariCondomini(coor.CalcolaIBAN(), condominio); condominio.DatiBancari.Add(datiBancari); } // Scale var stabile = Library.IesiGenericCollections<Palazzina>.GetByIndex(condominio.Palazzine, 0); var scala = Library.IesiGenericCollections<GruppoStabile>.GetByIndex(stabile.GruppiStabile, 0); var firstScala = true; for(int i=1; i<=52; i++) { if (rowCondominio["S_DES_CIV" + i.ToString().PadLeft(2, '0')] != DBNull.Value && !string.IsNullOrEmpty(rowCondominio["S_DES_CIV" + i.ToString().PadLeft(2, '0')].ToString())) { if(firstScala && scala != null) { scala.Descrizione = rowCondominio["S_DES_CIV" + i.ToString().PadLeft(2, '0')].ToString(); scala.Indirizzo = new Address {Indirizzo = condominio.Indirizzo.Indirizzo}; firstScala = false; } else { var scalaNew = new GruppoStabile(stabile, rowCondominio["S_DES_CIV" + i.ToString().PadLeft(2, '0')].ToString()) {Indirizzo = {Indirizzo = condominio.Indirizzo.Indirizzo}}; stabile.GruppiStabile.Add(scalaNew); _daoFactory.GetGruppoStabileDao().SaveOrUpdate(scalaNew); } } } if (firstScala && scala != null) { scala.Indirizzo = new Address {Indirizzo = condominio.Indirizzo.Indirizzo}; } // ---------------------------------------------------------------------------------- // Piano dei conti // ---------------------------------------------------------------------------------- var pianoContiAdapter = new OleDbDataAdapter("SELECT * FROM PiaContS WHERE PS_COD_STA=" + codiceCondominio, conn); pianoContiAdapter.Fill(dsCondomini, "PianoConti"); var loadedConti = new Dictionary<int, Conto>(); var tbPianoConti = dsCondomini.Tables["PianoConti"]; Conto conto = null; var indexConto = 0; foreach (DataRow row in tbPianoConti.Rows) { try { conto = loadContoSottoconto(row, condominio, conto, loadedConti, string.Empty, ref indexConto); } catch (Exception ex) { _log.Error("Errore inaspettato nell'importazione di un condominio da YStabili - (Piano dei conti) - " + Library.Utility.GetMethodDescription() + " - PS_CONTO:" + row["PS_CONTO"] + " - PS_SOTTOC:" + row["PS_SOTTOC"], ex); throw; } } // ---------------------------------------------------------------------------------- // Anagrafiche // ---------------------------------------------------------------------------------- var unitaAdapter = new OleDbDataAdapter("SELECT * FROM Unita WHERE U_COD_STA=" + codiceCondominio, conn); var soggettiAdapter = new OleDbDataAdapter("SELECT * FROM Condomini WHERE C_COD_STA=" + codiceCondominio, conn); unitaAdapter.Fill(dsCondomini, "Unita"); soggettiAdapter.Fill(dsCondomini, "Condomini"); var tbUnita = dsCondomini.Tables["Unita"]; var tbAnagrafiche = dsCondomini.Tables["Condomini"]; // Unità Immobiliari UnitaImmobiliare lastUnita = null; int ordineUnita = 0; foreach (DataRow row in tbUnita.Rows) { try { var soggetti = tbAnagrafiche.Select("C_COD_STA = " + row["U_COD_STA"] + " AND C_COD_UNITA = " + row["U_COD_UNITA"]); UnitaImmobiliare unitaCorrente; if (soggetti.Length == 1 && isConduttore(soggetti[0])) unitaCorrente = lastUnita; else { var indexScala = 0; if (row["U_NR_CIVICO"] != DBNull.Value && !string.IsNullOrEmpty(row["U_NR_CIVICO"].ToString())) indexScala = int.Parse(row["U_NR_CIVICO"].ToString()) - 1; var scalaCorrente = Library.IesiGenericCollections<GruppoStabile>.GetByIndex(stabile.GruppiStabile, indexScala); ordineUnita++; unitaCorrente = new UnitaImmobiliare(scalaCorrente, _daoFactory.GetTipoUnitaImmobiliareDao().GetById(1, false)) { Ordine = ordineUnita, Descrizione = row["U_DESC_UNITA"].ToString(), AziendaID = idAzienda, CodiceImportazione = row["U_COD_STA"] + "&" + row["U_COD_UNITA"] }; lastUnita = unitaCorrente; _daoFactory.GetUnitaImmobiliareDao().SaveOrUpdate(unitaCorrente); } var soggettiCondominio = setSoggettiUnita(unitaCorrente, soggetti); if (soggettiCondominio.Count > 0) { // Saldi inizio esercizio setSaldiInizioEsercizio(row, soggettiCondominio, tipoSaldi); // Millesimi setMillesimi(row, unitaCorrente, loadedConti); } } catch(Exception ex) { _log.Error("Errore inaspettato nell'importazione di un condominio da YStabili - (Unità Immobiliare) - " + Library.Utility.GetMethodDescription() + " - U_COD_STA:" + row["U_COD_STA"] + " - U_COD_UNITA:" + row["U_COD_UNITA"], ex); throw; } } } catch (OleDbException ex) { message = ex.Message; _log.Error("Errore inaspettato nell'importazione di un condominio da YStabili: " + Library.Utility.GetMethodDescription() + " - message: " + message, ex); } catch (Exception ex) { message = ex.Message; _log.Error("Errore inaspettato nell'importazione di un condominio da YStabili: " + Library.Utility.GetMethodDescription() + " - message: " + message, ex); } return message; }
private void setSaldiInizioEsercizio(DataRow row, IList<SoggettoCondominio> soggetti, TipoSaldi tipoSaldi) { if (row["U_SALDO_ES_ATT"] != DBNull.Value && tipoSaldi == TipoSaldi.EsercizioAttuale) { var esercizio = Library.IesiGenericCollections<Esercizio>.GetByIndex(soggetti[0].UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.CondominioRiferimento.Esercizi, 0); var saldo = new SaldoSoggetto(soggetti[0], esercizio, Convert.ToDecimal((double)row["U_SALDO_ES_ATT"]) * -1); _daoFactory.GetSaldoSoggettoDao().SaveOrUpdate(saldo); } else if(row["U_SALDO_ES_PRE"] != DBNull.Value && tipoSaldi == TipoSaldi.EsercizioPrecedente) { var esercizio = Library.IesiGenericCollections<Esercizio>.GetByIndex(soggetti[0].UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.CondominioRiferimento.Esercizi, 0); var saldo = new SaldoSoggetto(soggetti[0], esercizio, Convert.ToDecimal((double)row["U_SALDO_ES_PRE"]) * -1); _daoFactory.GetSaldoSoggettoDao().SaveOrUpdate(saldo); } }
private string loadCondominio(string codiceCondominio, bool loadContiStudio, TipoSaldi tipoSaldi, Azienda azienda, OleDbConnection conn) { var message = string.Empty; var condominioAdapter = new OleDbDataAdapter("SELECT TOP 1 * FROM CT02F0 LEFT JOIN CT03F0 ON CT02F0.CODSTAB = CT03F0.CODSTAB WHERE CT02F0.CODITTA = 1 AND CT02F0.CODSTAB=" + codiceCondominio + " ORDER BY CT03F0.DATAIN DESC", conn); var dsCondomini = new DataSet("Condomini"); condominioAdapter.Fill(dsCondomini, "Stabili"); var rowCondominio = dsCondomini.Tables["Stabili"].Rows[0]; var dataFineEsercizio = new DateTime(DateTime.Today.Year, 12, 31); if (rowCondominio["DATAIN"] != DBNull.Value && rowCondominio["DATAFI"] != DBNull.Value) { dataFineEsercizio = (DateTime)rowCondominio["DATAFI"]; } var condominio = _daoFactory.GetCondominioDao().GetByCodice(codiceCondominio.PadLeft(3, '0'), azienda.ID); if (condominio == null) { condominio = new Condominio(rowCondominio["CT02F0.INTEST"].ToString(), dataFineEsercizio.Day, dataFineEsercizio.Month, dataFineEsercizio.Year + 1, azienda) { Codice = codiceCondominio.PadLeft(3, '0'), Indirizzo = new Address { Indirizzo = rowCondominio["ORD"].ToString(), Cap = rowCondominio["CAP"].ToString() } }; // Indirizzo if (rowCondominio["LOCALITA"] != DBNull.Value && !string.IsNullOrEmpty(rowCondominio["LOCALITA"].ToString())) { IList<Comune> comuni = _daoFactory.GetComuneDao().GetByDescrizione(rowCondominio["LOCALITA"].ToString().Trim()); if (comuni.Count == 1) condominio.Indirizzo.Comune = comuni[0]; else { var comuniDescr = comuni.Where(item => item.Descrizione.Trim().ToUpper() == rowCondominio["LOCALITA"].ToString().Trim().ToUpper()).ToList(); if(comuniDescr.Count == 1) condominio.Indirizzo.Comune = comuniDescr.SingleOrDefault(); } if(condominio.Indirizzo.Comune == null) condominio.Indirizzo.Localita = rowCondominio["LOCALITA"].ToString(); } _daoFactory.GetCondominioDao().SaveOrUpdate(condominio); addDefault(condominio, loadContiStudio); } else { // Eliminazione vecchi dati condominio.ModelliRegistrazioneContabile.Clear(); foreach (ModelloRegistrazioneContabile modello in _daoFactory.GetModelloRegistrazioneContabileDao().GetByCondominio(condominio.ID)) _daoFactory.GetModelloRegistrazioneContabileDao().Delete(modello); foreach (UnitaImmobiliare unita in _daoFactory.GetUnitaImmobiliareDao().GetByCondominio(condominio.ID)) { foreach (Millesimo mill in unita.Millesimi) { mill.ContoRiferimento.Millesimi.Remove(mill); _daoFactory.GetMillesimoDao().Delete(mill); } unita.Millesimi.Clear(); IList<SoggettoCondominio> soggetti = unita.Soggetti.ToList(); foreach (SoggettoCondominio sogg in soggetti) { sogg.UnitaImmobiliare.Soggetti.Remove(sogg); _daoFactory.GetSoggettoCondominioDao().Delete(sogg); } unita.Soggetti.Clear(); unita.GruppoStabileRiferimento.UnitaImmobiliari.Remove(unita); _daoFactory.GetUnitaImmobiliareDao().Delete(unita); } foreach (Palazzina stabileDelete in condominio.Palazzine) { foreach (GruppoStabile gruppo in stabileDelete.GruppiStabile) { _daoFactory.GetGruppoStabileDao().Delete(gruppo); } _daoFactory.GetPalazzinaDao().Delete(stabileDelete); } condominio.Palazzine.Clear(); var stabileFirst = new Palazzina(condominio, "Stabile A"); _daoFactory.GetPalazzinaDao().SaveOrUpdate(stabileFirst); // Dati Bancari foreach (DatiBancariCondomini banca in condominio.DatiBancari) { foreach (MovimentoBancario mov in banca.MovimentiBancari) _daoFactory.GetMovimentoBancarioDao().Delete(mov); _daoFactory.GetDatiBancariCondominiDao().Delete(banca); } condominio.DatiBancari.Clear(); // Piano Conti foreach (Conto contoDelete in condominio.Conti) _daoFactory.GetContoDao().Delete(contoDelete); condominio.Conti.Clear(); // Esercizi foreach (Esercizio esercizioDelete in condominio.Esercizi) { esercizioDelete.AnnoGestionale.Esercizi.Remove(esercizioDelete); _daoFactory.GetEsercizioDao().Delete(esercizioDelete); } condominio.Esercizi.Clear(); // Anno Gestionale foreach (AnnoGestionale anno in condominio.AnniGestionali) _daoFactory.GetAnnoGestionaleDao().Delete(anno); condominio.AnniGestionali.Clear(); // ------------------------------------- // Default del condominio // ------------------------------------- addDefault(condominio, loadContiStudio); } if (rowCondominio["CODFISC"] != DBNull.Value && !string.IsNullOrEmpty(rowCondominio["CODFISC"].ToString())) condominio.CodiceFiscale = rowCondominio["CODFISC"].ToString().Trim(); // ---------------------------------------------------------------------------------- // Scale // ---------------------------------------------------------------------------------- var stabile = Library.IesiGenericCollections<Palazzina>.GetByIndex(condominio.Palazzine, 0); var scala = Library.IesiGenericCollections<GruppoStabile>.GetByIndex(stabile.GruppiStabile, 0); bool firstScala = true; var scaleAdapter = new OleDbDataAdapter("SELECT * FROM CT04F0 WHERE CODITTA = 1 AND CODSTAB=" + codiceCondominio, conn); scaleAdapter.Fill(dsCondomini, "Scale"); foreach(DataRow row in dsCondomini.Tables["Scale"].Rows) { if (firstScala) { scala.Descrizione = row["INTEST"].ToString(); scala.Indirizzo = new Address {Indirizzo = condominio.Indirizzo.Indirizzo}; scala.Ordine = 1; scala.CodiceImportazione = row["CODITTA"] + "&" + row["CODSTAB"] + "&" + row["GRUPPO"]; firstScala = false; } else { var scalaNew = new GruppoStabile(stabile, row["INTEST"].ToString()) {Indirizzo = {Indirizzo = condominio.Indirizzo.Indirizzo}}; stabile.GruppiStabile.Add(scalaNew); scalaNew.Ordine = Convert.ToInt32(row["GRUPPO"]); _daoFactory.GetGruppoStabileDao().SaveOrUpdate(scalaNew); } } if (firstScala && scala != null) { scala.Indirizzo = new Address {Indirizzo = condominio.Indirizzo.Indirizzo}; } // ---------------------------------------------------------------------------------- // Piano dei conti // ---------------------------------------------------------------------------------- var pianoContiAdapter = new OleDbDataAdapter("SELECT * FROM CT86F0 WHERE CODITTA = 1 AND CODSTAB=" + codiceCondominio, conn); pianoContiAdapter.Fill(dsCondomini, "PianoConti"); var sottoContiAdapter = new OleDbDataAdapter("SELECT * FROM CT88F0 WHERE CODITTA = 1 AND CODSTAB=" + codiceCondominio, conn); sottoContiAdapter.Fill(dsCondomini, "SottoConti"); var loadedConti = new Dictionary<int, Conto>(); var tbPianoConti = dsCondomini.Tables["PianoConti"]; Conto conto = null; foreach (DataRow row in tbPianoConti.Rows) { try { if(Convert.ToInt32(row["COLONNA"]) > 0 && row["DESCR1"] != DBNull.Value) conto = loadContoSottoconto(row, condominio, conto, dsCondomini.Tables["SottoConti"], loadedConti); } catch (Exception ex) { _log.Error("Errore inaspettato nell'importazione di un condominio da CONDOR: " + Library.Utility.GetMethodDescription() + " (Piano dei conti) - COLONNA:" + row["COLONNA"] + " - CODSTAB:" + row["CODSTAB"], ex); message = "Errore inaspettato nell'importazione di un condominio da CONDOR - " + ex.Message; return message; } } // ---------------------------------------------------------------------------------- // Anagrafiche // ---------------------------------------------------------------------------------- var cmd = new OleDbCommand("SELECT TOP 1 ESERCIZIO FROM CT08F0 WHERE CODITTA = 1 AND CODSTAB=" + codiceCondominio + " ORDER BY ESERCIZIO DESC", conn); if (conn.State == ConnectionState.Closed) conn.Open(); var lastEsercizio = Convert.ToInt32(cmd.ExecuteScalar()); conn.Close(); var unitaAdapter = new OleDbDataAdapter("SELECT * FROM CT05F0 WHERE CODITTA = 1 AND CODPOS >= 8000 AND CODPOS < 8100 AND CODSTAB=" + codiceCondominio + " AND ESERCIZIO = " + lastEsercizio.ToString() + " ORDER BY CODPOS", conn); var soggettiAdapter = new OleDbDataAdapter("SELECT * FROM CT06F0 WHERE CODITTA = 1 AND CODPOS >= 8000 AND CODSTAB=" + codiceCondominio + " ORDER BY CODPOS", conn); var millesimiAdapter = new OleDbDataAdapter("SELECT * FROM CT08F0 WHERE CODITTA = 1 AND CODSTAB=" + codiceCondominio + " AND ESERCIZIO = " + lastEsercizio.ToString() + " ORDER BY CODPOS", conn); unitaAdapter.Fill(dsCondomini, "Unita"); soggettiAdapter.Fill(dsCondomini, "Condomini"); millesimiAdapter.Fill(dsCondomini, "Millesimi"); var tbUnita = dsCondomini.Tables["Unita"]; var tbAnagrafiche = dsCondomini.Tables["Condomini"]; var tipoUnita = _daoFactory.GetTipoUnitaImmobiliareDao().GetById(1, false); // Unità Immobiliari var loadedSoggetti = new Dictionary<int, SoggettoCondominio>(); foreach (DataRow row in tbUnita.Rows) { try { var codiceUnita = Convert.ToInt32(row["CODPOS"]); var soggetti = tbAnagrafiche.Select("CODPOS = " + codiceUnita + " OR CODPOS = " + (codiceUnita + 100)); var gruppo = condominio.Gruppi.SingleOrDefault(item => item.Ordine == Convert.ToInt32(row["CN-GRUPPO"])) ?? condominio.Gruppi.FirstOrDefault(); if(row["SUBALT"] != DBNull.Value && row["SUBALT"].ToString().Length >= 3 && row["SUBALT"].ToString().ToUpper().StartsWith("UFF")) tipoUnita = _daoFactory.GetTipoUnitaImmobiliareDao().GetById(19, false); else if (row["SUBALT"] != DBNull.Value && row["SUBALT"].ToString().Length >= 3 && (row["SUBALT"].ToString().ToUpper().StartsWith("POSTO") || row["SUBALT"].ToString().ToUpper().StartsWith("GARAGE"))) tipoUnita = _daoFactory.GetTipoUnitaImmobiliareDao().GetById(3, false); var unitaCorrente = new UnitaImmobiliare(gruppo, tipoUnita) { Ordine = Convert.ToInt32(row["CODPOS"]) - 8000, Descrizione = row["INTEST1"].ToString().Trim() }; if (row["INTEST2"] != DBNull.Value && !string.IsNullOrEmpty(row["INTEST2"].ToString())) unitaCorrente.Descrizione += " " + row["INTEST2"].ToString().Trim(); unitaCorrente.Piano = row["PIANO"].ToString(); unitaCorrente.EstensioneInterno = row["INTERNO"].ToString(); unitaCorrente.AziendaID = azienda.ID; unitaCorrente.CodiceImportazione = row["CODITTA"] + "&" + row["CODSTAB"] + "&" + row["CODPOS"]; _daoFactory.GetUnitaImmobiliareDao().SaveOrUpdate(unitaCorrente); var soggettiCondominio = setSoggettiUnita(unitaCorrente, row, soggetti, loadedSoggetti); if (unitaCorrente.Soggetti.Count > 0) { // Saldi inizio esercizio setSaldiInizioEsercizio(row, soggettiCondominio, tipoSaldi); // Millesimi setMillesimi(row, dsCondomini.Tables["Millesimi"], unitaCorrente, loadedConti); } } catch (Exception ex) { _log.Error("Errore inaspettato nell'importazione di un condominio da CONDOR: " + Library.Utility.GetMethodDescription() + " (Unità Immobiliare) - CODSTAB:" + row["CODSTAB"] + " - CODPOS:" + row["CODPOS"], ex); message = "Errore inaspettato nell'importazione di un condominio da CONDOR - " + ex.Message; return message; } } if (string.IsNullOrEmpty(message)) { _log.Info("Caricato il condominio: " + codiceCondominio + " - " + condominio.Descrizione + " - " + Library.Utility.GetMethodDescription()); } return message; }
public string LoadCondomini(string key, string prefixConto, bool loadContiStudio, TipoSaldi tipoSaldi, int idAzienda, string password) { string message = string.Empty; try { string databasePath = saveDatabase(key); _log.Info("Salvato il database nel percorso: " + databasePath + " - " + Library.Utility.GetMethodDescription()); var conn = new OleDbConnection(string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0 Xml;HDR=YES;IMEX=1\";", databasePath)); var azienda = _daoFactory.GetAziendaDao().GetById(idAzienda, false); var condominioAdapter = new OleDbDataAdapter("SELECT * FROM CT02F0 WHERE CODITTA = 1;", conn); var dsCondomini = new DataSet("Condomini"); condominioAdapter.Fill(dsCondomini, "Stabili"); message = dsCondomini.Tables["Stabili"].Rows.Cast<DataRow>().Aggregate(message, (current, row) => current + loadCondominio(row["CODSTAB"].ToString(), loadContiStudio, tipoSaldi, azienda, conn)); _log.Info("Caricati " + dsCondomini.Tables["Stabili"].Rows.Count + " condomini - Messaggio:" + message + " - " + Library.Utility.GetMethodDescription()); return message; } catch (OleDbException ex) { message = ex.Message; _log.Error("Errore inaspettato nell'importazione di un condominio da CONDOR: " + Library.Utility.GetMethodDescription() + " - message: " + message, ex); } catch (Exception ex) { message = ex.Message; _log.Error("Errore inaspettato nell'importazione di un condominio da CONDOR: " + Library.Utility.GetMethodDescription() + " - message: " + message, ex); } return message; }
public string LoadCondominio(string key, string codiceCondominio, string prefixConto, bool loadContiStudio, TipoSaldi tipoSaldi, int idAzienda, string password) { string message; try { var databasePath = saveDatabase(key); _log.Info("Salvato il database nel percorso: " + databasePath + " - " + Library.Utility.GetMethodDescription()); // =========================================================================================================== // Lettura Tabelle // =========================================================================================================== // ---------------------------------------------------------------------------------- // Condomini // ---------------------------------------------------------------------------------- var conn = new OleDbConnection(string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0 Xml;HDR=YES;IMEX=1\";", databasePath)); Azienda azienda = _daoFactory.GetAziendaDao().GetById(idAzienda, false); message = loadCondominio(codiceCondominio, loadContiStudio, tipoSaldi, azienda, conn); _log.Info("Caricato il condominio " + codiceCondominio + " - Messaggio:" + message + " - " + Library.Utility.GetMethodDescription()); } catch (OleDbException ex) { message = ex.Message; _log.Error("Errore inaspettato nell'importazione di un condominio da CONDOR: " + Library.Utility.GetMethodDescription() + " - message: " + message, ex); } catch (Exception ex) { message = ex.Message; _log.Error("Errore inaspettato nell'importazione di un condominio da CONDOR: " + Library.Utility.GetMethodDescription() + " - message: " + message, ex); } return message; }
public string LoadCondominio(string key, string codiceCondominio, string prefixConto, bool loadContiStudio, TipoSaldi tipoSaldi, int idAzienda, string password) { string message = string.Empty; try { string databasePath = @"C:\temp\BWDB.bak"; string databaseCompressPath = Path.Combine("Upload", key); byte[] bufferWrite; // Will open the file to be decompressed FileStream fsSource; // Will write the new decompressed file FileStream fsDest; // To hold the compressed file GZipStream gzDecompressed; fsSource = new FileStream(databaseCompressPath, FileMode.Open, FileAccess.Read, FileShare.Read); // Will hold the compressed stream created from the destination stream gzDecompressed = new GZipStream(fsSource, CompressionMode.Decompress, true); // Retrieve the size of the file from the compressed archive's footer bufferWrite = new byte[4]; fsSource.Position = (int)fsSource.Length - 4; // Write the first 4 bytes of data from the compressed file into the buffer fsSource.Read(bufferWrite, 0, 4); // Set the position back at the start fsSource.Position = 0; int bufferLength = BitConverter.ToInt32(bufferWrite, 0); byte[] buffer = new byte[bufferLength + 100]; int readOffset = 0; int totalBytes = 0; // Loop through the compressed stream and put it into the buffer while (true) { int bytesRead = gzDecompressed.Read(buffer, readOffset, 100); // If we reached the end of the data if (bytesRead == 0) break; readOffset += bytesRead; totalBytes += bytesRead; } // Write the content of the buffer to the destination stream (file) fsDest = new FileStream(databasePath, FileMode.Create); fsDest.Write(buffer, 0, totalBytes); // Close the streams fsSource.Close(); gzDecompressed.Close(); fsDest.Close(); // =========================================================================================================== // Restore database // =========================================================================================================== SqlConnection conn = new SqlConnection(_daoFactory.GetCondominioDao().GetConnection().ConnectionString); conn.Open(); SqlCommand command = new SqlCommand("RESTORE DATABASE BWDB FROM DISK='" + databasePath + "' WITH REPLACE", conn); command.ExecuteNonQuery(); conn.Close(); // =========================================================================================================== // Caricamento tabelle importazione // =========================================================================================================== loadTabellaImportazione(codiceCondominio, idAzienda); } catch (OleDbException ex) { message = ex.Message; _log.Error("Errore inaspettato nell'importazione di un condominio da YStabili: " + Utility.GetMethodDescription() + " - message: " + message, ex); } catch (Exception ex) { message = ex.Message; _log.Error("Errore inaspettato nell'importazione di un condominio da YStabili: " + Utility.GetMethodDescription() + " - message: " + message, ex); } return message; }
public string LoadCondomini(string key, string prefixConto, bool loadContiStudio, TipoSaldi tipoSaldi, int idAzienda, string password) { return string.Empty; }
public string LoadCondomini(string key, string prefixConto, bool loadContiStudio, TipoSaldi tipoSaldi, int idAzienda, string password) { string message = string.Empty; try { string databasePath = saveDatabase(key); var conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0; User Id=; Jet OLEDB:Database Password="******"; Data Source=" + databasePath); Azienda azienda = _daoFactory.GetAziendaDao().GetById(idAzienda, false); var condominioAdapter = new OleDbDataAdapter("SELECT TabCondomìni.Codice AS Codice FROM TabCondomìni WHERE TabCondomìni.Attivo = True;", conn); var dsCondomini = new DataSet("Condomini"); condominioAdapter.Fill(dsCondomini, "TabCondomìni"); foreach (DataRow row in dsCondomini.Tables["TabCondomìni"].Rows) { try { string messaggioCondominio = loadCondominio(row["Codice"].ToString(), azienda, conn); if (!string.IsNullOrEmpty(messaggioCondominio)) message += messaggioCondominio + Environment.NewLine; } catch (Exception ex) { message = ex.Message; _log.Error("Errore inaspettato nell'importazione di un condominio da GeCo: " + Library.Utility.GetMethodDescription() + " - condominio:" + row["Codice"].ToString().Trim() + " - message: " + message, ex); continue; } } return message; } catch (OleDbException ex) { message = ex.Message; _log.Error("Errore inaspettato nell'importazione dei condomini da GeCo: " + Library.Utility.GetMethodDescription() + " - azienda:" + idAzienda + " - message: " + message, ex); } catch (Exception ex) { message = ex.Message; _log.Error("Errore inaspettato nell'importazione dei condomini da GeCo: " + Library.Utility.GetMethodDescription() + " - azienda:" + idAzienda + " - message: " + message, ex); } return message; }
public string LoadCondominio(string key, string codiceCondominio, string prefixConto, bool loadContiStudio, TipoSaldi tipoSaldi, int idAzienda, string password) { string message; try { string databasePath = saveDatabase(key); var conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0; User Id=; Jet OLEDB:Database Password="******"; Data Source=" + databasePath); Azienda azienda = _daoFactory.GetAziendaDao().GetById(idAzienda, false); message = loadCondominio(codiceCondominio, azienda, conn); } catch (OleDbException ex) { message = ex.Message; _log.Error("Errore inaspettato nell'importazione di un condominio da GeCo: " + Library.Utility.GetMethodDescription() + " - message: " + message, ex); } catch (Exception ex) { message = ex.Message; _log.Error("Errore inaspettato nell'importazione di un condominio da GeCo: " + Library.Utility.GetMethodDescription() + " - message: " + message, ex); } if (!string.IsNullOrEmpty(message)) { _persistenceContext.RollbackAndCloseSession(Security.Login.Instance.CurrentLogin().LoginName); _persistenceContext.BeginTransaction(Security.Login.Instance.CurrentLogin().LoginName, IsolationLevel.ReadUncommitted); } return message; }
public string ImportazioneCondomini(string key, string prefixConto, bool loadContiStudio, TipoSaldi tipoSaldi, string password, SoftwareInput inputType, UserInfo userinfo) { var windsorRep = new WindsorConfigRepository(); try { windsorRep.BeginTransaction(userinfo, IsolationLevel.ReadUncommitted); IImportDati importDatiService = null; switch (inputType) { case SoftwareInput.YStabili: importDatiService = windsorRep.GetContainer(userinfo.Azienda).Resolve<IImportDati>("importdati.ystabili"); break; case SoftwareInput.Brainware: importDatiService = windsorRep.GetContainer(userinfo.Azienda).Resolve<IImportDati>("importdati.brainware"); break; case SoftwareInput.GeCo: importDatiService = windsorRep.GetContainer(userinfo.Azienda).Resolve<IImportDati>("importdati.geco"); break; case SoftwareInput.Condor: importDatiService = windsorRep.GetContainer(userinfo.Azienda).Resolve<IImportDati>("importdati.condor"); break; case SoftwareInput.Excel: importDatiService = windsorRep.GetContainer(userinfo.Azienda).Resolve<IImportDati>("importdati.excel"); break; case SoftwareInput.Summa: importDatiService = windsorRep.GetContainer(userinfo.Azienda).Resolve<IImportDati>("importdati.summa"); break; } string item = importDatiService != null ? importDatiService.LoadCondomini(key, prefixConto, loadContiStudio, tipoSaldi, userinfo.Azienda, password) : "L'applicazione origine non è riconosciuta"; if(string.IsNullOrEmpty(item)) windsorRep.Commit(); else windsorRep.Rollback(IsolationLevel.ReadUncommitted); return item; } catch (Exception ex) { _log.Error("Errore nella importazione di tutti i condomini - " + Utility.GetMethodDescription() + " - idAzienda:" + userinfo.Azienda + " - software:" + inputType.ToString(), ex); windsorRep.Rollback(IsolationLevel.ReadUncommitted); throw; } }