/// <summary> /// Funzione per la conversione della lista di oggetti custom in dictionary /// </summary> /// <param name="template">Template da utilizzare per la creazione del documento</param> /// <returns>Dizionario Etichetta-Valore</returns> public static List <LabelValuePair> CustomObject2Dictionary(NttDataWA.DocsPaWR.Templates template) { List <LabelValuePair> converted = new List <LabelValuePair>(); // Conversione degli oggetti foreach (NttDataWA.DocsPaWR.OggettoCustom obj in template.ELENCO_OGGETTI) { converted.Add(new LabelValuePair() { Label = obj.DESCRIZIONE, Value = GetValueForCustomObject(obj.SYSTEM_ID, template) }); } return(converted); }
/// <summary> /// Funzione per la ricerca del valore da assegnare al campo di profilazione dinamica specificato /// </summary> /// <param name="customObjectId">Id del campo di cui recuperare il valore</param> /// <param name="template">Il template associato da cui prelevare il valore</param> /// <returns>Il valore da assegnare al campo</returns> public static String GetValueForCustomObject(int customObjectId, NttDataWA.DocsPaWR.Templates template) { // L'oggetto custom da cui prelevare i risultati NttDataWA.DocsPaWR.OggettoCustom customObject; // Il testo da restituire StringBuilder toReturn; // Inizializzazione del valore da restituire toReturn = new StringBuilder(); // Prelevamento dell'oggetto custom con l'etichetta specificata customObject = template.ELENCO_OGGETTI.Where(e => e.SYSTEM_ID == customObjectId).FirstOrDefault(); // Se l'oggetto custom è una casella di selezione, vengono mergiati i valori // selezionati altrimenti il valore da restituire è il valore associato al campo if (customObject != null) { switch (customObject.TIPO.DESCRIZIONE_TIPO.ToUpper()) { case "CASELLADISELEZIONE": foreach (String value in customObject.VALORI_SELEZIONATI) { if (!string.IsNullOrEmpty(value)) { toReturn.Append(value + "; "); } } if (toReturn.Length > 0) { toReturn.Remove(toReturn.Length - 2, 2); } break; case "CORRISPONDENTE": DocsPaWR.Corrispondente corr = UIManager.UserManager.getCorrispondenteBySystemIDDisabled(customObject.VALORE_DATABASE); if (corr != null) { toReturn.Append(corr.descrizione); } break; case "LINK": if (customObject.VALORE_DATABASE.Contains("||||")) { int stop = customObject.VALORE_DATABASE.IndexOf("||||"); toReturn.Append(customObject.VALORE_DATABASE.Substring(0, stop)); } else { toReturn.Append(customObject.VALORE_DATABASE); } break; case "CONTATORESOTTOCONTATORE": if (customObject.VALORE_DATABASE != null && !customObject.VALORE_DATABASE.Equals("")) { toReturn.Append(customObject.VALORE_DATABASE + "-" + customObject.VALORE_SOTTOCONTATORE); } break; default: toReturn.Append(customObject.VALORE_DATABASE); break; } } // Restituzione del valore return(toReturn.ToString()); }