private void btnAggiungiLetturaClick(object sender, EventArgs e) { if (nuovaDataLettura.Value != null) { var tbDati = _utenzaService.AddDataLettura((ContatoreDTO)contatori.SelectedItem.ListObject, _condominio, (DataTable)listaLetture.DataSource, nuovaDataLettura.DateTime, getLotto(), getStabile(), getScala()); listaLetture.DataSource = tbDati; setGridLayout(); // Rate da aggiornare foreach (DataRow row in tbDati.Rows) { var lettura = new LetturaContatoreDTO { Data = nuovaDataLettura.DateTime, DescrizioneContatore = ((ContatoreDTO)contatori.SelectedItem.ListObject).DisplayName, IdContatore = ((ContatoreDTO)contatori.SelectedItem.ListObject).ID, IdUnitaImmobiliare = (int)row["IdUnitaImmobiliare"], DescrizioneUnitaImmobiliare = row["DescrizioneUnitaImmobiliare"] != null && row["DescrizioneUnitaImmobiliare"] != DBNull.Value ? (string)row["DescrizioneUnitaImmobiliare"] : null, OrdineUnitaImmobiliare = (int)row["OrdineUnitaImmobiliare"], ID = 0, Valore = (row["Data_" + nuovaDataLettura.DateTime.ToShortDateString()] == DBNull.Value) ? null : (decimal?)row["Data_" + nuovaDataLettura.DateTime.ToShortDateString()], Lotto = (string)row["Lotto"], Scala = (string)row["Scala"], Stabile = (string)row["Stabile"] }; _lettureDaAggiornare.Add(lettura); btnConferma.Enabled = true; } listaLetture.DisplayLayout.Bands[0].Summaries.Clear(); foreach (var column in listaLetture.DisplayLayout.Bands[0].Columns) { if (column.DataType == typeof(decimal)) DataGridHelper.AddSummary(listaLetture.DisplayLayout.Bands[0], column.Key, "#.#0"); } } }
public IList<LetturaContatoreDTO> GetNewLettura(int idContatore, DateTime data, int idCondominio, int? idLotto, int? idStabile, int? idGruppoStabile) { try { var contatore = _daoFactory.GetContatoreDao().Find(idContatore, false); if (contatore != null) { var hql = "FROM UnitaImmobiliare UNI WHERE UNI.GruppoStabileRiferimento.PalazzinaRiferimento.CondominioRiferimento = :condominio "; var parameters = new List<QueryParam> { new QueryParam("condominio", idCondominio) }; if (idLotto > 0) { hql += " AND UNI.GruppoStabileRiferimento.PalazzinaRiferimento.LottoRiferimento = :lotto"; parameters.Add(new QueryParam("lotto", idLotto.Value)); } if (idStabile > 0) { hql += " AND UNI.GruppoStabileRiferimento.PalazzinaRiferimento = :stabile"; parameters.Add(new QueryParam("stabile", idStabile.Value)); } if (idGruppoStabile > 0) { hql += " AND UNI.GruppoStabileRiferimento = :gruppo"; parameters.Add(new QueryParam("gruppo", idGruppoStabile.Value)); } hql += " ORDER BY UNI.Ordine"; var listaUnitaImmobiliare = _daoFactory.GetUnitaImmobiliareDao().GetByQuery(hql, parameters.ToArray()); var lettureDto = new List<LetturaContatoreDTO>(listaUnitaImmobiliare.Count); foreach (var unita in listaUnitaImmobiliare) { var lettura = new LetturaContatoreDTO { Data = data, Valore = null, IdContatore = contatore.ID, DescrizioneContatore = contatore.Descrizione, IdUnitaImmobiliare = unita.ID, DescrizioneUnitaImmobiliare = unita.GetDisplayName(DateTime.Today), OrdineUnitaImmobiliare = unita.Ordine.GetValueOrDefault(), TipoUnitaImmobiliare = unita.TipoUnitaImmobiliare.Descrizione, Stabile = unita.GruppoStabileRiferimento.PalazzinaRiferimento.Descrizione, Scala = unita.GruppoStabileRiferimento.Descrizione, Lotto = string.Empty }; if (unita.GruppoStabileRiferimento.PalazzinaRiferimento.LottoRiferimento != null) lettura.Lotto = unita.GruppoStabileRiferimento.PalazzinaRiferimento.LottoRiferimento.Descrizione; lettureDto.Add(lettura); } return lettureDto; } return new List<LetturaContatoreDTO>(); } catch (Exception ex) { _log.Error("Errore inaspettato durante la generazione di un nuovo set di letture - " + Library.Utility.GetMethodDescription() + " - idCondominio:" + idCondominio + " - idContatore:" + idContatore + " - idLotto:" + idLotto + " - idStabile:" + idStabile + " - idGruppo:" + idGruppoStabile, ex); throw; } }
private void listaLettureAfterCellUpdate(object sender, CellEventArgs e) { if (e.Cell.Row.IsDataRow && e.Cell.Band.Index == 0) { if (e.Cell.Column.Key.StartsWith("Data_")) { if (e.Cell.Value == DBNull.Value || Utility.IsDecimal(e.Cell.Value.ToString())) { var data = DateTime.Parse(e.Cell.Column.Key.Split('_')[1]); var idUnitaImmobiliare = int.Parse(e.Cell.Row.Cells["IdUnitaImmobiliare"].Value.ToString()); decimal? valoreLettura = null; if (e.Cell.Value != DBNull.Value) valoreLettura = decimal.Parse(e.Cell.Value.ToString()); var lettura = (from item in _lettureDaAggiornare where item.IdUnitaImmobiliare == idUnitaImmobiliare && item.Data == data select item).FirstOrDefault(); if (lettura == null) { lettura = new LetturaContatoreDTO { Data = data, IdContatore = ((ContatoreDTO)contatori.SelectedItem.ListObject).ID, IdUnitaImmobiliare = idUnitaImmobiliare, Valore = valoreLettura }; _lettureDaAggiornare.Add(lettura); btnConferma.Enabled = true; } else lettura.Valore = valoreLettura; } else e.Cell.Value = e.Cell.OriginalValue; } } }
private LetturaContatore manage(LetturaContatoreDTO dto) { LetturaContatore 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; }
private bool insert(LetturaContatoreDTO dto, out LetturaContatore item) { var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); item = null; try { if (dto.Valore != null) { item = new LetturaContatore(daoFactory.GetContatoreDao().GetById(dto.IdContatore, false), daoFactory.GetUnitaImmobiliareDao().GetById(dto.IdUnitaImmobiliare, false), dto.Data, dto.Valore.Value) {Version = dto.Version}; daoFactory.GetLetturaContatoreDao().SaveOrUpdate(item); } } catch (Exception ex) { _log.Error("Errore nel salvataggio della lettura del contatore: " + Library.Utility.GetMethodDescription() + " - id:" + dto.ID, ex); throw; } return true; }
private bool update(LetturaContatoreDTO dto, out LetturaContatore item) { bool result; item = null; var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); try { item = daoFactory.GetLetturaContatoreDao().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) { if (dto.Valore != null) { item.Data = dto.Data; item.Valore = dto.Valore.Value; item.Contatore = daoFactory.GetContatoreDao().GetById(dto.IdContatore, false); item.UnitaImmobiliare = daoFactory.GetUnitaImmobiliareDao().GetById(dto.IdUnitaImmobiliare, false); } else daoFactory.GetLetturaContatoreDao().Delete(item); result = true; } else { // Eccezione: Sul db c'è qualche cosa di più nuovo. _log.Error("Errore nel salvataggio della lettura del contatore: id:" + dto.ID + " - il dato sul db è più recente di quello che si vuole salvare"); result = false; } } catch (Exception ex) { _log.Error("Errore nel salvataggio della lettura del contatore: " + Library.Utility.GetMethodDescription() + " - id:" + dto.ID, ex); throw; } return result; }
private LetturaContatoreDTO setDto(LetturaContatore item) { try { var dto = new LetturaContatoreDTO { ID = item.ID, Data = item.Data, Valore = item.Valore, IdContatore = item.Contatore.ID, DescrizioneContatore = item.Contatore.Descrizione, TipoUnitaImmobiliare = item.UnitaImmobiliare.TipoUnitaImmobiliare.Descrizione, DisplayName = item.Valore + " - " + item.Data.ToShortDateString(), Lotto = string.Empty, Version = item.Version }; if(item.UnitaImmobiliare != null) { dto.InternoUnitaImmobiliare = item.UnitaImmobiliare.InternoCompleto; dto.IdUnitaImmobiliare = item.UnitaImmobiliare.ID; dto.DescrizioneUnitaImmobiliare = item.UnitaImmobiliare.Descrizione; dto.OrdineUnitaImmobiliare = item.UnitaImmobiliare.Ordine.GetValueOrDefault(); dto.Stabile = item.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.Descrizione; dto.Scala = item.UnitaImmobiliare.GruppoStabileRiferimento.Descrizione; if (item.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.LottoRiferimento != null) dto.Lotto = item.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.LottoRiferimento.Descrizione; } return dto; } catch (Exception ex) { _log.Fatal("Errore nel salvataggio delle letture dei contatori: " + Library.Utility.GetMethodDescription() + " - id: " + item.ID, ex); throw; } }
public int? ManageDomainEntity(LetturaContatoreDTO dto) { try { return manage(dto).ID; } catch (Exception ex) { _log.Error("Errore nella gestione delle letture dei contatori: " + Library.Utility.GetMethodDescription() + " - id:" + dto.ID, ex); throw; } }