// Devolve a forma autorizada do CA passado public static GISADataset.ControloAutDicionarioRow getFormaAutorizada(GISADataset.ControloAutRow caRow) { foreach (GISADataset.ControloAutDicionarioRow cadRow in caRow.GetControloAutDicionarioRows()) { if (cadRow.IDTipoControloAutForma == (long)TipoControloAutForma.FormaAutorizada) return cadRow; } return null; }
internal static RegistoAutoridadeInterno CreateRegistoAutoridadeInterno(GISADataset.ControloAutRow caRow) { RegistoAutoridadeInterno rai = null; switch (caRow.IDTipoNoticiaAut) { case (long)TipoNoticiaAut.EntidadeProdutora: var produtor = new Model.EntidadesInternas.Produtor(); produtor.Codigo = caRow.GetNivelControloAutRows()[0].NivelRow.Codigo; rai = produtor; break; case (long)TipoNoticiaAut.TipologiaInformacional: var tipologia = new Model.EntidadesInternas.Tipologia(); rai = tipologia; break; case (long)TipoNoticiaAut.Onomastico: var onomastico = new Model.EntidadesInternas.Onomastico(); if (!caRow.IsChaveColectividadeNull()) onomastico.Codigo = caRow.ChaveColectividade; rai = onomastico; break; case (long)TipoNoticiaAut.Ideografico: var ideografico = new Model.EntidadesInternas.Ideografico(); rai = ideografico; break; case (long)TipoNoticiaAut.ToponimicoGeografico: var geografico = new Model.EntidadesInternas.Geografico(); rai = geografico; break; } rai.Id = caRow.ID; rai.Titulo = caRow.GetControloAutDicionarioRows().Where(cad => cad.IDTipoControloAutForma == (long)TipoControloAutForma.FormaAutorizada).Single().DicionarioRow.Termo; return rai; }
//metodo responsavel por eliminar toda a nuvem do CA actual em memoria public static PersistencyHelper.DeleteCAXPreConcArguments DeleteCAX(GISADataset.ControloAutRow caRow) { GISADataset.ControloAutDicionarioRow[] cadRows = caRow.GetControloAutDicionarioRows(); GISADataset.DicionarioRow dRow = null; PersistencyHelper.DeleteCAXPreConcArguments args = new PersistencyHelper.DeleteCAXPreConcArguments(); // eliminar registos de "Dicionario" e de "ControloAutDicionario" cadRows.ToList().ForEach(cadRow => { dRow = cadRow.DicionarioRow; args.termos.Add(dRow); cadRow.Delete(); }); args.caRowID = caRow.ID; args.catCode = getCatCode(caRow.TipoNoticiaAutRow); // eliminar registos de IndexFRDCA caRow.GetIndexFRDCARows().ToList().ForEach(idx => idx.Delete()); // Somente para notícias de autoridade relacionaveis caRow.GetControloAutRelRowsByControloAutControloAutRel().ToList().ForEach(carRow => carRow.Delete()); caRow.GetControloAutRelRowsByControloAutControloAutRelAlias().ToList().ForEach(carRow => carRow.Delete()); caRow.GetControloAutEntidadeProdutoraRows().ToList().ForEach(caepRow => caepRow.Delete()); caRow.GetControloAutDatasExistenciaRows().ToList().ForEach(cadeRow => cadeRow.Delete()); caRow.Delete(); return args; }