private void btn_ok_Click(object sender, System.EventArgs e) { string idCorr = string.Empty; string idCanale = string.Empty; bool acceptCanaleTutti; DocsPaWR.Canale canale = new DocsPAWA.DocsPaWR.Canale(); DocsPaWR.DocsPaWebService ws = new DocsPAWA.DocsPaWR.DocsPaWebService(); schedaDoc = DocumentManager.getDocumentoInLavorazione(this); DocsPaWR.Corrispondente[] dest = ((DocsPAWA.DocsPaWR.ProtocolloUscita)schedaDoc.protocollo).destinatari; DocsPaWR.Corrispondente[] destCc = ((DocsPAWA.DocsPaWR.ProtocolloUscita)schedaDoc.protocollo).destinatariConoscenza; if (dataGridMezzi != null) { Canale canaleTutti = null; if (!ddlTutti.SelectedValue.Equals("0")) { canaleTutti = ws.getCanaleBySystemId(ddlTutti.SelectedValue); } DataGridItemCollection items = dataGridMezzi.Items; if (items != null) { //itero sui singoli item della griglia foreach (DataGridItem item in items) { string tipoDest = string.Empty; TableCellCollection cells = item.Cells; foreach (TableCell cell in cells) { ControlCollection controls = cell.Controls; foreach (Control control in controls) { if (control.GetType() == typeof(Label)) { idCorr = ((Label)control).Text; break; } if (control.GetType() == typeof(DropDownList)) { idCanale = ((DropDownList)control).SelectedValue; break; } } } if (dest != null && dest.Length > 0) { acceptCanaleTutti = false; foreach (DocsPaWR.Corrispondente corr in dest) { // se è impostato il canale tutti ed il corrispondente corrente ha visibilità del mezzo di spedizione tutti allora lo imposto if (corr.systemId.Equals(idCorr) && canaleTutti != null) { System.Collections.Generic.List <Mezzi> listMezziVisCorr = GetMeansDeliveryFiltered(UserManager.getCorrispondenteBySystemID(this.Page, idCorr).canalePref, idCorr); foreach (Mezzi m in listMezziVisCorr) { if (m.Descrizione.Equals(canaleTutti.descrizione) && m.Valore.Equals(canaleTutti.systemId)) { acceptCanaleTutti = true; corr.canalePref = canaleTutti; tipoDest = "d"; break; } } } //l'utente a selezionata blank quindi reimposto il canale di default if (!acceptCanaleTutti && corr.systemId.Equals(idCorr) && (idCanale.Equals("0"))) { if (corr.canalePref != null && corr.canalePref.systemId != null) { canale = UserManager.getCorrispondenteBySystemID(this.Page, idCorr).canalePref; corr.canalePref = canale; tipoDest = "d"; break; } } //imposto il canale selezionato dall'utente else if (!acceptCanaleTutti && corr.systemId.Equals(idCorr)) { canale = ws.getCanaleBySystemId(idCanale); corr.canalePref = canale; tipoDest = "d"; break; } } } if (destCc != null && destCc.Length > 0 && (!tipoDest.Equals("d"))) { acceptCanaleTutti = false; foreach (DocsPaWR.Corrispondente corr in destCc) { // se è impostato il canale tutti ed il corrispondente corrente ha visibilità del mezzo di spedizione tutti allora lo imposto if (corr.systemId.Equals(idCorr) && canaleTutti != null) { System.Collections.Generic.List <Mezzi> listMezziVisCorr = GetMeansDeliveryFiltered(UserManager.getCorrispondenteBySystemID(this.Page, idCorr).canalePref, idCorr); foreach (Mezzi m in listMezziVisCorr) { if (m.Descrizione.Equals(canaleTutti.descrizione) && m.Valore.Equals(canaleTutti.systemId)) { acceptCanaleTutti = true; corr.canalePref = canaleTutti; tipoDest = "d"; break; } } } //l'utente a selezionata blank quindi reimposto il canale di default if (!acceptCanaleTutti && corr.systemId.Equals(idCorr) && (idCanale.Equals("0"))) { if (corr.canalePref != null && corr.canalePref.systemId != null) { canale = UserManager.getCorrispondenteBySystemID(this.Page, idCorr).canalePref; corr.canalePref = canale; break; } } //imposto il canale selezionato dall'utente else if (!acceptCanaleTutti && corr.systemId.Equals(idCorr)) { canale = ws.getCanaleBySystemId(idCanale); corr.canalePref = canale; break; } } } } } } //Salvo le informazioni aggiornate nella sessione ((DocsPAWA.DocsPaWR.ProtocolloUscita)schedaDoc.protocollo).destinatari = dest; ((DocsPAWA.DocsPaWR.ProtocolloUscita)schedaDoc.protocollo).destinatariConoscenza = destCc; DocumentManager.setDocumentoInLavorazione(this, schedaDoc); DocumentManager.setDocumentoSelezionato(this, schedaDoc); //richiama la funzione javascript che aggiorna il form chiamante string funct = " window.open('../documento/docProtocollo.aspx?editMode=true','IframeTabs'); "; funct = funct + " window.close(); "; Response.Write("<script> " + funct + "</script>"); }