/// <summary> /// Verifica se l'utente è già presente /// </summary> /// <param name="nomeUtente"></param> /// <returns></returns> private static bool Contains(string nomeUtente) { bool retValue = false; Dpa.DataAccess.Database db = RubricaDatabase.CreateDatabase(); using (Dpa.DataAccess.DBCommandWrapper cw = db.GetStoredProcCommandWrapper(RubricaDatabase.GetSpNameForPackage(SP_CONTAINS))) { cw.AddInParameter("pNomeUtente", DbType.String, nomeUtente); cw.AddOutParameter("pRet", DbType.Int32, 0); db.ExecuteScalar(cw); retValue = (Convert.ToInt32(cw.GetParameterValue("pRet")) > 0); } return(retValue); }
/// <summary> /// /// </summary> /// <param name="utente"></param> /// <returns></returns> private static Utente InternalInsert(Utente utente) { Dpa.DataAccess.Database db = RubricaDatabase.CreateDatabase(); utente.DataCreazione = DateTime.Now; utente.DataUltimaModifica = utente.DataCreazione; using (IDbConnection connection = db.GetConnection()) { connection.Open(); using (IDbTransaction transaction = connection.BeginTransaction()) { using (Dpa.DataAccess.DBCommandWrapper cw = db.GetStoredProcCommandWrapper(RubricaDatabase.GetSpNameForPackage(SP_INSERT))) { cw.AddInParameter("pNomeUtente", DbType.String, utente.Nome); cw.AddInParameter("pPassword", DbType.String, SecurityCredentials.GetPasswordHash(utente.Nome, utente.Password)); cw.AddInParameter("pAmministratore", DbType.AnsiStringFixedLength, (utente.Amministratore ? "1" : "0")); cw.AddInParameter("pDataCreazione", DbType.DateTime, utente.DataCreazione); cw.AddInParameter("pDataUltimaModifica", DbType.DateTime, utente.DataUltimaModifica); cw.AddOutParameter("pId", DbType.Int32, 0); db.ExecuteNonQuery(cw, transaction); if (cw.RowsAffected == 0) { throw new ApplicationException(Properties.Resources.ConcurrencyException); } else { // Reperimento identity utente.Id = Convert.ToInt32(cw.GetParameterValue("pId")); transaction.Commit(); } } } } return(utente); }
/// <summary> /// /// </summary> /// <param name="opzioniRicerca"></param> /// <returns></returns> private static Utente[] InternalSearch(OpzioniRicerca opzioniRicerca) { List <Utente> utenti = new List <Utente>(); string filtro = string.Empty, ordinamento = string.Empty; int pagina = 0, oggettiPerPagina = 0; if (opzioniRicerca != null) { if (opzioniRicerca.CriteriRicerca != null) { filtro = opzioniRicerca.CriteriRicerca.ToSql(); } if (opzioniRicerca.CriteriOrdinamento != null) { ordinamento = opzioniRicerca.CriteriOrdinamento.ToSql(); } if (opzioniRicerca.CriteriPaginazione != null) { pagina = opzioniRicerca.CriteriPaginazione.Pagina; } if (opzioniRicerca.CriteriPaginazione != null) { oggettiPerPagina = opzioniRicerca.CriteriPaginazione.OggettiPerPagina; } } Dpa.DataAccess.Database db = RubricaDatabase.CreateDatabase(); using (Dpa.DataAccess.DBCommandWrapper cw = db.GetStoredProcCommandWrapper(RubricaDatabase.GetSpNameForPackage(SP_SEARCH))) { cw.AddInParameter("pFiltro", DbType.String, filtro); cw.AddInParameter("pOrdinamento", DbType.String, ordinamento); cw.AddInParameter("pPagina", DbType.Int32, pagina); cw.AddInParameter("pOggettiPagina", DbType.Int32, oggettiPerPagina); cw.AddOutParameter("pTotaleOggetti", DbType.Int32, 0); using (IDataReader reader = db.ExecuteReader(cw)) { while (reader.Read()) { utenti.Add(GetUtente(reader)); } } if (opzioniRicerca != null && opzioniRicerca.CriteriPaginazione != null) { opzioniRicerca.CriteriPaginazione.SetTotaleOggetti(Convert.ToInt32(cw.GetParameterValue("pTotaleOggetti"))); } } return(utenti.ToArray()); }
/// <summary> /// Inserimento nuovo oggetto in tabella ElementiRubrica /// </summary> /// <param name="elemento"></param> /// <returns></returns> private static ElementoRubrica InternalInsert(ElementoRubrica elemento) { Dpa.DataAccess.Database db = RubricaDatabase.CreateDatabase(); using (IDbConnection connection = db.GetConnection()) { connection.Open(); using (IDbTransaction transaction = connection.BeginTransaction()) { using (Dpa.DataAccess.DBCommandWrapper cw = db.GetStoredProcCommandWrapper(RubricaDatabase.GetSpNameForPackage(SP_INSERT))) { elemento.DataCreazione = DateTime.Now; elemento.DataUltimaModifica = DateTime.Now; cw.AddInParameter("pCodice", DbType.String, elemento.Codice); cw.AddInParameter("pDescrizione", DbType.String, elemento.Descrizione); cw.AddInParameter("pIndirizzo", DbType.String, elemento.Indirizzo); cw.AddInParameter("pCitta", DbType.String, elemento.Citta); cw.AddInParameter("pCap", DbType.String, elemento.Cap); cw.AddInParameter("pProvincia", DbType.String, elemento.Provincia); cw.AddInParameter("pNazione", DbType.String, elemento.Nazione); cw.AddInParameter("pTelefono", DbType.String, elemento.Telefono); cw.AddInParameter("pFax", DbType.String, elemento.Fax); //cw.AddInParameter("pEmail", DbType.String, elemento.Email); cw.AddInParameter("pAOO", DbType.String, elemento.AOO); cw.AddInParameter("pDataCreazione", DbType.DateTime, elemento.DataCreazione); cw.AddInParameter("pDataUltimaModifica", DbType.DateTime, elemento.DataUltimaModifica); cw.AddInParameter("pUtenteCreatore", DbType.String, Security.RubricaPrincipal.Current.Identity.Name); cw.AddInParameter("pTipoCorrispondente", DbType.String, elemento.TipoCorrispondente.ToString()); cw.AddInParameter("pAmministrazione", DbType.String, elemento.Amministrazione); if (elemento.Urls.Count > 0) { cw.AddInParameter("pUrl", DbType.String, elemento.Urls[0].Url); } else { cw.AddInParameter("pUrl", DbType.String, String.Empty); } if (string.IsNullOrEmpty(elemento.CHA_Pubblicato)) { elemento.CHA_Pubblicato = "0"; } cw.AddInParameter("pChaPubblica", DbType.String, elemento.CHA_Pubblicato); cw.AddOutParameter("pId", DbType.Int32, 0); //Emanuela: aggiunta campi partita iva e codice fiscale cw.AddInParameter("pCodiceFiscale", DbType.String, elemento.CodiceFiscale); cw.AddInParameter("pPartitaIva", DbType.String, elemento.PartitaIva); Utils.Log.Write(cw.Command); db.ExecuteNonQuery(cw); if (cw.RowsAffected > 0) { elemento.Id = Convert.ToInt32(cw.GetParameterValue("pId")); // Rimozione delle email e associazione delle nuove if (!String.IsNullOrEmpty(elemento.Email) && elemento.Emails.Count(m => m.Email == elemento.Email) == 0) { elemento.Emails.Add(new EmailInfo(elemento.Email, true)); } elemento.Emails.ForEach(d => InternalInsertEmail(d, elemento.Id)); // Commit transazione transaction.Commit(); } } } } return(elemento); }