/// <summary> /// Metodo per l'aggiornamento delle caselle email associate al corrispondente /// </summary> /// <param name="elemento">Elemento di cui aggiornare le caselle</param> /// <param name="multicasella">Flag utilizzato per indicare se bisogna gestire il corrispondente in modalità multicasella</param> /// <exception cref="RubricaException">Sollevata in caso di problemi durante la rimozione o il salvataggio delle email</exception> private static void UpdateEmails(ElementoRubrica elemento, bool multicasella) { // Email da salvare EMailList emails = null; // Aggiornamento delle emails all'utente // Nel caso di multicasella, vengono cancellate le email presenti // e quindi vengono salvate le nuove mails if (multicasella) { emails = elemento.Emails; // Se non ci sono caselle di posta preferite, viene impostata come preferita la prima // mail disponibile emails.SetFirstMailAsPreferred(); } else { // Recupero delle caselle associate al corrispondente emails = InternalGetEmails(elemento.Id); // Nel caso monocasella, se l'attributo mail è valorizzato, vengono caricate le email // associate al corrispondente e quindi viene aggiunta la nuova mail impostandola come // preferita altrimenti viene cancellata la mail preferita e, se ne sono disponibili altre, // viene impostata come preferita la prima disponibile, quindi si procede al salvataggio delle // emails if (String.IsNullOrEmpty(elemento.Email)) { emails.RemovePreferred(); } else { emails.Add(new EmailInfo(elemento.Email, true)); } } // Rimozione delle vecchie mail memorizzate e memorizzazione delle nuove InternalRemoveEmails(elemento.Id); emails.ForEach(e => InternalInsertEmail(e, elemento.Id)); }
/// <summary> /// Reperimento delle emails relative ad un corrispondente /// </summary> /// <param name="idElementoRubrica">Id dell'elemento rubrica cui si riferiscono le mails</param> private static EMailList InternalGetEmails(int idElementoRubrica) { EMailList emails = new EMailList(); Dpa.DataAccess.Database db = RubricaDatabase.CreateDatabase(); using (Dpa.DataAccess.DBCommandWrapper cw = db.GetStoredProcCommandWrapper(RubricaDatabase.GetSpNameForPackage(SP_GET_EMAILS))) { cw.AddInParameter("pId", DbType.Int32, idElementoRubrica); Utils.Log.Write(cw.Command); using (IDataReader reader = db.ExecuteReader(cw)) { while (reader.Read()) { emails.Add(CreateEmailInfo(reader)); } } } return(emails); }