private void DocumentoSimplesOrderManager1_RemoveInvoked(object sender, EventArgs e)
        {
            var result = MessageBox.Show("Tem a certeza que pretende apagar o(s) objeto(s) digital(ais) selecionado(s)?", "Apagar objeto(s) digital(ais)", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            if (result == DialogResult.No)
            {
                return;
            }

            // TODO: avisar se existem ods associadados a subdocumentos

            var odsSimples = new List <ObjDigSimples>();

            if (mCurrentODComp != null)
            {
                odsSimples = mCurrentODComp.objSimples;
            }
            else
            {
                odsSimples = mCurrentODSimples;
            }

            DocumentoSimplesOrderManager1.getSelectedItems().ForEach(item =>
            {
                var selectedODSimples = item.Tag as ObjDigSimples;
                var odSimples         = odsSimples.SingleOrDefault(od => od.pid.Equals(selectedODSimples.pid));
                if (odSimples != null) // se OD está com o estado "added" basta removê-lo da lista; caso contrário é necessário atualizá-lo
                {
                    odSimples.state = State.deleted;
                }

                var nRow = FedoraHelper.GetRelatedNivelDoc(selectedODSimples.pid);
                if (nRow != null)
                {
                    DocumentoSimplesOrderManager1.RefreshItem(item, "", null, "");
                    var docSimples        = new SubDocumento();
                    docSimples.nRow       = nRow;
                    docSimples.id         = nRow.ID;
                    docSimples.guiorder   = item.Index + 1;
                    docSimples.designacao = nRow.GetNivelDesignadoRows().Single().Designacao;
                    item.Tag = docSimples;
                }
                item.Remove();
            });

            UpdateODCompostoStatePublicado();
            UpdateGrpODComposto();

            if (DocumentoSimplesOrderManager1.getSelectedItems().Count == 1 && DocumentoSimplesOrderManager1.getSelectedItems()[0].Tag.GetType() == typeof(SubDocumento))
            {
                DocumentoSimplesOrderManager1.SetEditMixedMode();
            }
        }
        private void GetSubDocsSemODs()
        {
            if (currentNivel.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquica().First().IDTipoNivelRelacionado != TipoNivelRelacionado.D)
            {
                return;
            }

            currentNivel.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquicaUpper().ToList().ForEach(rh =>
            {
                var imgRow = rh.NivelRowByNivelRelacaoHierarquica.GetFRDBaseRows().Single().GetSFRDImagemRows().SingleOrDefault(r => r.Tipo.Equals(FedoraHelper.typeFedora));
                if (imgRow == null)
                {
                    var docSimples        = new SubDocumento();
                    var nRow              = rh.NivelRowByNivelRelacaoHierarquica;
                    docSimples.nRow       = nRow;
                    docSimples.id         = nRow.ID;
                    docSimples.guiorder   = nRow.GetNivelDesignadoRows().Single().GetNivelDocumentoSimplesRows().Single().GUIOrder;
                    docSimples.designacao = nRow.GetNivelDesignadoRows().Single().Designacao;
                    docSimplesSemOD.Add(docSimples);
                }
            });
        }
        private void GetSubDocsSemODs()
        {
            if (currentNivel.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquica().First().IDTipoNivelRelacionado != TipoNivelRelacionado.D) return;

            currentNivel.GetRelacaoHierarquicaRowsByNivelRelacaoHierarquicaUpper().ToList().ForEach(rh =>
            {
                var imgRow = rh.NivelRowByNivelRelacaoHierarquica.GetFRDBaseRows().Single().GetSFRDImagemRows().SingleOrDefault(r => r.Tipo.Equals(FedoraHelper.typeFedora));
                if (imgRow == null)
                {
                    var docSimples = new SubDocumento();
                    var nRow = rh.NivelRowByNivelRelacaoHierarquica;
                    docSimples.nRow = nRow;
                    docSimples.id = nRow.ID;
                    docSimples.guiorder = nRow.GetNivelDesignadoRows().Single().GetNivelDocumentoSimplesRows().Single().GUIOrder;
                    docSimples.designacao = nRow.GetNivelDesignadoRows().Single().Designacao;
                    docSimplesSemOD.Add(docSimples);
                }
            });
        }
 private ListViewItem AddDocSimplesToList(SubDocumento docSimples)
 {
     return(DocumentoSimplesOrderManager1.CreateItem(docSimples.designacao, "", "", null, docSimples));
 }