private void btnCercaClick(object sender, EventArgs e) { var filter = new MessaggioFilter(); if(sceltaCondominioCombo1.CondominioSelected != null) filter.CodiceCondominio = sceltaCondominioCombo1.CondominioSelected.ID; filter.Nominativo = nominativo.Text; if (tipoMessaggio.Value != null) filter.TipoMessaggio = (TipoMessaggio)Enum.Parse(typeof(TipoMessaggio), tipoMessaggio.Text); if (motivoMessaggio.Value != null) { var motivoMessaggioSelezionato = motivoMessaggio.Value as IList<object>; if (motivoMessaggioSelezionato != null){ filter.MotivoMessaggio = new List<MotivoMessaggio>(); foreach (var motivo in motivoMessaggioSelezionato) { MotivoMessaggio motivoMessaggioValue; if (Enum.TryParse(motivo.ToString(), true, out motivoMessaggioValue)) filter.MotivoMessaggio.Add(motivoMessaggioValue); } } } if(tipoSoggetto.Value != null) filter.Tipo = (TipoNominativo)Enum.Parse(typeof(TipoNominativo), tipoSoggetto.Text); if (tipoFornitore.Value != null) filter.TipoFornitore = (int)tipoFornitore.Value; var gruppi = string.Empty; if(gruppo.CheckedItems.Count > 0) { foreach (var item in gruppo.CheckedItems) { if(!string.IsNullOrEmpty(gruppi)) gruppi += ","; gruppi += item.DataValue.ToString(); } } filter.Gruppi = gruppi; filter.DataRiferimento = (DateTime?)dataRiferimento.Value; var form = new ExecuteLoadDataListAsync<StoricoMessaggioDTO>("E' in corso la ricerca dei messaggi ....." + Environment.NewLine + "Si prega di attendere."); Func<List<StoricoMessaggioDTO>> loadDati = () => getMessaggioService().GetByFilter(filter); form.LoadData(loadDati); form.ShowDialog(); listaMessaggiUC1.LoadData(form.DataSourceObject); listaMessaggiUC1.Visible = true; form.Dispose(); }
public IList<StoricoMessaggioDTO> GetStoricoMessaggiByFilter(MessaggioFilter filter) { try { filter.CodiceAzienda = _info.Azienda; var lista = getMessaggisticaService().GetStoricoMessaggiByFilter(filter); var listaDto = new List<StoricoMessaggioDTO>(lista.Count); listaDto.AddRange(lista.Select(setDto)); return listaDto; } catch (Exception ex) { _log.ErrorFormat("Errore inaspettato durante la lettura dello storico dei messaggi - {0} - condominio:{1} - nominativo:{2} - tipoMessaggio:{3} - tipoNominativo:{4} - motivoMessaggio:{5}", ex, Utility.GetMethodDescription(), filter.CodiceCondominio, filter.Nominativo, filter.TipoMessaggio, filter.Tipo, filter.MotivoMessaggio); throw; } }
public List<StoricoMessaggioDTO> GetByFilter(MessaggioFilter filter) { var result = GetServiceClient().GetStoricoMessaggiByFilter(filter, GetUserInfo()); CloseService(); return result; }
public IList<StoricoMessaggio> GetStoricoMessaggiByFilter(MessaggioFilter filter) { try { var hql = "FROM StoricoMessaggio STOMESS LEFT JOIN FETCH STOMESS.Persona PERS LEFT JOIN FETCH PERS.Fornitori FORN LEFT JOIN FETCH PERS.SoggettiCondominio AS SOGG LEFT JOIN FETCH STOMESS.Condominio COND LEFT JOIN FETCH COND.Supercondominio SUPERCOND LEFT JOIN FETCH PERS.Referenti REF LEFT JOIN FETCH PERS.IndirizzoResidenza.Comune COMUNE_RES LEFT JOIN FETCH PERS.Recapito.Comune COMUNE_REC LEFT JOIN FETCH PERS.Gruppi GRU {0} WHERE PERS.AziendaID =:azienda "; var parameters = new List<QueryParam> { new QueryParam("azienda", filter.CodiceAzienda) }; var hqlJoin = string.Empty; if (filter.Tipo != null) { switch (filter.Tipo.Value) { case TipoNominativo.Condomino: case TipoNominativo.CondominoAttivo: hql += " AND SOGG is not null AND COND is not null "; break; case TipoNominativo.Fornitore: hql += " AND FORN is not null"; break; case TipoNominativo.Referente: hql += " AND REF is not null"; break; case TipoNominativo.Contatto: hql += " AND SOGG is null AND FORN is null AND REF is null "; break; } } if (filter.TipoMessaggio != null) { hql += " AND STOMESS.Tipo = :tipoMessaggio "; parameters.Add(new QueryParam("tipoMessaggio", Conversione.ToHQLParameter(filter.TipoMessaggio.Value))); } if (filter.MotivoMessaggio != null && filter.MotivoMessaggio.Count > 0) { hql += " AND STOMESS.MotivoMessaggio IN (:motivoMessaggio) "; parameters.Add(new QueryParam("motivoMessaggio", filter.MotivoMessaggio)); } if (filter.CodiceCondominio != null) { hql += " AND (COND = :condominio OR SUPERCOND = :condominio) "; parameters.Add(new QueryParam("condominio", filter.CodiceCondominio.Value)); } if (filter.TipoFornitore != null) { hql += " AND FORN.Tipo = :tipoFornitore "; parameters.Add(new QueryParam("tipoFornitore", filter.TipoFornitore.Value)); } if (!string.IsNullOrEmpty(filter.Gruppi)) { var gruppiArray = filter.Gruppi.Split(','); hql += " AND GRU.Gruppo IN (:gruppi) "; parameters.Add(new QueryParam("gruppi", gruppiArray.Select(s => int.Parse(s.Trim())).ToList())); } if (!string.IsNullOrEmpty(filter.Nominativo)) { hql += " AND (PERS.Nome LIKE :nominativo OR PERS.Cognome LIKE :nominativo OR PERS.RagioneSociale LIKE :nominativo) "; parameters.Add(new QueryParam("nominativo", "%" + filter.Nominativo + "%")); } if (!string.IsNullOrEmpty(filter.Indirizzo)) { hql += " AND (PERS.IndirizzoResidenza.Indirizzo LIKE :indirizzo OR PERS.IndirizzoResidenza.Localita LIKE :indirizzo OR COMUNE_RES.Descrizione LIKE :indirizzo " + " OR PERS.Recapito.Indirizzo LIKE :indirizzo OR PERS.Recapito.Localita LIKE :indirizzo OR COMUNE_REC.Descrizione LIKE :indirizzo) "; parameters.Add(new QueryParam("indirizzo", $"%{filter.Indirizzo}%")); } hql += " ORDER BY PERS.Cognome, PERS.Nome"; return _daoFactory.GetStoricoMessaggioDao().GetByQuery(string.Format(hql, hqlJoin), parameters.ToArray()); } catch (Exception ex) { _log.ErrorFormat("Errore inaspettato durante la lettura dello storico di messaggi - {0} - condominio:{1}", ex, Utility.GetMethodDescription(), filter.CodiceCondominio); throw; } }
public IList<StoricoMessaggioDTO> GetStoricoMessaggiByFilter(MessaggioFilter filter, UserInfo userinfo) { var windsorRep = new WindsorConfigRepository(); try { windsorRep.BeginTransaction(userinfo); var rep = new MessaggioRepository(userinfo, windsorRep); var item = rep.GetStoricoMessaggiByFilter(filter); windsorRep.Commit(); return item; } catch (Exception ex) { _log.ErrorFormat("Errore durante la lettura dei messaggi - {0} - idAzienda:{1}", ex, Utility.GetMethodDescription(), userinfo.Azienda); windsorRep.Rollback(); throw; } }