예제 #1
0
 public override void Deactivate()
 {
     DeactivatePanels();
     isLoaded           = false;
     CurrentDeposito    = null;
     existsModifiedData = false;
 }
예제 #2
0
 public override void Deactivate()
 {
     GUIHelper.GUIHelper.clearField(lstVwUnidadesFisicasAssoc);
     GUIHelper.GUIHelper.clearField(txtDesignacao);
     GUIHelper.GUIHelper.clearField(txtMetragem);
     CurrentDeposito = null;
 }
        private void LoadOperationsAndPermissions(GISADataset.DepositoRow depRow, ListViewItem item)
        {
            Debug.Assert(CurrentTrustee != null);

            var operations = GisaDataSetHelper.GetInstance().DepositoTipoOperation.Cast <GISADataset.DepositoTipoOperationRow>().ToList();

            operations.ForEach(opRow =>
            {
                item.SubItems.Add(string.Empty).Tag = opRow;
                int colIndex          = GetColumnIndex(opRow.TipoOperationRow.Name);
                var permissaoEfectiva = PermissoesHelper.CalculateEffectivePermissions(CurrentTrustee, opRow.TipoOperationRow, depRow);
                var tdpRow            = GisaDataSetHelper.GetInstance().TrusteeDepositoPrivilege.Cast <GISADataset.TrusteeDepositoPrivilegeRow>()
                                        .SingleOrDefault(r => r.IDDeposito == depRow.ID && r.IDTipoOperation == opRow.IDTipoOperation && r.IDTrustee == CurrentTrustee.ID);

                //PermissoesHelper.PopulatePermission(item, colIndex, tdpRow, permissaoEfectiva);
                if (permissaoEfectiva == PermissoesHelper.PermissionType.ExplicitGrant)
                {
                    item.SubItems[colIndex].Text = "Sim";
                }
                else
                {
                    item.SubItems[colIndex].Text = "Não";
                }

                if (GisaDataSetHelper.GetInstance().TrusteeDepositoPrivilege.Select(string.Format("IDTrustee={0} AND IDDeposito={1} AND IDTipoOperation={2}", CurrentTrustee.ID, depRow.ID, opRow.IDTipoOperation)).Length == 0)
                {
                    item.SubItems[colIndex].Font = PermissoesHelper.fontItalic;
                }
            });
        }
예제 #4
0
 public override void Deactivate()
 {
     GUIHelper.GUIHelper.clearField(lstVwAutosEliminacao);
     GUIHelper.GUIHelper.clearField(lstVwUnidadesFisicas);
     GUIHelper.GUIHelper.clearField(txt_NotasEliminacao);
     CurrentDeposito       = null;
     CurrentAutoEliminacao = null;
 }
예제 #5
0
        public override void LoadData()
        {
            try
            {
                ((frmMain)TopLevelControl).EnterWaitMode();
                GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection());
                try
                {
                    GisaDataSetHelper.ManageDatasetConstraints(false);

                    if (!isLoaded)
                    {
                        if (CurrentContext.Deposito == null)
                        {
                            return;
                        }

                        // Recarregar a uf actual e guardar um contexto localmente
                        DepositoRule.Current.LoadDepositoData(GisaDataSetHelper.GetInstance(), CurrentContext.Deposito.ID, ho.Connection);
                        CurrentDeposito = GisaDataSetHelper.GetInstance().Deposito.Cast <GISADataset.DepositoRow>().SingleOrDefault(d => d.ID == CurrentContext.Deposito.ID);

                        if (CurrentDeposito == null || CurrentDeposito.RowState == DataRowState.Detached ||
                            CurrentContext.Deposito == null || CurrentContext.Deposito.RowState == DataRowState.Detached)
                        {
                            return;
                        }

                        isLoaded = true;
                    }
                    GisaDataSetHelper.ManageDatasetConstraints(false);
                    GISAPanel selectedPanel = (GISAPanel)this.DropDownTreeView1.SelectedNode.Tag;
                    if (!selectedPanel.IsLoaded)
                    {
                        long startTicks = 0;
                        startTicks = DateTime.Now.Ticks;
                        selectedPanel.LoadData(CurrentDeposito, ho.Connection);
                        Debug.WriteLine("Time dispend loading " + selectedPanel.ToString() + ": " + new TimeSpan(DateTime.Now.Ticks - startTicks).ToString());
                    }
                    GisaDataSetHelper.ManageDatasetConstraints(true);
                }
                catch (System.Data.ConstraintException Ex)
                {
                    Trace.WriteLine(Ex);
                    GisaDataSetHelper.FixDataSet(GisaDataSetHelper.GetInstance(), ho.Connection);
                }
                finally
                {
                    ho.Dispose();
                }
            }
            finally
            {
                ((frmMain)TopLevelControl).LeaveWaitMode();
            }
        }
예제 #6
0
        public override void LoadData()
        {
            try
            {
                ((frmMain)TopLevelControl).EnterWaitMode();
                GisaDataSetHelper.HoldOpen ho = new GisaDataSetHelper.HoldOpen(GisaDataSetHelper.GetConnection());
                try
                {
                    GisaDataSetHelper.ManageDatasetConstraints(false);

                    if (!isLoaded)
                    {
                        if (CurrentContext.Deposito == null) return;

                        // Recarregar a uf actual e guardar um contexto localmente
                        DepositoRule.Current.LoadDepositoData(GisaDataSetHelper.GetInstance(), CurrentContext.Deposito.ID, ho.Connection);
                        CurrentDeposito = GisaDataSetHelper.GetInstance().Deposito.Cast<GISADataset.DepositoRow>().SingleOrDefault(d => d.ID == CurrentContext.Deposito.ID);

                        if (CurrentDeposito == null || CurrentDeposito.RowState == DataRowState.Detached || 
                            CurrentContext.Deposito == null || CurrentContext.Deposito.RowState == DataRowState.Detached) return;
                        
                        isLoaded = true;
                    }
                    GisaDataSetHelper.ManageDatasetConstraints(false);
                    GISAPanel selectedPanel = (GISAPanel)this.DropDownTreeView1.SelectedNode.Tag;
                    if (!selectedPanel.IsLoaded)
                    {
                        long startTicks = 0;
                        startTicks = DateTime.Now.Ticks;
                        selectedPanel.LoadData(CurrentDeposito, ho.Connection);
                        Debug.WriteLine("Time dispend loading " + selectedPanel.ToString() + ": " + new TimeSpan(DateTime.Now.Ticks - startTicks).ToString());
                    }
                    GisaDataSetHelper.ManageDatasetConstraints(true);
                }
                catch (System.Data.ConstraintException Ex)
                {
                    Trace.WriteLine(Ex);
                    GisaDataSetHelper.FixDataSet(GisaDataSetHelper.GetInstance(), ho.Connection);
                }
                finally
                {
                    ho.Dispose();
                }
            }
            finally
            {
                ((frmMain)TopLevelControl).LeaveWaitMode();
            }
        }
예제 #7
0
        public override void LoadData(DataRow CurrentDataRow, IDbConnection conn)
        {
            IsLoaded        = false;
            CurrentDeposito = (GISADataset.DepositoRow)CurrentDataRow;

            try
            {
                ufsAssociadas = DepositoRule.Current.LoadDepIdentificacaoData(GisaDataSetHelper.GetInstance(), CurrentDeposito.ID, conn);
            }
            catch (Exception ex)
            {
                Trace.WriteLine(ex);
                throw ex;
            }

            IsLoaded = true;
        }
예제 #8
0
        public override void LoadData(DataRow CurrentDataRow, IDbConnection conn)
        {
            IsLoaded = false;
            CurrentDeposito = (GISADataset.DepositoRow)CurrentDataRow;

            try
            {
                DepositoRule.Current.LoadAutosEliminacao(GisaDataSetHelper.GetInstance(), conn);
            }
            catch (Exception ex)
            {
                Trace.WriteLine(ex);
                throw ex;
            }

            IsLoaded = true;
        }
예제 #9
0
        public override void LoadData(DataRow CurrentDataRow, IDbConnection conn)
        {
            IsLoaded        = false;
            CurrentDeposito = (GISADataset.DepositoRow)CurrentDataRow;

            try
            {
                DepositoRule.Current.LoadAutosEliminacao(GisaDataSetHelper.GetInstance(), conn);
            }
            catch (Exception ex)
            {
                Trace.WriteLine(ex);
                throw ex;
            }

            IsLoaded = true;
        }
예제 #10
0
        public override void LoadData(DataRow CurrentDataRow, IDbConnection conn)
        {
            IsLoaded = false;
            CurrentDeposito = (GISADataset.DepositoRow)CurrentDataRow;

            try
            {
                ufsAssociadas = DepositoRule.Current.LoadDepIdentificacaoData(GisaDataSetHelper.GetInstance(), CurrentDeposito.ID, conn);
            }
            catch (Exception ex)
            {
                Trace.WriteLine(ex);
                throw ex;
            }

            IsLoaded = true;
        }
예제 #11
0
 public override void Deactivate()
 {
     GUIHelper.GUIHelper.clearField(lstVwAutosEliminacao);
     GUIHelper.GUIHelper.clearField(lstVwUnidadesFisicas);
     GUIHelper.GUIHelper.clearField(txt_NotasEliminacao);
     CurrentDeposito = null;
     CurrentAutoEliminacao = null;
 }
예제 #12
0
 public override void Deactivate()
 {
     DeactivatePanels();
     isLoaded = false;
     CurrentDeposito = null;
     existsModifiedData = false;
 }
예제 #13
0
 public override void Deactivate()
 {
     GUIHelper.GUIHelper.clearField(lstVwUnidadesFisicasAssoc);
     GUIHelper.GUIHelper.clearField(txtDesignacao);
     GUIHelper.GUIHelper.clearField(txtMetragem);
     CurrentDeposito = null;
 }
예제 #14
0
        public static PermissionType CalculateEffectivePermissions(GISADataset.TrusteeRow tRow, GISADataset.TipoOperationRow opRow, GISADataset.DepositoRow depRow)
        {
            var tdpRow = GisaDataSetHelper.GetInstance().TrusteeDepositoPrivilege.Cast <GISADataset.TrusteeDepositoPrivilegeRow>()
                         .SingleOrDefault(r => r.RowState != DataRowState.Deleted && r.IDTrustee == tRow.ID && r.IDTipoOperation == opRow.ID && r.IDDeposito == depRow.ID);

            if (tdpRow != null)
            {
                return(tdpRow.IsGrant ? PermissionType.ExplicitGrant : PermissionType.ExplicitDeny);
            }

            if (tRow.CatCode.Equals("USR"))
            {
                if (tRow.GetTrusteeUserRows().Length > 0)
                {
                    var ugRows = tRow.GetTrusteeUserRows()[0].GetUserGroupsRows();
                    return(CalculateGroupPermissionsDepositos(ugRows, opRow, depRow));
                }
            }

            return(PermissionType.ImplicitDeny);
        }
예제 #15
0
        private static PermissionType CalculateGroupPermissionsDepositos(GISADataset.UserGroupsRow[] ugRows, GISADataset.TipoOperationRow opRow, GISADataset.DepositoRow depRow)
        {
            PermissionType GroupPermission = PermissionType.ImplicitDeny;

            if (ugRows == null)
            {
                return(GroupPermission);
            }

            ugRows.ToList().ForEach(ugRow =>
            {
                var pgRows = GisaDataSetHelper.GetInstance().TrusteeDepositoPrivilege.Cast <GISADataset.TrusteeDepositoPrivilegeRow>()
                             .Where(r => r.RowState != DataRowState.Deleted && r.IDDeposito == depRow.ID && r.IDTipoOperation == opRow.ID && r.IDTrustee == ugRow.TrusteeGroupRow.TrusteeRow.ID).Cast <DataRow>().ToArray();

                GroupPermission = CalculateGroupPermissions(GroupPermission, pgRows);
            });

            return(GroupPermission);
        }