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; }