Esempio n. 1
0
        public IActionResult DeleteSubMenu([FromBody] SubMenuDTO request)
        {
            var response = new OperationResponse <ICollection>();

            try
            {
                var result = _lookupService.DeleteSubMenu(request.Tasks);
                if (result.Any(fn => !string.IsNullOrEmpty(fn.Message)))
                {
                    response.State = ResponseState.ValidationError;
                    response.Data  = result.ToList();
                    return(new JsonResult(response));
                }
                else
                {
                    response.State = ResponseState.Success;
                }
            }
            catch (Exception exception)
            {
                response.State = ResponseState.Error;
                response.Messages.Add(exception.Message);
                _logger.LogError(exception, "Error in DeleteSubMenu ==>" + exception.StackTrace, request);
            }
            return(new JsonResult(response));
        }
Esempio n. 2
0
        public void CarregaMenu(MenuPrincipalDTO pai)
        {
            //Obtém as opções do banco de dados
            SubMenu   menu   = new SubMenu();
            ArrayList opcoes = menu.GetOpcoes(pai);

            if (opcoes.Count < 1)
            {
                AddBackGroudImage();
                return;
            }

            //Tamanho da tela
            int hTela = pSubMenu.Size.Height;
            int wTela = pSubMenu.Size.Width;

            //Quantidade de itens no menu
            int qtd            = opcoes.Count;
            int qtdOpcoesLinha = (wTela / wBtn) - 1;
            int qtdLinhas      = qtd / qtdOpcoesLinha;

            if (qtd % qtdOpcoesLinha != 0)
            {
                qtdLinhas++;
            }

            //Calculo para centralizar os botões
            int iniPosY;
            int iniPosX;

            //Verifica se precisa mais de uma linha
            if (qtd > qtdOpcoesLinha)
            {
                iniPosY = (hTela / 2) - (qtdLinhas * hBtn / 2);
                iniPosX = (wTela / 2) - (qtdOpcoesLinha * wBtn / 2);
            }
            else
            {
                iniPosY = (hTela / 2) - (hBtn / 2);
                iniPosX = (wTela / 2) - (qtd * wBtn / 2);
            }

            //for para as linhas
            for (int i = 0; i < qtdLinhas; i++)
            {
                int posY = iniPosY + (i * hBtn);

                //Calculas quantos item terão nessa linha
                int restantes = qtd - (qtdOpcoesLinha * i);
                if (restantes > qtdOpcoesLinha)
                {
                    restantes = qtdOpcoesLinha;
                }

                //for para as colunas
                for (int j = 0; j < restantes; j++)
                {
                    int opc = j + i * qtdOpcoesLinha;

                    /* Verifica se precisa recalcular as posições
                     * Necessário para quando tiver poucas opções na linha
                     */
                    int posX;
                    if (restantes < qtdOpcoesLinha)
                    {
                        posX  = (wTela / 2) - (restantes * wBtn / 2);
                        posX += j * wBtn;
                    }
                    else
                    {
                        posX = iniPosX + (j * wBtn);
                    }

                    //Pega as informações provinda do banco de dados para mostrar o botão para o usuário
                    SubMenuDTO dto  = (SubMenuDTO)opcoes[opc];
                    string     nome = dto.Opcao;

                    string btnNome = $"{nome}";

                    AddButton(posY, posX, btnNome, dto.Descricao);
                }
            }
        }