Beispiel #1
0
        public EstruturaMapaEsquematico InserirNovoMapa(EstruturaMapaEsquematico item)
        {
            try
            {
                bd.IniciarTransacao();

                this.LocalID.Valor = item.LocalID;
                this.Nome.Valor    = item.Nome;
                this.Inserir(bd);

                var mes = new MapaEsquematicoSetor(this.Control.UsuarioID);
                foreach (var itemSetor in item.MapasSetor)
                {
                    if (itemSetor.InnerAcao == EnumMapaEsquematicoInnerAcao.Remover ||
                        itemSetor.InnerAcao == EnumMapaEsquematicoInnerAcao.Removido || !itemSetor.Fechado)
                    {
                        continue;
                    }
                    mes.Limpar();
                    mes.MapaID.Valor      = this.Control.ID;
                    mes.SetorID.Valor     = itemSetor.SetorID;
                    mes.Coordenadas.Valor = itemSetor.PontosToString();
                    mes.Inserir(bd);

                    itemSetor.InnerAcao = EnumMapaEsquematicoInnerAcao.Manter;
                    itemSetor.MapaID    = this.Control.ID;
                    item.ID             = mes.Control.ID;
                }

                item.ID = this.Control.ID;

                item.InnerAcao = EnumMapaEsquematicoInnerAcao.Manter;
                bd.FinalizarTransacao();

                return(item);
            }
            catch (Exception)
            {
                bd.DesfazerTransacao();
                throw;
            }
            finally
            {
                bd.Fechar();
            }
        }
        /// <summary>
        /// Inseri novo(a) MapaEsquematicoSetor na lista
        /// </summary>
        /// <returns></returns>
        public override bool Inserir()
        {
            try
            {
                bool ok = mapaEsquematicoSetor.Inserir();
                if (ok)
                {
                    lista.Add(mapaEsquematicoSetor.Control.ID);
                    Indice = lista.Count - 1;
                }

                return(ok);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Beispiel #3
0
        public EstruturaMapaEsquematico AlterarMapa(EstruturaMapaEsquematico item)
        {
            try
            {
                bd.IniciarTransacao();

                this.Control.ID    = item.ID;
                this.Nome.Valor    = item.Nome;
                this.LocalID.Valor = item.LocalID;

                MapaEsquematicoSetor mes = new MapaEsquematicoSetor(this.Control.UsuarioID);
                foreach (EstruturaMapaEsquematicoSetor itemSetor in item.MapasSetor)
                {
                    mes.Limpar();
                    mes.MapaID.Valor      = item.ID;
                    mes.SetorID.Valor     = itemSetor.SetorID;
                    mes.Coordenadas.Valor = itemSetor.PontosToString();

                    if (itemSetor.SetorID == 0)
                    {
                        continue;
                    }

                    switch (itemSetor.InnerAcao)
                    {
                    case EnumMapaEsquematicoInnerAcao.Editar:
                        mes.Control.ID = itemSetor.ID;
                        mes.Atualizar(bd);
                        itemSetor.InnerAcao = EnumMapaEsquematicoInnerAcao.Manter;
                        break;

                    case EnumMapaEsquematicoInnerAcao.Novo:
                        mes.Inserir(bd);
                        itemSetor.ID        = mes.Control.ID;
                        itemSetor.InnerAcao = EnumMapaEsquematicoInnerAcao.Manter;
                        break;
                        //case EnumMapaEsquematicoInnerAcao.Remover:
                        //    mes.Excluir(bd, itemSetor.ID);
                        //    itemSetor.InnerAcao = EnumMapaEsquematicoInnerAcao.Removido;
                        //    break;
                        //default:
                        //    //Ignora!
                        //    break;
                    }
                }

                for (int i = 0; i < item.IdsRemover.Count; i++)
                {
                    if (item.IdsRemover[i] > 0)
                    {
                        mes.Excluir(bd, item.IdsRemover[i]);
                    }
                }

                item.IdsRemover.Clear();
                item.MapasSetor.RemoveAll(c => c.SetorID == 0);
                bd.FinalizarTransacao();

                return(item);
            }
            catch (Exception)
            {
                bd.DesfazerTransacao();
                throw;
            }
            finally
            {
                bd.Fechar();
            }
        }