public static void RegisterRecordModificationFRD(GISADataset.FRDBaseRow CurrentFRDBase, bool existsModifiedDataFromRels, GISADataset.TrusteeUserRow tuOperator, GISADataset.TrusteeUserRow tuAuthor, DateTime data) { // só é registada uma nova entrada no controlo de descrição se alguma informação relativa à FRD // tiver sido modificada; é também possível que já tenha sido registado uma nova entrada no controlo mas // nesse caso não se adiciona outra if (CurrentFRDBase == null || CurrentFRDBase.RowState == DataRowState.Detached || GisaDataSetHelper.GetInstance().FRDBaseDataDeDescricao.Select("IDFRDBase=" + CurrentFRDBase.ID.ToString(), "", DataViewRowState.Added).Length > 0) { return; } GISADataset.NivelUnidadeFisicaRow[] NivelUnidadeFisicaRows = new GISADataset.NivelUnidadeFisicaRow[] {}; if (CurrentFRDBase.NivelRow.IDTipoNivel == TipoNivel.OUTRO) { NivelUnidadeFisicaRows = CurrentFRDBase.NivelRow.GetNivelDesignadoRows()[0].GetNivelUnidadeFisicaRows(); } if (existsModifiedDataFromRels || CurrentFRDBase.RowState != DataRowState.Unchanged || Concorrencia.WasRecordModified(CurrentFRDBase) || Concorrencia.WasRecordModified(CurrentFRDBase.NivelRow) || (NivelUnidadeFisicaRows.Length > 0 && Concorrencia.isModifiedRow(NivelUnidadeFisicaRows[0]))) { var dddRow = CreateFRDBaseDataDeDescricaoRow(CurrentFRDBase, tuOperator, tuAuthor, data); GisaDataSetHelper.GetInstance().FRDBaseDataDeDescricao.AddFRDBaseDataDeDescricaoRow(dddRow); } }
public static void ForceRefresh(GISADataset.RelacaoHierarquicaRowChangeEvent e, MasterPanel mp, frmMain topLevelControl) { try { if (!(e.Action == DataRowAction.Add || (e.Action == DataRowAction.Change) || e.Action == DataRowAction.Delete)) { return; } // verificar se a row foi realmente editada if (e.Action == DataRowAction.Change && !Concorrencia.isModifiedRow(e.Row)) { return; } // descartar modificações intermédias de rows (por exemplo, a atribuição de um ID uma nivelRow quando gravada para a BD) if (e.Row.NivelRowByNivelRelacaoHierarquica == null || e.Row.NivelRowByNivelRelacaoHierarquicaUpper == null) { return; } // garantir que a alteração occoreu entre duas entidades produtoras if (!(e.Row.NivelRowByNivelRelacaoHierarquica.IDTipoNivel == TipoNivel.ESTRUTURAL && (e.Row.NivelRowByNivelRelacaoHierarquicaUpper.IDTipoNivel == TipoNivel.LOGICO || e.Row.NivelRowByNivelRelacaoHierarquicaUpper.IDTipoNivel == TipoNivel.ESTRUTURAL))) { return; } if (!topLevelControl.IsFirstMasterPanelInStack(mp) && topLevelControl.MasterPanelCount == 1) { if (mp is INivelNavigatorProvider) { mp.lblFuncao.Text = "Estrutura orgânica"; var nav = mp as INivelNavigatorProvider; nav.NivelNavigator.PanelToggleState = NivelNavigator.ToggleState.Estrutural; nav.NivelNavigator.CollapseAllNodes(); nav.NivelNavigator.ToggleView(false); } else if (mp is IControloNivelListProvider) { var cnl = mp as IControloNivelListProvider; cnl.ControloNivelList.CollapseAllNodes(); } } } catch (Exception ex) { Debug.Assert(false, ex.ToString()); Trace.WriteLine(ex); throw ex; } }
public static void PopulatePermission(ListViewItem item, int colIndex, DataRow privilegeRow, PermissoesHelper.PermissionType permissaoEfectiva) { string grant = string.Empty; if (permissaoEfectiva == PermissoesHelper.PermissionType.ExplicitGrant || permissaoEfectiva == PermissoesHelper.PermissionType.ImplicitGrant) { grant = "Sim"; } else if (permissaoEfectiva == PermissoesHelper.PermissionType.ExplicitDeny || permissaoEfectiva == PermissoesHelper.PermissionType.ImplicitDeny) { grant = "Não"; } item.SubItems[colIndex].Text = grant; if (permissaoEfectiva == PermissoesHelper.PermissionType.ImplicitGrant || permissaoEfectiva == PermissoesHelper.PermissionType.ImplicitDeny) { if (privilegeRow == null || privilegeRow.RowState == DataRowState.Unchanged || privilegeRow.RowState == DataRowState.Added || privilegeRow.RowState == DataRowState.Detached) { item.SubItems[colIndex].Font = PermissoesHelper.fontItalic; } else { item.SubItems[colIndex].Font = PermissoesHelper.fontBoldItalic; } } else { if (privilegeRow.RowState == DataRowState.Unchanged || !Concorrencia.isModifiedRow(privilegeRow)) { item.SubItems[colIndex].Font = PermissoesHelper.fontRegular; } else { item.SubItems[colIndex].Font = PermissoesHelper.fontBold; } } }