Ejemplo n.º 1
0
        private void loadData(ContatoreDTO contatore)
        {
            try
            {
                if (contatore != null)
                {
                    _contatore = contatore;

                    //======================================================================
                    //  Combo
                    //======================================================================
                    sceltaCondominioCombo1.LoadData();
                    sceltaCondominioCombo1.SetCondominioInitial(_contatore.CodiceCondominio);

                    // Tipo Contatore
                    tipoContatoreDTOBindingSource.DataSource = getUtenzaService().GetTipiContatoreByAzienda();

                    //======================================================================
                    //  Contatore
                    //======================================================================
                    contatoreDTOBindingSource.DataSource = _contatore;
                    BusinessClass = new[] { (BaseDTOOfint)_contatore };
                    Text = "Contatore - Id: " + _contatore.ID + " - " + _contatore.Codice + " " + _contatore.Descrizione;
                }
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nel load del contatore - {0} - contatore:{1} - azienda:{2}", ex, contatore != null ? contatore.ID.ToString() : "<NULL>", Security.Login.Instance.CurrentLogin().Azienda);
                sceltaCondominioCombo1.SelectItem -= sceltaCondominioCombo1SelectItem;
                CloseForm();
            }
        }
Ejemplo n.º 2
0
        public DettaglioContatoreUI(ContatoreDTO contatoreCache)
        {
            InitializeComponent();

            if (!DesignMode)
            {
                inizializza();
                _contatore = getUtenzaService().GetContatoreById(contatoreCache.ID);
                loadData(_contatore);
            }
        }
Ejemplo n.º 3
0
        private Contatore manage(ContatoreDTO dto)
        {
            Contatore item = null;
            bool result;

            // Controllo sullo stato U, I
            switch (dto.Stato.ToUpper())
            {
                case "U":
                    result = update(dto, out item);

                    if (!result)
                    {
                        //Il dato sul database è più recente di quello utilizzato
                        //unit.ID = 0;
                        item = null;
                    }
                    break;
                case "I":
                    result = insert(dto, out item);

                    if (!result)
                        throw new Exception("Impossibile scrivere sul database");
                    break;
            }
            return item;
        }
Ejemplo n.º 4
0
        private bool insert(ContatoreDTO dto, out Contatore item)
        {
            var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);

            try
            {
                item = new Contatore(daoFactory.GetTipoContatoreDao().GetById(dto.IdTipo, false), dto.Codice, dto.Descrizione, daoFactory.GetCondominioDao().GetById(dto.CodiceCondominio, false)) {IsContaCalorie = dto.IsContaCalorie, Version = dto.Version};
                
                if (dto.CodiceCondominio > 0)
                    item.Condominio = daoFactory.GetCondominioDao().GetById(dto.CodiceCondominio, false);

                if (dto.CodiceUtenza > 0)
                    item.Utenza = daoFactory.GetUtenzaDao().GetById(dto.CodiceUtenza.Value, false);
                
                daoFactory.GetContatoreDao().SaveOrUpdate(item);
            }
            catch (Exception ex)
            {
                
                _log.Error("Errore nel salvataggio dei contatori: " + Library.Utility.GetMethodDescription() + " - id:" + dto.ID, ex);
                throw;
            }
            return true;
        }
Ejemplo n.º 5
0
        private bool update(ContatoreDTO dto, out Contatore item)
        {
            var result = false;
            item = null;
            var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);

            try
            {
                item = daoFactory.GetContatoreDao().GetById(dto.ID, false);

                // Condizione necessare per il controllo del fatto che sul DB ho una versione uguale o più vecchia
                if (dto.Version == item.Version)
                {
                    item.Descrizione = dto.Descrizione.Trim();
                    item.IsContaCalorie = dto.IsContaCalorie;
                    item.Codice = dto.Codice;
                    item.Tipo = daoFactory.GetTipoContatoreDao().GetById(dto.IdTipo, false);
                    item.Version = dto.Version;

                    if (dto.CodiceCondominio > 0)
                        item.Condominio = daoFactory.GetCondominioDao().GetById(dto.CodiceCondominio, false);

                    if (dto.CodiceUtenza > 0)
                        item.Utenza = daoFactory.GetUtenzaDao().GetById(dto.CodiceUtenza.Value, false);

                    result = true;
                }
                else
                {
                    // Eccezione: Sul db c'è qualche cosa di più nuovo.
                    
                    _log.Error("Errore nel salvataggio del contatore: id:" + dto.ID + " - il dato sul db è più recente di quello che si vuole salvare");
                }
            }
            catch (Exception ex)
            {
                
                _log.Error("Errore nel salvataggio del contatore: " + Library.Utility.GetMethodDescription() + " - id:" + dto.ID, ex);
                throw;
            }

            return result;
        }
Ejemplo n.º 6
0
        private ContatoreDTO setDto(Contatore item)
        {
            try
            {
                if (item != null && item.Tipo != null)
                {
                    if (item.Tipo != null)
                    {
                        var descrizioneTipo = "<N.D.>";
                        if (!string.IsNullOrEmpty(item.Tipo.Descrizione))
                            descrizioneTipo = item.Tipo.Descrizione;

                        var descrizione = string.Empty;
                        if (!string.IsNullOrEmpty(item.Descrizione))
                            descrizione = item.Descrizione;

                        var dto = new ContatoreDTO
                        {
                            ID = item.ID,
                            Descrizione = item.Descrizione,
                            Codice = item.Codice,
                            CodiceCondominio = item.Condominio.ID,
                            DescrizioneCondominio = item.Condominio.Descrizione,
                            DisplayName = string.Format("{0} - {1} {2}", descrizioneTipo, item.Codice, descrizione),
                            IdTipo = item.Tipo.ID,
                            IsContaCalorie = item.IsContaCalorie,
                            IsCondominiale = item.IsCondominiale,
                            DescrizioneTipo = item.Descrizione,
                            Version = item.Version
                        };

                        if (item.Utenza != null)
                        {
                            dto.CodiceUtenza = item.Utenza.ID;
                            dto.DescrizioneUtenza = item.Utenza.Descrizione;
                        }

                        return dto;
                    }
                    else
                    {
                        _log.ErrorFormat("Trovato contatore con tipo null - {0} - id:{1} - azienda:{2}", Library.Utility.GetMethodDescription(), item.ID, _info.Azienda);
                    }
                }

                return null;
            }

            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nel creazione dei contatori - {0} - id:{1}", ex, Library.Utility.GetMethodDescription(), item != null ? item.ID.ToString() : "<null>");
                throw;
            }
        }
Ejemplo n.º 7
0
 public int? ManageDomainEntity(ContatoreDTO dto)
 {
     try
     {
         return manage(dto).ID;
     }
     catch (Exception ex)
     {
         _log.ErrorFormat("Errore nella gestione dei contatori - {0} - id:{1}", ex, Library.Utility.GetMethodDescription(), dto.ID);
         throw;
     }
 }
Ejemplo n.º 8
0
        public DataTable AddDataLettura(ContatoreDTO contatore, CondominioDTO condominio, DataTable tb, DateTime data, LottoDTO lotto, StabileDTO stabile, GruppoStabileDTO scala)
        {
            var dateColumn = new List<DataColumn>();

            int? idLotto = null;
            if(lotto != null)
                idLotto = lotto.ID;

            int? idStabile = null;
            if(stabile != null)
                idStabile = stabile.ID;

            int? idScala = null;
            if(scala != null)
                idScala = scala.ID;

            // Se non sono presenti righe devo caricare tutte le righe per le unità immobiliari presenti
            if (tb.Rows.Count == 0)
            {
                IList<LetturaContatoreDTO> lettureNew = GetServiceClient().GetNewLettura(contatore.ID, data, condominio.ID, idLotto, idStabile, idScala, GetUserInfo());

                foreach (var lettura in lettureNew)
                {
                    var row = tb.NewRow();
                    row["IdUnitaImmobiliare"] = lettura.IdUnitaImmobiliare;
                    row["InternoUnitaImmobiliare"] = lettura.InternoUnitaImmobiliare;
                    row["DescrizioneUnitaImmobiliare"] = lettura.DescrizioneUnitaImmobiliare;
                    row["OrdineUnitaImmobiliare"] = lettura.OrdineUnitaImmobiliare;
                    row["TipoUnitaImmobiliare"] = lettura.TipoUnitaImmobiliare;
                    row["Lotto"] = lettura.Lotto;
                    row["Stabile"] = lettura.Stabile;
                    row["Scala"] = lettura.Scala;

                    // Data
                    dateColumn = addColumnByData(data, tb, dateColumn);
                    if(lettura.Valore != null)
                        row["Data_" + data.ToShortDateString()] = lettura.Valore;
                    else
                        row["Data_" + data.ToShortDateString()] = DBNull.Value;

                    tb.Rows.Add(row);
                }
            }
            else
            {
                dateColumn.AddRange(tb.Columns.Cast<DataColumn>().Where(column => column.ColumnName.StartsWith("Data_")));

                addColumnByData(data, tb, dateColumn);

                foreach (DataRow row in tb.Rows)
                    row["Data_" + data.ToShortDateString()] = DBNull.Value;
            }
            CloseService();

            return tb;
        }
Ejemplo n.º 9
0
        public DataTable GetLetturePivotByEsercizio(EsercizioDTO esercizio, ContatoreDTO contatore, LottoDTO lotto, StabileDTO stabile, GruppoStabileDTO scala)
        {
            int? idLotto = null;
            if (lotto != null)
                idLotto = lotto.ID;

            int? idStabile = null;
            if (stabile != null)
                idStabile = stabile.ID;

            int? idScala = null;
            if (scala != null)
                idScala = scala.ID;

            var letture = GetServiceClient().GetLettureContatoriByEsercizio(esercizio.ID, esercizio.IdCondominio, contatore.ID, idLotto, idStabile, idScala, GetUserInfo());

            var tb = new DataTable("LettureContatori");
            tb.Columns.Add("IdUnitaImmobiliare", typeof(int));
            tb.Columns.Add("InternoUnitaImmobiliare", typeof(string));
            tb.Columns.Add("DescrizioneUnitaImmobiliare", typeof(string));
            tb.Columns.Add("OrdineUnitaImmobiliare", typeof(int));
            tb.Columns.Add("TipoUnitaImmobiliare", typeof(string));
            tb.Columns.Add("Lotto", typeof(string));
            tb.Columns.Add("Stabile", typeof(string));
            tb.Columns.Add("Scala", typeof(string));
            tb.PrimaryKey = new[] { tb.Columns["IdUnitaImmobiliare"] };

            // ----------------------------------------------
            // Aggiungo una colonna per ogni Data
            // ----------------------------------------------
            var dateColumn = new List<DataColumn>();
            if (letture.Count > 0)
            {
                var idExampleUnita = letture[0].IdUnitaImmobiliare;
                var listaLettureExample = from item in letture
                                          where item != null && item.IdUnitaImmobiliare == idExampleUnita
                                          orderby item.Data
                                          select item;
                dateColumn = new List<DataColumn>(listaLettureExample.Count());
                dateColumn = listaLettureExample.Aggregate(dateColumn, (current, letturaExample) => addColumnByData(letturaExample.Data, tb, current));
            }

            // ----------------------------------------------
            // Riempio la tabella
            // ----------------------------------------------
            foreach (var lettura in letture.OrderBy(item => item.OrdineUnitaImmobiliare))
            {
                var row = tb.Rows.Find(lettura.IdUnitaImmobiliare);
                if (row == null)
                {
                    row = tb.NewRow();
                    row["IdUnitaImmobiliare"] = lettura.IdUnitaImmobiliare;
                    row["InternoUnitaImmobiliare"] = lettura.InternoUnitaImmobiliare;
                    row["DescrizioneUnitaImmobiliare"] = lettura.DescrizioneUnitaImmobiliare;
                    row["OrdineUnitaImmobiliare"] = lettura.OrdineUnitaImmobiliare;
                    row["TipoUnitaImmobiliare"] = lettura.TipoUnitaImmobiliare;
                    row["Lotto"] = lettura.Lotto;
                    row["Stabile"] = lettura.Stabile;
                    row["Scala"] = lettura.Scala;
                    tb.Rows.Add(row);
                }
                if (!tb.Columns.Contains("Data_" + lettura.Data.ToShortDateString()))
                    dateColumn = addColumnByData(lettura.Data, tb, dateColumn);

                if (lettura.Valore != null)
                    row["Data_" + lettura.Data.ToShortDateString()] = lettura.Valore;
                else
                    row["Data_" + lettura.Data.ToShortDateString()] = DBNull.Value;
            }

            CloseService();

            return tb;
        }
Ejemplo n.º 10
0
 public List<LetturaContatoreDTO> GetLettureByEsercizio(EsercizioDTO esercizio, ContatoreDTO contatore)
 {
     var result = GetServiceClient().GetLettureContatoriByEsercizio(esercizio.ID, esercizio.IdCondominio, contatore.ID, null, null, null, GetUserInfo());
     CloseService();
     return result;
 }
Ejemplo n.º 11
0
 public ContatoreDTO GetContatoreNew(CondominioDTO condominio)
 {
     var contatore = new ContatoreDTO();
     if (condominio != null)
     {
         contatore.CodiceCondominio = condominio.ID;
         contatore.DescrizioneCondominio = condominio.DisplayName;
     }
     return contatore;
 }
Ejemplo n.º 12
0
        public ContatoreDTO SalvaContatore(ContatoreDTO contatore)
        {
            var contatoreSave = contatore;
            int? idContatore = GetServiceClient().SalvaContatore(contatore, GetUserInfo());

            if (idContatore != null)
            {
                contatoreSave = idContatore == 0 ? new ContatoreDTO {ID = 0} : GetContatoreById(idContatore.Value);
            }
            else
                contatoreSave.ID = 0;

            CloseService();
            return contatoreSave;
        }
Ejemplo n.º 13
0
		public int? SalvaContatore(ContatoreDTO dto, UserInfo userinfo)
		{
			var windsorRep = new WindsorConfigRepository();
			try
			{
				windsorRep.BeginTransaction(userinfo);
                var rep = new ContatoreRepository(userinfo, windsorRep);
                var item = rep.ManageDomainEntity(dto);
				windsorRep.Commit();
				return item;
			}
			catch (Exception ex)
			{

				_log.Error("Errore durante l'aggiornamento di un contatore - " + Utility.GetMethodDescription() + " - idCondominio:" + dto.CodiceCondominio + " - idContatore:" + dto.ID, ex);
				windsorRep.Rollback();
				throw;
			}
		}
Ejemplo n.º 14
0
 public void LoadData(ContatoreDTO contatore)
 {
     loadData(contatore);
 }
Ejemplo n.º 15
0
        protected override bool Save()
        {
            if (_contatore.Stato != "")
            {
                ContatoreDTO contatoreSave;
                try
                {
                    _contatore.CodiceCondominio = sceltaCondominioCombo1.CondominioSelected.ID;
                    contatoreSave = getUtenzaService().SalvaContatore(_contatore);
                }
                catch (Exception ex)
                {
                    log.Error("Errore durante il Salvataggio del contatore - id: " + _contatore.ID, ex);
                    throw;
                }

                if (contatoreSave.ID == 0)
                {
                    CommonMessages.DisplayWarning("Si è verificato un errore: un altro utente ha effettuato un aggiornamento. Uscire e riprovare ");
                    Dispose();
                }
                else
                {
                    _contatore = contatoreSave;
                    BusinessClass = new BaseDTOOfint[] { _contatore };
                    contatoreDTOBindingSource.DataSource = _contatore;
                }

                base.Save();
            }

            return true;
        }
Ejemplo n.º 16
0
        protected override void ExecuteNew()
        {
            _contatore = getUtenzaService().GetContatoreNew(_condominio);
            contatoreDTOBindingSource.DataSource = _contatore;
            BusinessClass = new BaseDTOOfint[] { _contatore };
            Text = "Nuovo Contatore";
            loadData(_contatore);
            base.SaveOrUpdate();

            base.ExecuteNew();
        }