//metodo per il controllo dei contatti già presenti public bool ContactControls(long?TidContact) { RubricaEntita TrubEnt = Session["EntSession"] as RubricaEntita; if (!string.IsNullOrEmpty(Convert.ToString(TidContact))) //nel caso di update { var lCont = TrubEnt.Contatti.Where(x => x.IdContact != TidContact); if (lCont.Any(x => x.Mail == (ContactsFormView.FindControl("TextMail") as TextBox).Text) && (ContactsFormView.FindControl("TextMail") as TextBox).Text != string.Empty) { ((BasePage)this.Page).info.AddMessage("Operazione impossibile: Email già presente nei contatti", Com.Delta.Messaging.MapperMessages.LivelloMessaggio.ERROR); return(false); } if (lCont.Any(x => x.Telefono == (ContactsFormView.FindControl("TextTelefono") as TextBox).Text) && (ContactsFormView.FindControl("TextTelefono") as TextBox).Text != string.Empty) { ((BasePage)this.Page).info.AddMessage("Operazione impossibile: Telefono già presente nei contatti", Com.Delta.Messaging.MapperMessages.LivelloMessaggio.ERROR); return(false); } if (lCont.Any(x => x.Fax == (ContactsFormView.FindControl("TextFax") as TextBox).Text) && (ContactsFormView.FindControl("TextFax") as TextBox).Text != string.Empty) { ((BasePage)this.Page).info.AddMessage("Operazione impossibile: Fax già presente nei contatti", Com.Delta.Messaging.MapperMessages.LivelloMessaggio.ERROR); return(false); } } else //nel caso di insert { if (TrubEnt.Contatti.Exists(x => x.Mail == (ContactsFormView.FindControl("TextMail") as TextBox).Text) && (ContactsFormView.FindControl("TextMail") as TextBox).Text != string.Empty) { ((BasePage)this.Page).info.AddMessage("Operazione impossibile: Email già presente nei contatti", Com.Delta.Messaging.MapperMessages.LivelloMessaggio.ERROR); return(false); } if (TrubEnt.Contatti.Exists(x => x.Telefono == (ContactsFormView.FindControl("TextTelefono") as TextBox).Text) && (ContactsFormView.FindControl("TextTelefono") as TextBox).Text != string.Empty) { ((BasePage)this.Page).info.AddMessage("Operazione impossibile: Telefono già presente nei contatti", Com.Delta.Messaging.MapperMessages.LivelloMessaggio.ERROR); return(false); } if (TrubEnt.Contatti.Exists(x => x.Fax == (ContactsFormView.FindControl("TextFax") as TextBox).Text) && (ContactsFormView.FindControl("TextFax") as TextBox).Text != string.Empty) { ((BasePage)this.Page).info.AddMessage("Operazione impossibile: Fax già presente nei contatti", Com.Delta.Messaging.MapperMessages.LivelloMessaggio.ERROR); return(false); } } return(true); }
protected void ContactsFormView_DataBound(object sender, EventArgs e) { if (((FormView)sender).CurrentMode == FormViewMode.Insert) { if (hidInsertType.Value.Equals("Insert_u")) { ((Panel)ContactsFormView.FindControl("panelGrp")).Visible = false; ((Panel)ContactsFormView.FindControl("panelUff")).Visible = true; ((Panel)ContactsFormView.FindControl("panelCon")).Visible = false; } else if (hidInsertType.Value.Equals("Insert_g")) { ((Panel)ContactsFormView.FindControl("panelGrp")).Visible = true; ((Panel)ContactsFormView.FindControl("panelUff")).Visible = false; ((Panel)ContactsFormView.FindControl("panelCon")).Visible = false; } else { ((Panel)ContactsFormView.FindControl("panelGrp")).Visible = false; ((Panel)ContactsFormView.FindControl("panelUff")).Visible = false; ((Panel)ContactsFormView.FindControl("panelCon")).Visible = true; } } }
//click sul bottone della formview dei contatti: gestisce update ed inserimento protected void ContactsFormView_ItemCommand(object sender, FormViewCommandEventArgs e) { RubricaEntita rubEnt = Session["EntSession"] as RubricaEntita; RubricaContatti contact = new RubricaContatti(); RubricaEntitaService rubrService = new RubricaEntitaService(); #region "Gestione Inseret/update contatto" if (e.CommandName.Equals("Update")) { int idCnt = Int32.Parse(((HiddenField)ContactsFormView.FindControl("hfIdContact")).Value); contact = rubEnt.Contatti.SingleOrDefault(x => x.IdContact == idCnt); } if ((e.CommandName.Equals("Insert") && hidInsertType.Value.Equals("Insert_c")) || e.CommandName.Equals("Update")) { if ((e.CommandName.Equals("Insert"))) { contact.RefIdReferral = rubEnt.IdReferral; } //funzione per il controllo di inserimento di contatti già inseriti if (contact != null && ContactControls(contact.IdContact) == false) //caso in cui non supera i controlli { if (e.CommandName == "Update") //ricarico i dati precedenti in caso di update { DataContactView(Int32.Parse(((HiddenField)ContactsFormView.FindControl("hfIdContact")).Value)); } else //svuoto i campi in caso di insert { (ContactsFormView.FindControl("TextMail") as TextBox).Text = ""; (ContactsFormView.FindControl("TextTelefono") as TextBox).Text = ""; (ContactsFormView.FindControl("TextFax") as TextBox).Text = ""; } return; } try { contact.Telefono = ((TextBox)ContactsFormView.FindControl("TextTelefono")).Text; contact.Mail = ((TextBox)ContactsFormView.FindControl("TextMail")).Text; contact.Fax = ((TextBox)ContactsFormView.FindControl("TextFax")).Text; contact.ContactRef = ((TextBox)ContactsFormView.FindControl("TextRef")).Text; contact.Note = ((TextBox)ContactsFormView.FindControl("TextNote")).Text; contact.IsPec = ((CheckBox)ContactsFormView.FindControl("chkPec")).Checked; contact.AffIPA = 0; if (contact.IsPec == false) { foreach (MailPecForCheck val in Enum.GetValues(typeof(MailPecForCheck))) { if (contact.Mail.Contains("@" + val.ToString() + ".")) { contact.IsPec = true; } } } } catch { ((BasePage)this.Page).info.AddMessage("Attenzione: si è verificato un errore", Com.Delta.Messaging.MapperMessages.LivelloMessaggio.ERROR); return; } if (contact.Telefono == "" && contact.Mail == "" && contact.Fax == "") { ((BasePage)this.Page).info.AddMessage("Inserire almeno un parametro", Com.Delta.Messaging.MapperMessages.LivelloMessaggio.ERROR); return; } if (contact.Mail == "" && contact.IsPec == true) { ((BasePage)this.Page).info.AddMessage("Inserire indirizzo email valido", Com.Delta.Messaging.MapperMessages.LivelloMessaggio.ERROR); contact.IsPec = false; return; } if (contact.Telefono == "") { contact.Telefono = null; } if (contact.Mail == "") { contact.Mail = null; } if (contact.Fax == "") { contact.Fax = null; } if (contact.ContactRef == "") { contact.ContactRef = null; } if (contact.Note == "") { contact.Note = null; } if (e.CommandName == "Update") { try { //metodo per l'update ContattoService contattoService = new ContattoService(); contattoService.UpdateRubrContatti(contact, false); } catch (Exception) { ((BasePage)this.Page).info.AddMessage("Aggiornamento non riuscito: Errore in banca dati", Com.Delta.Messaging.MapperMessages.LivelloMessaggio.ERROR); return; } ((BasePage)this.Page).info.AddMessage("Contatto modificato", Com.Delta.Messaging.MapperMessages.LivelloMessaggio.INFO); } else if (e.CommandName == "Insert") { try { //metodo per l'insert ContattoService contattoService = new ContattoService(); contattoService.InsertRubrContatti(contact, false); } catch (Exception ex) { ((BasePage)this.Page).info.AddMessage("Inserimento non riuscito: Errore in banca dati dettagli: " + ex.Message, Com.Delta.Messaging.MapperMessages.LivelloMessaggio.ERROR); return; } ((BasePage)this.Page).info.AddMessage("Contatto inserito", Com.Delta.Messaging.MapperMessages.LivelloMessaggio.INFO); } } #endregion #region "Insert di un nuovo gruppo o di un nuovo ufficio" if ((e.CommandName.Equals("Insert") && hidInsertType.Value.Equals("Insert_u"))) { RubricaEntita newEnt = new RubricaEntita(); newEnt.Ufficio = ((TextBox)ContactsFormView.FindControl("TextUfficio")).Text; newEnt.IdPadre = rubEnt.IdReferral; newEnt.RefOrg = (rubEnt.RefOrg == null ? rubEnt.IdReferral : rubEnt.RefOrg); if (rubEnt.ReferralType.ToString().StartsWith("PA")) { newEnt.ReferralType = EntitaType.PA_UFF; } else if (rubEnt.ReferralType.ToString().StartsWith("AZ")) { newEnt.ReferralType = EntitaType.AZ_UFF; } try { //metodo per l'insert rubrService.Insert(newEnt); } catch (Exception e0) { ((BasePage)this.Page).info.AddMessage("Inserimento non riuscito: " + e0.Message, Com.Delta.Messaging.MapperMessages.LivelloMessaggio.ERROR); return; } ((BasePage)this.Page).info.AddMessage("Gruppo inserito", Com.Delta.Messaging.MapperMessages.LivelloMessaggio.INFO); ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "reload_local_tree", "ShowTree(config.tree);", true); } else if ((e.CommandName.Equals("Insert") && hidInsertType.Value.Equals("Insert_g"))) { RubricaEntita newEnt = new RubricaEntita(); newEnt.Ufficio = ((TextBox)ContactsFormView.FindControl("TextGruppo")).Text; newEnt.IdPadre = rubEnt.IdReferral; newEnt.RefOrg = (rubEnt.RefOrg == null ? rubEnt.IdReferral : rubEnt.RefOrg); if (rubEnt.ReferralType.ToString().StartsWith("PA")) { newEnt.ReferralType = EntitaType.PA_GRP; } else if (rubEnt.ReferralType.ToString().StartsWith("AZ")) { newEnt.ReferralType = EntitaType.AZ_GRP; } try { //metodo per l'insert rubrService.Insert(newEnt); } catch (Exception e1) { ((BasePage)this.Page).info.AddMessage("Inserimento non riuscito: " + e1.Message, Com.Delta.Messaging.MapperMessages.LivelloMessaggio.ERROR); return; } ((BasePage)this.Page).info.AddMessage("Ufficio inserito", Com.Delta.Messaging.MapperMessages.LivelloMessaggio.INFO); ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "reload_local_tree", "ShowTree();", true); } #endregion hfCurrentID = contact.IdContact ?? -1; long idEntita = long.Parse((EntFormView.FindControl("hfIdEntita") as HiddenField).Value); EntFormViewDataSource = rubrService.GetRubricaEntitaCompleteById(idEntita); rubEnt = EntFormViewDataSource; switch (rubEnt.Contatti.Count) { case 0: gvContacts.Visible = true; gvContacts.DataBind(); ContactsFormView.DataBind(); break; default: if (hfCurrentID == -1) { OnContactsPagerIndexChanged("", 0); } else { int index = rubEnt.Contatti.IndexOf(rubEnt.Contatti.First(x => x.IdContact == hfCurrentID)); OnContactsPagerIndexChanged("", index / PagerSize); } if (rubEnt.Contatti.Count <= PagerSize) { gvContacts.BottomPagerRow.Visible = false; } break; } ContactsFormView.Visible = false; }