private string GetSubFolders(DocsPaWR.Folder folder, bool isRoot, ref List <string> idListProjectIns)
        {
            try
            {
                string type    = isRoot ? "root" : "node";
                string htmlDoc = this.caricaDocumenti(folder);

                InstanceAccessDocument acc = new InstanceAccessDocument();
                string idObject            = string.Empty;
                string html = string.Empty;
                if (isRoot)
                {
                    acc = (this.InstanceDocuments.Where(x => x.INFO_PROJECT != null && x.INFO_PROJECT.ID_PROJECT == folder.idFascicolo)).FirstOrDefault();
                }
                else
                {
                    acc = (this.InstanceDocuments.Where(x => x.INFO_PROJECT != null && x.INFO_PROJECT.ID_PROJECT == folder.systemID)).FirstOrDefault();
                }

                if (acc != null)
                {
                    idListProjectIns.Add(acc.INFO_PROJECT.ID_PROJECT);
                    string idNode = acc.ID_INSTANCE_ACCESS_DOCUMENT;
                    string check  = string.Empty;
                    //if (acc.ENABLE)
                    //{
                    //    check = "class=\"jstree-checked\"";
                    //}
                    check = "class=\"jstree-unchecked\"";
                    html  = "   <li " + check + "rel=\"directory\" id=\"" + type + "_" + idNode + "\" data-title=\"" + utils.FormatJs(utils.FormatHtml(folder.descrizione)) + "\">\n"
                            + "       <a href=\"#\" class=\"document_ellipsis clickableRight\" title=\"" + utils.FormatJs(utils.FormatHtml(folder.descrizione)) + "\">" + utils.FormatHtml(folder.descrizione) + "</a>\n";
                    if (folder.childs.Length > 0 || !string.IsNullOrEmpty(htmlDoc))
                    {
                        html += "<ul>\n";
                        if (folder.childs.Length > 0)
                        {
                            for (int k = 0; k < folder.childs.Length; k++)
                            {
                                html += this.GetSubFolders(folder.childs[k], ref idListProjectIns);
                            }
                        }

                        if (!string.IsNullOrEmpty(htmlDoc))
                        {
                            html += htmlDoc;
                        }

                        html += "</ul>\n";
                    }
                    html += "   </li>\n";
                }
                else
                {
                    string typeNode = string.Empty;
                    if (folder.idFascicolo.Equals(folder.idParent))
                    {
                        idObject = folder.idFascicolo;
                        typeNode = "rootNo";
                    }
                    else
                    {
                        typeNode = "nodeNo";
                        idObject = folder.systemID;
                    }

                    string check = string.Empty;
                    if (acc != null && acc.ENABLE)
                    {
                        check = "class=\"jstree-checked\"";
                    }

                    html = "   <li " + check + " id=\"" + typeNode + "_" + folder.idFascicolo + "\" data-title=\"" + utils.FormatJs(utils.FormatHtml(folder.descrizione)) + "\">\n"
                           + "       <a href=\"#\" class=\"document_ellipsis clickableRight\" title=\"" + utils.FormatJs(utils.FormatHtml(folder.descrizione)) + "\">" + utils.FormatHtml(folder.descrizione) + "</a>\n";
                    if (folder.childs.Length > 0 || !string.IsNullOrEmpty(htmlDoc))
                    {
                        html += "<ul>\n";
                        if (folder.childs.Length > 0)
                        {
                            for (int k = 0; k < folder.childs.Length; k++)
                            {
                                html += this.GetSubFolders(folder.childs[k], ref idListProjectIns);
                            }
                        }

                        if (!string.IsNullOrEmpty(htmlDoc))
                        {
                            html += htmlDoc;
                        }

                        html += "</ul>\n";
                    }
                    html += "   </li>\n";
                }
                return(html);
            }
            catch (System.Exception ex)
            {
                UIManager.AdministrationManager.DiagnosticError(ex);
                return(null);
            }
        }
示例#2
0
        private DocsPaVO.InstanceAccess.Metadata.Allegato[] getAllegati(DocsPaVO.documento.SchedaDocumento schDoc, InstanceAccessDocument doc, DocsPaVO.utente.InfoUtente infoUtente)
        {
            if (schDoc.allegati == null)
            {
                return(null);
            }
            if (schDoc.allegati.Count == 0)
            {
                return(null);
            }

            List <DocsPaVO.InstanceAccess.Metadata.Allegato> lstAll = new List <DocsPaVO.InstanceAccess.Metadata.Allegato>();

            foreach (object a in schDoc.allegati)
            {
                DocsPaVO.InstanceAccess.Metadata.Allegato allegato = new DocsPaVO.InstanceAccess.Metadata.Allegato();
                DocsPaVO.documento.Allegato all = a as DocsPaVO.documento.Allegato;
                if (all != null && (from att in doc.ATTACHMENTS where att.ID_ATTACH.Equals(all.docNumber) select att.ENABLE).FirstOrDefault())
                {
                    allegato.Descrizione = all.descrizione;
                    allegato.ID          = all.docNumber;
                    //allegato.Tipo = "manuale"; //Cablato , per ora.. poi si vedrà
                    string tipoAllegato = "";
                    switch (all.TypeAttachment)
                    {
                    case 1:
                        tipoAllegato = "Allegato Utente";
                        break;

                    case 2:
                        tipoAllegato = "Allegato PEC";
                        break;

                    case 3:
                        tipoAllegato = "Allegato IS";
                        break;

                    case 4:
                        tipoAllegato = "Allegato Esterno";
                        break;

                    default:
                        tipoAllegato = "Non specificato";
                        break;
                    }
                    allegato.Tipo = tipoAllegato;

                    if (!string.IsNullOrEmpty(all.fileSize) && Convert.ToInt32(all.fileSize) > 0)
                    {
                        FileDocumento fd = BusinessLogic.Documenti.FileManager.getFile(all, infoUtente);
                        allegato.File = getFileDetail(fd, all, infoUtente);
                    }
                    lstAll.Add(allegato);
                }
            }
            return(lstAll.ToArray());
        }
示例#3
0
        public XmlDocument(DocsPaVO.documento.FileDocumento fileDoc, DocsPaVO.documento.SchedaDocumento schDoc, DocsPaVO.documento.FileRequest objFileRequest, InstanceAccessDocument instanceDoc, DocsPaVO.utente.InfoUtente infoUtente)
        {
            if (this.documento == null)
            {
                documento = new DocsPaVO.InstanceAccess.Metadata.Document();
            }

            DocsPaVO.utente.Ruolo ruolo = BusinessLogic.Utenti.UserManager.getRuolo(schDoc.creatoreDocumento.idCorrGlob_Ruolo);
            //DocsPaVO.utente.InfoUtente infoUtente = BusinessLogic.Utenti.UserManager.GetInfoUtente(BusinessLogic.Utenti.UserManager.getUtente(schDoc.creatoreDocumento.idPeople), ruolo);
            DocsPaVO.utente.UnitaOrganizzativa unitaOrganizzativa = ruolo.uo;

            List <DocsPaVO.InstanceAccess.Metadata.UnitaOrganizzativa> uoL = new List <DocsPaVO.InstanceAccess.Metadata.UnitaOrganizzativa>();

            DocsPaVO.InstanceAccess.Metadata.UnitaOrganizzativa uoXML = convertiUO(unitaOrganizzativa);
            uoL.Add(uoXML);

            documento.SoggettoProduttore = new DocsPaVO.InstanceAccess.Metadata.SoggettoProduttore
            {
                Amministrazione = getInfoAmministrazione(ruolo.idAmministrazione),
                GerarchiaUO     = new DocsPaVO.InstanceAccess.Metadata.GerarchiaUO {
                    UnitaOrganizzativa = uoL.ToArray()
                },
                Creatore = getCreatore(schDoc, ruolo)
            };

            documento.IDdocumento = schDoc.systemId;
            documento.Oggetto     = schDoc.oggetto.descrizione;
            documento.Tipo        = convertiTipoPoto(schDoc);
            //  documento.DataCreazione = Utils.formattaData(Utils.convertiData(schDoc.dataCreazione));
            documento.DataCreazione = schDoc.dataCreazione;

            if (schDoc.privato != null && schDoc.privato.Equals("1"))
            {
                documento.LivelloRiservatezza = "privato";
            }
            else
            {
                documento.LivelloRiservatezza = string.Empty;
            }
            if (instanceDoc.ENABLE && fileDoc != null)
            {
                documento.File = getFileDetail(fileDoc, objFileRequest, infoUtente);
            }
            documento.Registrazione        = getRegistrazione(schDoc, ruolo);
            documento.ContestoArchivistico = getContestoArchivistico(schDoc, ruolo, infoUtente);

            if (schDoc.template != null)
            {
                DocsPaVO.InstanceAccess.Metadata.Tipologia t = new DocsPaVO.InstanceAccess.Metadata.Tipologia {
                    NomeTipologia = schDoc.template.DESCRIZIONE, CampoTipologia = getCampiTipologia(schDoc.template)
                };
                documento.Tipologia = t;
            }
            documento.Allegati      = getAllegati(schDoc, instanceDoc, infoUtente);
            documento.TipoRichiesta = instanceDoc.TYPE_REQUEST;
        }
示例#4
0
        /*
         * protected void BtnCheckedDocuments_Click()
         * {
         *  string value = this.treenode_checked.Value;
         *  string idObject = string.Empty;
         *  List<InstanceAccessDocument> listDoc = new List<InstanceAccessDocument>();
         *
         *  List<InstanceAccessAttachments> listAtt = new List<InstanceAccessAttachments>();
         *  InstanceAccessDocument acc = new InstanceAccessDocument();
         *  if (!string.IsNullOrEmpty(value))
         *  {
         *      string[] values = value.Split(',');
         *      if (values != null && values.Length > 0)
         *      {
         *
         *
         *          foreach (string val in values)
         *          {
         *
         *              acc = (this.InstanceDocuments.Where(x => x.ID_INSTANCE_ACCESS_DOCUMENT == val.Split('_')[1])).FirstOrDefault();
         *              switch (val.Split('_')[0])
         *              {
         *
         *                  case "root":
         *                      if (acc != null)
         *                      {
         *                          idObject = acc.INFO_PROJECT.ID_PROJECT;
         *                          listDoc = this.InstanceDocuments.Where(x => x.INFO_PROJECT != null && (x.INFO_PROJECT.ID_PROJECT == idObject || x.INFO_PROJECT.ID_FASCICOLO == idObject)).ToList<InstanceAccessDocument>();
         *                          UIManager.InstanceAccessManager.RemoveInstanceAccessDocuments(listDoc);
         *                          this.InstanceDocuments.RemoveAll(x => x.INFO_PROJECT != null && (x.INFO_PROJECT.ID_PROJECT == idObject || x.INFO_PROJECT.ID_FASCICOLO == idObject));
         *                      }
         *                      break;
         *                  case "node":
         *                      if (acc != null)
         *                      {
         *                          idObject = acc.INFO_PROJECT.ID_PROJECT;
         *                          listDoc = this.InstanceDocuments.Where(x => x.INFO_PROJECT != null && (x.INFO_PROJECT.ID_PROJECT == idObject || x.INFO_PROJECT.ID_FASCICOLO == idObject)).ToList<InstanceAccessDocument>();
         *                          UIManager.InstanceAccessManager.RemoveInstanceAccessDocuments(listDoc);
         *                          this.InstanceDocuments.RemoveAll(x => x.INFO_PROJECT != null && (x.INFO_PROJECT.ID_PROJECT == idObject || x.INFO_PROJECT.ID_FASCICOLO == idObject));
         *                      }
         *                      break;
         *
         *                  case "doc":
         *                      if (acc != null)
         *                      {
         *                          idObject = acc.ID_INSTANCE_ACCESS_DOCUMENT;
         *                          List<InstanceAccessDocument> listInstanceAccessDocument = new List<InstanceAccessDocument>();
         *                          listDoc = this.InstanceDocuments.Where(x => x.ID_INSTANCE_ACCESS_DOCUMENT == idObject).ToList<InstanceAccessDocument>();
         *                          //se ci sono allegati li prendo e li inserisco come documenti singoli
         *                          foreach (InstanceAccessDocument instanceDoc in listDoc)
         *                          {
         *                              if (instanceDoc.ATTACHMENTS != null && instanceDoc.ATTACHMENTS.Length > 0)
         *                              {
         *
         *                                  foreach (InstanceAccessAttachments att in instanceDoc.ATTACHMENTS)
         *                                  {
         *                                      InstanceAccessDocument instInset = new InstanceAccessDocument();
         *                                      instInset.ID_INSTANCE_ACCESS = InstanceAccessManager.getInstanceAccessInSession().ID_INSTANCE_ACCESS;
         *                                      instInset.DOCNUMBER = att.ID_ATTACH;
         *                                      instInset.ATTACHMENTS = new InstanceAccessAttachments[0];
         *                                      instInset.INFO_DOCUMENT = new InfoDocument() { DOCNUMBER = att.ID_ATTACH };
         *                                      listInstanceAccessDocument.Add(instInset);
         *                                  }
         *
         *
         *
         *                              }
         *                          }
         *
         *                          if (listInstanceAccessDocument != null && listInstanceAccessDocument.Count > 0 && InstanceAccessManager.InsertInstanceAccessDocuments(listInstanceAccessDocument))
         *                          {
         *                              DocsPaWR.InstanceAccess instanceAccess = InstanceAccessManager.GetInstanceAccessById(InstanceAccessManager.getInstanceAccessInSession().ID_INSTANCE_ACCESS);
         *                              InstanceAccessManager.setInstanceAccessInSession(instanceAccess);
         *                              this.InstanceDocuments = instanceAccess.DOCUMENTS.ToList<InstanceAccessDocument>();
         *                          }
         *                          UIManager.InstanceAccessManager.RemoveInstanceAccessDocuments(listDoc);
         *                          this.InstanceDocuments.RemoveAll(x => x.ID_INSTANCE_ACCESS_DOCUMENT == idObject);
         *                      }
         *                      break;
         *                  case "attach":
         *
         *                      foreach (InstanceAccessDocument instanceDoc in this.InstanceDocuments)
         *                      {
         *                          if (instanceDoc.ATTACHMENTS != null && instanceDoc.ATTACHMENTS.Length > 0)
         *                          {
         *                              //listAtt = instanceDoc.ATTACHMENTS.ToList<InstanceAccessAttachments>().Where(p => p.ID_ATTACH.Equals(idObject)).ToList<InstanceAccessAttachments>();
         *                              //instanceDoc.ATTACHMENTS.ToList<InstanceAccessAttachments>().RemoveAll(p => p.ID_ATTACH.Equals(idObject));
         *
         *                              listAtt = instanceDoc.ATTACHMENTS.ToList<InstanceAccessAttachments>().Where(p => p.SYSTEM_ID.Equals(val.Split('_')[1])).ToList<InstanceAccessAttachments>();
         *                              instanceDoc.ATTACHMENTS.ToList<InstanceAccessAttachments>().RemoveAll(p => p.SYSTEM_ID.Equals(val.Split('_')[1]));
         *
         *
         *
         *                              if (listAtt != null && listAtt.Count > 0)
         *                              {
         *
         *                                  break;
         *                              }
         *                          }
         *
         *                      }
         *
         *                      UIManager.InstanceAccessManager.RemoveInstanceAccessAttachments(listAtt);
         *
         *                      break;
         *                  case "rootNo":
         *                      idObject = this.treenode_deleted.Value.Split('_')[1];
         *                      listDoc = this.InstanceDocuments.Where(x => x.INFO_PROJECT != null && (x.INFO_PROJECT.ID_PROJECT == idObject || x.INFO_PROJECT.ID_FASCICOLO == idObject)).ToList<InstanceAccessDocument>();
         *                      UIManager.InstanceAccessManager.RemoveInstanceAccessDocuments(listDoc);
         *                      this.InstanceDocuments.RemoveAll(x => x.INFO_PROJECT != null && (x.INFO_PROJECT.ID_PROJECT == idObject || x.INFO_PROJECT.ID_FASCICOLO == idObject));
         *                      break;
         *                  case "nodeNo":
         *                      idObject = this.treenode_deleted.Value.Split('_')[1];
         *                      listDoc = this.InstanceDocuments.Where(x => x.INFO_PROJECT != null && (x.INFO_PROJECT.ID_PROJECT == idObject || x.INFO_PROJECT.ID_FASCICOLO == idObject)).ToList<InstanceAccessDocument>();
         *                      UIManager.InstanceAccessManager.RemoveInstanceAccessDocuments(listDoc);
         *                      this.InstanceDocuments.RemoveAll(x => x.INFO_PROJECT != null && (x.INFO_PROJECT.ID_PROJECT == idObject || x.INFO_PROJECT.ID_FASCICOLO == idObject));
         *                      break;
         *              }
         *          }
         *          DocsPaWR.InstanceAccess inst = UIManager.InstanceAccessManager.getInstanceAccessInSession();
         *          inst.DOCUMENTS = this.InstanceDocuments.ToArray<InstanceAccessDocument>();
         *          UIManager.InstanceAccessManager.setInstanceAccessInSession(inst);
         *
         *          ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "RefreshJsTree", "JsTree();", true);
         *
         *          this.treenode_deleted.Value = string.Empty;
         *          this.upPnlButtons.Update();
         *      }
         *  }
         * }
         *
         * */

        protected void BtnContextMenu_Click()
        {
            List <InstanceAccessDocument>    listDoc = new List <InstanceAccessDocument>();
            List <InstanceAccessAttachments> listAtt = new List <InstanceAccessAttachments>();
            InstanceAccessDocument           acc     = new InstanceAccessDocument();
            string idObject = string.Empty;

            if (!string.IsNullOrEmpty(this.treenode_deleted.Value))
            {
                acc = (this.InstanceDocuments.Where(x => x.ID_INSTANCE_ACCESS_DOCUMENT == this.treenode_deleted.Value.Split('_')[1])).FirstOrDefault();
                switch (this.treenode_deleted.Value.Split('_')[0])
                {
                case "root":
                    idObject = acc.INFO_PROJECT.ID_PROJECT;
                    listDoc  = this.InstanceDocuments.Where(x => x.INFO_PROJECT != null && (x.INFO_PROJECT.ID_PROJECT == idObject || x.INFO_PROJECT.ID_FASCICOLO == idObject)).ToList <InstanceAccessDocument>();
                    UIManager.InstanceAccessManager.RemoveInstanceAccessDocuments(listDoc);
                    this.InstanceDocuments.RemoveAll(x => x.INFO_PROJECT != null && (x.INFO_PROJECT.ID_PROJECT == idObject || x.INFO_PROJECT.ID_FASCICOLO == idObject));
                    break;

                case "node":
                    idObject = acc.INFO_PROJECT.ID_PROJECT;
                    listDoc  = this.InstanceDocuments.Where(x => x.INFO_PROJECT != null && (x.INFO_PROJECT.ID_PROJECT == idObject || x.INFO_PROJECT.ID_FASCICOLO == idObject)).ToList <InstanceAccessDocument>();
                    UIManager.InstanceAccessManager.RemoveInstanceAccessDocuments(listDoc);
                    this.InstanceDocuments.RemoveAll(x => x.INFO_PROJECT != null && (x.INFO_PROJECT.ID_PROJECT == idObject || x.INFO_PROJECT.ID_FASCICOLO == idObject));
                    break;

                case "doc":
                    idObject = acc.ID_INSTANCE_ACCESS_DOCUMENT;
                    List <InstanceAccessDocument> listInstanceAccessDocument = new List <InstanceAccessDocument>();
                    listDoc = this.InstanceDocuments.Where(x => x.ID_INSTANCE_ACCESS_DOCUMENT == idObject).ToList <InstanceAccessDocument>();
                    //se ci sono allegati li prendo e li inserisco come documenti singoli
                    foreach (InstanceAccessDocument instanceDoc in listDoc)
                    {
                        if (instanceDoc.ATTACHMENTS != null && instanceDoc.ATTACHMENTS.Length > 0)
                        {
                            foreach (InstanceAccessAttachments att in instanceDoc.ATTACHMENTS)
                            {
                                InstanceAccessDocument instInset = new InstanceAccessDocument();
                                instInset.ID_INSTANCE_ACCESS = InstanceAccessManager.getInstanceAccessInSession().ID_INSTANCE_ACCESS;
                                instInset.DOCNUMBER          = att.ID_ATTACH;
                                instInset.ATTACHMENTS        = new InstanceAccessAttachments[0];
                                instInset.INFO_DOCUMENT      = new InfoDocument()
                                {
                                    DOCNUMBER = att.ID_ATTACH
                                };
                                listInstanceAccessDocument.Add(instInset);
                            }
                        }
                    }

                    if (listInstanceAccessDocument != null && listInstanceAccessDocument.Count > 0 && InstanceAccessManager.InsertInstanceAccessDocuments(listInstanceAccessDocument))
                    {
                        DocsPaWR.InstanceAccess instanceAccess = InstanceAccessManager.GetInstanceAccessById(InstanceAccessManager.getInstanceAccessInSession().ID_INSTANCE_ACCESS);
                        InstanceAccessManager.setInstanceAccessInSession(instanceAccess);
                        this.InstanceDocuments = instanceAccess.DOCUMENTS.ToList <InstanceAccessDocument>();
                        ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "RefreshJsTree", "JsTree();", true);
                    }
                    UIManager.InstanceAccessManager.RemoveInstanceAccessDocuments(listDoc);
                    this.InstanceDocuments.RemoveAll(x => x.ID_INSTANCE_ACCESS_DOCUMENT == idObject);
                    break;

                case "attach":
                    foreach (InstanceAccessDocument instanceDoc in this.InstanceDocuments)
                    {
                        if (instanceDoc.ATTACHMENTS != null && instanceDoc.ATTACHMENTS.Length > 0)
                        {
                            //listAtt = instanceDoc.ATTACHMENTS.ToList<InstanceAccessAttachments>().Where(p => p.ID_ATTACH.Equals(idObject)).ToList<InstanceAccessAttachments>();
                            //instanceDoc.ATTACHMENTS.ToList<InstanceAccessAttachments>().RemoveAll(p => p.ID_ATTACH.Equals(idObject));

                            listAtt = instanceDoc.ATTACHMENTS.ToList <InstanceAccessAttachments>().Where(p => p.SYSTEM_ID.Equals(this.treenode_deleted.Value.Split('_')[1])).ToList <InstanceAccessAttachments>();
                            instanceDoc.ATTACHMENTS.ToList <InstanceAccessAttachments>().RemoveAll(p => p.SYSTEM_ID.Equals(this.treenode_deleted.Value.Split('_')[1]));


                            if (listAtt != null && listAtt.Count > 0)
                            {
                                break;
                            }
                        }
                        // instanceDoc.ATTACHMENTS.ToList().RemoveAll(p => p.ID_ATTACH.Equals(this.treenode_deleted.Value.Split('_')[1]));
                    }

                    UIManager.InstanceAccessManager.RemoveInstanceAccessAttachments(listAtt);

                    /*
                     *                  InstanceAccessDocument doc = (from d in listInstanceAccessDocumentTemp
                     *                                                where ((from a in d.ATTACHMENTS where a.ID_ATTACH.Equals("id") select a).Count() > 0)
                     *                                                select d).FirstOrDefault();
                     *                  (listInstanceAccessDocumentTemp.Find(d => d.ID_INSTANCE_ACCESS_DOCUMENT.Equals(doc.ID_INSTANCE_ACCESS_DOCUMENT))).ATTACHMENTS.ToList().RemoveAll(a => a.ID_ATTACH.Equals("id"));
                     */
                    break;

                case "rootNo":
                    idObject = this.treenode_deleted.Value.Split('_')[1];
                    listDoc  = this.InstanceDocuments.Where(x => x.INFO_PROJECT != null && (x.INFO_PROJECT.ID_PROJECT == idObject || x.INFO_PROJECT.ID_FASCICOLO == idObject)).ToList <InstanceAccessDocument>();
                    UIManager.InstanceAccessManager.RemoveInstanceAccessDocuments(listDoc);
                    this.InstanceDocuments.RemoveAll(x => x.INFO_PROJECT != null && (x.INFO_PROJECT.ID_PROJECT == idObject || x.INFO_PROJECT.ID_FASCICOLO == idObject));
                    break;

                case "nodeNo":
                    idObject = this.treenode_deleted.Value.Split('_')[1];
                    listDoc  = this.InstanceDocuments.Where(x => x.INFO_PROJECT != null && (x.INFO_PROJECT.ID_PROJECT == idObject || x.INFO_PROJECT.ID_FASCICOLO == idObject)).ToList <InstanceAccessDocument>();
                    UIManager.InstanceAccessManager.RemoveInstanceAccessDocuments(listDoc);
                    this.InstanceDocuments.RemoveAll(x => x.INFO_PROJECT != null && (x.INFO_PROJECT.ID_PROJECT == idObject || x.INFO_PROJECT.ID_FASCICOLO == idObject));
                    break;
                }
            }
            DocsPaWR.InstanceAccess inst = UIManager.InstanceAccessManager.getInstanceAccessInSession();
            inst.DOCUMENTS = this.InstanceDocuments.ToArray <InstanceAccessDocument>();
            UIManager.InstanceAccessManager.setInstanceAccessInSession(inst);

            //ScriptManager.RegisterStartupScript(this, this.GetType(), "jsTree", "JsTree();", true);
            //this.upnlStruttura.Update();

            this.treenode_deleted.Value = string.Empty;
            this.upPnlButtons.Update();
        }
示例#5
0
        protected void BtnCheckedDocuments_Click()
        {
            string value    = this.treenode_checked.Value;
            string idObject = string.Empty;
            List <InstanceAccessDocument>    listDoc    = new List <InstanceAccessDocument>();
            List <InstanceAccessDocument>    listDocApp = new List <InstanceAccessDocument>();
            List <InstanceAccessAttachments> listAtt    = new List <InstanceAccessAttachments>();
            List <InstanceAccessAttachments> listAttApp = new List <InstanceAccessAttachments>();
            //listDoc = (from d in this.InstanceDocuments select new{instance=d,}).up
            InstanceAccessDocument acc = new InstanceAccessDocument();

            //Inizialmente imposto tutti gli ENABLED dei documenti, e relativi allegati, a false
            for (int i = 0; i < this.InstanceDocuments.Count(); i++)
            {
                this.InstanceDocuments[i].ENABLE = false;
                listDoc.Add(this.InstanceDocuments[i]);
                if (InstanceDocuments[i].ATTACHMENTS != null && InstanceDocuments[i].ATTACHMENTS.Length > 0)
                {
                    for (int j = 0; j < InstanceDocuments[i].ATTACHMENTS.Count(); j++)
                    {
                        InstanceDocuments[i].ATTACHMENTS[j].ENABLE = false;
                        listAtt.Add(InstanceDocuments[i].ATTACHMENTS[j]);
                    }
                }
            }
            if (!string.IsNullOrEmpty(value))
            {
                string[] values = value.Split(',');
                if (values != null && values.Length > 0)
                {
                    foreach (string val in values)
                    {
                        acc = (this.InstanceDocuments.Where(x => x.ID_INSTANCE_ACCESS_DOCUMENT == val.Split('_')[1])).FirstOrDefault();
                        switch (val.Split('_')[0])
                        {
                        /*
                         * case "root":
                         * if (acc != null)
                         * {
                         *  idObject = acc.INFO_PROJECT.ID_PROJECT;
                         *  listDocApp = this.InstanceDocuments.Where(x => x.INFO_PROJECT != null && (x.INFO_PROJECT.ID_PROJECT == idObject || x.INFO_PROJECT.ID_FASCICOLO == idObject)).ToList<InstanceAccessDocument>();
                         *  if (listDocApp != null && listDocApp.Count() > 0)
                         *  {
                         *      foreach (InstanceAccessDocument d in listDocApp)
                         *      {
                         *          int index = listDoc.Select((item, i) => new { obj = item, index = i }).First(item => item.obj.ID_INSTANCE_ACCESS_DOCUMENT.Equals(d.ID_INSTANCE_ACCESS_DOCUMENT)).index;
                         *          listDoc[index].ENABLE = true;
                         *      }
                         *  }
                         *  this.InstanceDocuments.Clear();
                         *  this.InstanceDocuments.AddRange(listDoc);
                         * }
                         * break;
                         * case "node":
                         * if (acc != null)
                         * {
                         *  idObject = acc.INFO_PROJECT.ID_PROJECT;
                         *  listDocApp = this.InstanceDocuments.Where(x => x.INFO_PROJECT != null && (x.INFO_PROJECT.ID_PROJECT == idObject || x.INFO_PROJECT.ID_FASCICOLO == idObject)).ToList<InstanceAccessDocument>();
                         *  if (listDocApp != null && listDocApp.Count() > 0)
                         *  {
                         *      foreach (InstanceAccessDocument d in listDocApp)
                         *      {
                         *          int index = listDoc.Select((item, i) => new { obj = item, index = i }).First(item => item.obj.ID_INSTANCE_ACCESS_DOCUMENT.Equals(d.ID_INSTANCE_ACCESS_DOCUMENT)).index;
                         *          listDoc[index].ENABLE = true;
                         *      }
                         *  }
                         *  this.InstanceDocuments.Clear();
                         *  this.InstanceDocuments.AddRange(listDoc);
                         * }
                         * break;
                         * */
                        case "doc":
                            if (acc != null)
                            {
                                idObject = acc.ID_INSTANCE_ACCESS_DOCUMENT;
                                List <InstanceAccessDocument> listInstanceAccessDocument = new List <InstanceAccessDocument>();
                                listDocApp = this.InstanceDocuments.Where(x => x.ID_INSTANCE_ACCESS_DOCUMENT == idObject).ToList <InstanceAccessDocument>();
                                if (listDocApp != null && listDocApp.Count() > 0)
                                {
                                    foreach (InstanceAccessDocument d in listDocApp)
                                    {
                                        int index = listDoc.Select((item, i) => new { obj = item, index = i }).First(item => item.obj.ID_INSTANCE_ACCESS_DOCUMENT.Equals(d.ID_INSTANCE_ACCESS_DOCUMENT)).index;
                                        listDoc[index].ENABLE = true;
                                    }
                                }
                                this.InstanceDocuments.Clear();
                                this.InstanceDocuments.AddRange(listDoc);
                            }
                            break;

                        case "attach":

                            foreach (InstanceAccessDocument instanceDoc in this.InstanceDocuments)
                            {
                                if (instanceDoc.ATTACHMENTS != null && instanceDoc.ATTACHMENTS.Length > 0)
                                {
                                    listAttApp = instanceDoc.ATTACHMENTS.ToList <InstanceAccessAttachments>().Where(p => p.SYSTEM_ID.Equals(val.Split('_')[1])).ToList <InstanceAccessAttachments>();
                                    if (listAttApp != null && listAttApp.Count() > 0)
                                    {
                                        foreach (InstanceAccessAttachments a in listAttApp)
                                        {
                                            int index = listAtt.Select((item, i) => new { obj = item, index = i }).First(item => item.obj.SYSTEM_ID.Equals(a.SYSTEM_ID)).index;
                                            listAtt[index].ENABLE = true;

                                            int indexListAttInSession = instanceDoc.ATTACHMENTS.Select((item, i) => new { obj = item, index = i }).First(item => item.obj.SYSTEM_ID.Equals(a.SYSTEM_ID)).index;
                                            instanceDoc.ATTACHMENTS[indexListAttInSession].ENABLE = true;
                                        }
                                        break;
                                    }
                                }
                            }

                            break;

                        case "rootNo":
                            idObject = this.treenode_deleted.Value.Split('_')[1];
                            listDoc  = this.InstanceDocuments.Where(x => x.INFO_PROJECT != null && (x.INFO_PROJECT.ID_PROJECT == idObject || x.INFO_PROJECT.ID_FASCICOLO == idObject)).ToList <InstanceAccessDocument>();
                            UIManager.InstanceAccessManager.RemoveInstanceAccessDocuments(listDoc);
                            this.InstanceDocuments.RemoveAll(x => x.INFO_PROJECT != null && (x.INFO_PROJECT.ID_PROJECT == idObject || x.INFO_PROJECT.ID_FASCICOLO == idObject));
                            break;

                        case "nodeNo":
                            idObject = this.treenode_deleted.Value.Split('_')[1];
                            listDoc  = this.InstanceDocuments.Where(x => x.INFO_PROJECT != null && (x.INFO_PROJECT.ID_PROJECT == idObject || x.INFO_PROJECT.ID_FASCICOLO == idObject)).ToList <InstanceAccessDocument>();
                            UIManager.InstanceAccessManager.RemoveInstanceAccessDocuments(listDoc);
                            this.InstanceDocuments.RemoveAll(x => x.INFO_PROJECT != null && (x.INFO_PROJECT.ID_PROJECT == idObject || x.INFO_PROJECT.ID_FASCICOLO == idObject));
                            break;
                        }
                    }
                }
            }
            UIManager.InstanceAccessManager.UpdateInstanceAccessDocumentEnable(listDoc);
            if (listAtt != null && listAtt.Count() > 0)
            {
                UIManager.InstanceAccessManager.UpdateInstanceAccessAttachmentsEnable(listAtt);
            }
            DocsPaWR.InstanceAccess inst = UIManager.InstanceAccessManager.getInstanceAccessInSession();
            inst.DOCUMENTS = this.InstanceDocuments.ToArray <InstanceAccessDocument>();
            UIManager.InstanceAccessManager.setInstanceAccessInSession(inst);

            //ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "RefreshJsTree", "JsTree();", true);

            this.treenode_deleted.Value = string.Empty;
            this.upPnlButtons.Update();
        }
示例#6
0
        protected void BtnChangeSelectedDocument_Click(object sender, EventArgs e)
        {
            //if (!string.IsNullOrEmpty(this.treenode_sel.Value))
            //{
            //    InstanceAccessDocument acc = new InstanceAccessDocument();
            //    acc = (this.InstanceDocuments.Where(x => x.ID_INSTANCE_ACCESS_DOCUMENT == this.treenode_sel.Value.Split('_')[1])).FirstOrDefault();

            //    Session["IsInvokingFromProjectStructure"] = true;
            //    string value = this.treenode_sel.Value;
            //    string[] words = this.treenode_sel.Value.Split('_');
            //    if (words != null && words.Length > 1)
            //    {
            //        value = words[words.Length - 1];
            //    }

            //    if (acc != null)
            //    {
            //        SchedaDocumento doc = DocumentManager.getDocumentDetails(this, value, value);
            //        DocumentManager.setSelectedRecord(doc);
            //        FileManager.setSelectedFile(doc.documenti[0]);
            //        this.ViewDocument.Page_Load(null, null);
            //        this.unPnlVD.Visible = true;
            //        this.unPnlViewDocument.Update();
            //    }
            //}
            //else
            //{
            //    DocumentManager.setSelectedRecord(null);
            //    this.unPnlVD.Visible = false;
            //    this.unPnlViewDocument.Update();
            //}

            List <InstanceAccessDocument>    listDoc = new List <InstanceAccessDocument>();
            List <InstanceAccessAttachments> listAtt = new List <InstanceAccessAttachments>();
            InstanceAccessDocument           acc     = new InstanceAccessDocument();
            InstanceAccessAttachments        att     = new InstanceAccessAttachments();
            string idObject = string.Empty;

            if (!string.IsNullOrEmpty(this.treenode_sel.Value))
            {
                string documentID = string.Empty;
                //Session["IsInvokingFromProjectStructure"] = true;
                string   value = this.treenode_sel.Value;
                string[] words = this.treenode_sel.Value.Split('_');
                if (words != null && words.Length > 1)
                {
                    value = words[words.Length - 1];
                }

                switch (this.treenode_sel.Value.Split('_')[0])
                {
                case "doc":
                    acc        = (this.InstanceDocuments.Where(x => x.ID_INSTANCE_ACCESS_DOCUMENT == this.treenode_sel.Value.Split('_')[1])).FirstOrDefault();
                    documentID = acc.DOCNUMBER;
                    break;

                case "attach":
                    foreach (InstanceAccessDocument instanceDoc in this.InstanceDocuments)
                    {
                        if (instanceDoc.ATTACHMENTS != null && instanceDoc.ATTACHMENTS.Length > 0)
                        {
                            att = instanceDoc.ATTACHMENTS.Where(p => p.SYSTEM_ID.Equals(this.treenode_sel.Value.Split('_')[1])).FirstOrDefault();
                            instanceDoc.ATTACHMENTS.ToList <InstanceAccessAttachments>().RemoveAll(p => p.SYSTEM_ID.Equals(this.treenode_sel.Value.Split('_')[1]));
                            if (att != null)
                            {
                                documentID = att.ID_ATTACH;
                                break;
                            }
                        }
                    }
                    break;
                }

                if (!string.IsNullOrEmpty(documentID))
                {
                    SchedaDocumento doc = DocumentManager.getDocumentDetails(this, documentID, documentID);
                    DocumentManager.setSelectedRecord(doc);
                    FileManager.setSelectedFile(doc.documenti[0]);
                    this.ViewDocument.Page_Load(null, null);
                    this.unPnlVD.Visible = true;
                    this.unPnlViewDocument.Update();
                }
                else
                {
                    DocumentManager.setSelectedRecord(null);
                    this.unPnlVD.Visible = false;
                    this.unPnlViewDocument.Update();
                }
            }
            else
            {
                DocumentManager.setSelectedRecord(null);
                this.unPnlVD.Visible = false;
                this.unPnlViewDocument.Update();
            }
        }