private void BuildFiltersSearchNotifications() { Filters = new NotificationsFilters(); Filters.TYPE_DOCUMENT = this.rblFilterDocumentType.SelectedValue.Equals("ALL") ? string.Empty : this.rblFilterDocumentType.SelectedValue; Filters.DOCUMENT_ACQUIRED = this.cbDocumentAcquired.Selected; Filters.DOCUMENT_SIGNED = this.cbDocumentSigned.Selected; Filters.DOCUMENT_UNSIGNED = this.cbDocumentNotSigned.Selected; Filters.PENDING = this.cbWaitingAcceptance.Checked; Filters.DATE_EVENT_FROM = this.txt_dateEventFrom.Text; Filters.DATE_EVENT_TO = this.PlaceHolderDateEventTo.Visible ? this.txt_dateEventTo.Text : ""; Filters.DATE_EXPIRE_FROM = this.txt_expirationDateFrom.Text; Filters.DATE_EXPIRE_TO = this.PlaceHolderExpirationDateTo.Visible ? this.txt_expirationDateTo.Text : ""; Filters.AUTHOR_DESCRIPTION = this.txtDescrizioneCreatore.Text; Filters.AUTHOR_SYSTEM_ID = this.txtCodiceCreatore.Text; Filters.AUTHOR_TYPE = this.rblOwnerType.SelectedValue; Filters.OBJECT = this.TxtObject.Text; Filters.TYPE_FILE_ACQUIRED = this.ddlTypeFileAcquired.SelectedValue; Filters.NOTES = this.txt_notes.Text; }
/// <summary> /// Restituisce l'id dei documenti che rispettano le condizioni impostate nel filtro in input /// </summary> /// <param name="idObject"></param> /// <param name="filter"></param> /// <returns></returns> public static List <string> GetDocumentByNotificationsFilters(string [] idObject, NotificationsFilters filter) { try { return(docsPaWS.GetDocumentByNotificationsFilters(idObject, filter).ToList <String>()); } catch (System.Exception ex) { UIManager.AdministrationManager.DiagnosticError(ex); return(null); } }
/// <summary> /// Costruisce la clausula where per la query che si occupa di recuperare i system_id dei documenti rispentanti i filtri applicati /// </summary> /// <param name="idObject"></param> /// <param name="filter"></param> /// <returns></returns> private string BuildConditionNotificationsFilters(string[] idObject, NotificationsFilters filter) { string condition = string.Empty; string listSystemId = string.Empty; string UserDB = string.Empty; if (dbType.ToUpper() == "SQL") { UserDB = getUserDB(); } condition += " (SYSTEM_ID IN("; if (idObject != null && idObject.Count() > 0) { int i = 0; foreach (string id in idObject) { condition += id; if (i < idObject.Length - 1) { if (i % 998 == 0 && i > 0) { condition += ") OR SYSTEM_ID IN ("; } else { condition += ", "; } } else { condition += ")"; } i++; } } else { condition += ")"; } condition += ") AND p.SYSTEM_ID = c.DOCNUMBER"; //foreach (string id in idObject) //{ // listSystemId += string.IsNullOrEmpty(listSystemId) ? " '" + id + "'" : " ,'" + id + "'"; //} //condition = "SYSTEM_ID IN (" + listSystemId + ") AND p.SYSTEM_ID = c.DOCNUMBER"; #region Filter by TYPE DOCUMENT if (!string.IsNullOrEmpty(filter.TYPE_DOCUMENT)) { if (filter.TYPE_DOCUMENT.Equals(PREDISPOSTO)) { condition += " AND p.CHA_TIPO_PROTO IN ('P', 'A', 'I') AND p.NUM_PROTO IS NULL"; } else { condition += filter.TYPE_DOCUMENT.Equals(NON_PROTOCOLLATO) ? " AND p.CHA_TIPO_PROTO='" + filter.TYPE_DOCUMENT + "'" : " AND p.CHA_TIPO_PROTO='" + filter.TYPE_DOCUMENT + "' AND p.NUM_PROTO IS NOT NULL"; } } #endregion #region Filter by FILE ACQUIRED string fileAcquired = string.Empty; if (filter.DOCUMENT_ACQUIRED) { fileAcquired = " AND (c.FILE_SIZE > 0"; } if (filter.DOCUMENT_SIGNED) { if (!string.IsNullOrEmpty(UserDB)) { fileAcquired += string.IsNullOrEmpty(fileAcquired) ? " AND ( " + UserDB + ".GETCHAFIRMATO(p.DOCNUMBER) = '1'" : "OR " + UserDB + ".GETCHAFIRMATO(p.DOCNUMBER) = '1'"; } else { fileAcquired += string.IsNullOrEmpty(fileAcquired) ? " AND (GETCHAFIRMATO(p.DOCNUMBER) = '1'" : "OR GETCHAFIRMATO(p.DOCNUMBER) = '1'"; } } if (filter.DOCUMENT_UNSIGNED) { if (!string.IsNullOrEmpty(UserDB)) { fileAcquired += string.IsNullOrEmpty(fileAcquired) ? " AND ( " + UserDB + ".GETCHAFIRMATO(p.DOCNUMBER) = '0'" : " OR " + UserDB + ".GETCHAFIRMATO(p.DOCNUMBER) = '0'"; } else { fileAcquired += string.IsNullOrEmpty(fileAcquired) ? " AND (GETCHAFIRMATO(p.DOCNUMBER) = '0'" : " OR GETCHAFIRMATO(p.DOCNUMBER) = '0'"; } } if (!string.IsNullOrEmpty(fileAcquired)) { fileAcquired += ")"; } condition += fileAcquired; #endregion #region Filter by TYPE FILE ACQUIRED if (!string.IsNullOrEmpty(filter.TYPE_FILE_ACQUIRED)) { if (!string.IsNullOrEmpty(UserDB)) { condition += " AND UPPER( " + UserDB + ".GETCHAIMG(p.DOCNUMBER)) = '" + filter.TYPE_FILE_ACQUIRED + "'"; } else { condition += " AND UPPER(GETCHAIMG(p.DOCNUMBER)) = '" + filter.TYPE_FILE_ACQUIRED + "'"; } } #endregion return(condition); }