Пример #1
0
        ///// <summary>
        ///// </summary>
        ///// <param name="nodoTitolario"></param>
        ///// <param name="infoUtente"></param>
        //public static void deleteTitolario(DocsPaVO.fascicolazione.Classificazione nodoTitolario, DocsPaVO.utente.InfoUtente infoUtente)
        //{
        //    ArrayList listaID = new ArrayList();
        //    listaID.Add(nodoTitolario.systemID);
        //    /*DocsPa_V15_Utils.Database db = DocsPa_V15_Utils.dbControl.getDatabase();*/
        //    int numFigli = 1;
        //    try {
        //        //db.openConnection();
        //        listaID = ProjectsManager.getChildren(/*db,*/ "T", listaID);
        //        // posso cancellare il folder solo se non ha figli
        //        string idProject = (string)listaID[0];
        //        for (int i=1; i < listaID.Count; i++)
        //            idProject += "," + (string)listaID[i];

        //        #region Codice Commentato
        //        /*string queryString =
        //            "SELECT COUNT(*) FROM PROJECT_COMPONENTS WHERE PROJECT_ID IN (" + idProject + ")";
        //        logger.Debug(queryString);
        //        numFigli = Int32.Parse(db.executeScalar(queryString).ToString());*/
        //        #endregion

        //        DocsPaDB.Query_DocsPAWS.Fascicoli fascicoli = new DocsPaDB.Query_DocsPAWS.Fascicoli();

        //        numFigli = fascicoli.DeleteTitolario(idProject);
        //        fascicoli.Dispose();


        //        //db.closeConnection();
        //    } catch (Exception e) {
        //        logger.Debug(e.Message);
        //        //db.closeConnection();

        //        logger.Debug("Errore nella gestione dei fascicoli. (deleteTitolario)",e);
        //        throw e;
        //    }
        //    if (numFigli == 0)
        //    {
        //        for (int i=0; i < listaID.Count; i++)
        //        {
        //            //ProjectsManager.deletePCDProject((string)listaID[i], infoUtente);

        //            string library = DocsPaDB.Utils.Personalization.getInstance(infoUtente.idAmministrazione).getLibrary();
        //            DocsPaDocumentale.Documentale.ProjectManager documentManager = new DocsPaDocumentale.Documentale.ProjectManager(infoUtente, library);

        //            if(!documentManager.DeleteProject((string)listaID[i]))
        //            {
        //                logger.Debug("Errore nella gestione dei fascicoli. (deleteTitolario)");
        //                throw new Exception("Errore della cancellazione di un progetto");
        //            }
        //        }
        //    }
        //    else
        //    {
        //        logger.Debug("Errore nella gestione dei fascicoli. Il titolario contiene dei documenti. (deleteTitolario)");
        //        throw new Exception("Il titolario contiene dei documenti");
        //    }
        //}

        /// <summary>
        /// </summary>
        /// <param name="infoUtente"></param>
        /// <param name="nodoTitolario"></param>
        /// <returns></returns>
        public static string getCodiceFiglioTitolario(string idAmministrazione, DocsPaVO.fascicolazione.Classificazione nodoTitolario)
        {
            int    nextVal      = 1;
            string codiceParent = null;

            if (nodoTitolario != null && nodoTitolario.systemID != null)
            {
                string separator = DocsPaDB.Utils.Personalization.getInstance(idAmministrazione).getSeparator();
                codiceParent = nodoTitolario.codice + separator;

                if (nodoTitolario.childs != null && nodoTitolario.childs.Count > 0)
                {
                    for (int i = 0; i < nodoTitolario.childs.Count; i++)
                    {
                        string tmp = codiceParent + nextVal.ToString();

                        if (((DocsPaVO.fascicolazione.Classificazione)nodoTitolario.childs[i]).codice.Equals(tmp))
                        {
                            nextVal++;
                            i = 0;
                        }
                    }
                }
            }
            else
            {
                #region Codice Commentato

                /*string queryStr =
                 *      "SELECT COUNT(*) FROM PROJECT WHERE CHA_TIPO_PROJ = 'T' " +
                 *      "AND (NUM_LIVELLO = 0 OR NUM_LIVELLO IS NULL) AND ID_AMM = " + infoUtente.idAmministrazione;
                 * logger.Debug(queryStr);
                 * nextVal = Int32.Parse(db.executeScalar(queryStr).ToString()) + 1;*/
                #endregion

                DocsPaDB.Query_DocsPAWS.Fascicoli fascicoli = new DocsPaDB.Query_DocsPAWS.Fascicoli();
                nextVal = Int32.Parse(fascicoli.GetCodiceFiglioTitolario(idAmministrazione)) + 1;
                fascicoli.Dispose();
            }

            string ret = checkCodice(idAmministrazione, codiceParent, nextVal);

            while (ret == null)
            {
                ret = checkCodice(idAmministrazione, codiceParent, nextVal++);
            }

            return(ret);
        }