Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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);
        }
Пример #3
0
        /// <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());
        }
Пример #4
0
        /// <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);
        }