예제 #1
0
        public ActionResult AddOrEdit(int id = 0)
        {
            //Prepara a viewModel que possui funcionarios e departamentos para armazenar os dados
            FuncionarioIndexData viewModel = new FuncionarioIndexData();

            //Se o id = 0, significa que é a criaçao de um novo dado
            if (id == 0)
            {
                //Pega os dados de todos os departamentos na tabela Departamento
                HttpResponseMessage response2 = GlobalVariables.WebApiClient.GetAsync("Departamento").Result;
                //Armazena os dados recebidos na viewModel
                viewModel.Departamentos = response2.Content.ReadAsAsync <IEnumerable <MvcDepartamentoModel> >().Result;
                return(View(viewModel));
            }
            else
            {
                //Se o id != 0, significa que é uma atualização de dados

                //Pega os dados do funcionario na tabela Funcionario pelo id recebido
                HttpResponseMessage response = GlobalVariables.WebApiClient.GetAsync("Funcionario/" + id.ToString()).Result;
                //Pega os dados de todos os departamentos na tabela Departamento
                HttpResponseMessage response2 = GlobalVariables.WebApiClient.GetAsync("Departamento").Result;
                //Armazena os dados recebidos na viewModel
                viewModel.FuncionarioSelecionado = response.Content.ReadAsAsync <mvcFuncionarioModel>().Result;
                viewModel.Departamentos          = response2.Content.ReadAsAsync <IEnumerable <MvcDepartamentoModel> >().Result;
                return(View(viewModel));
            }
        }
예제 #2
0
        // GET: Funcionario
        public ActionResult Index()
        {
            //Prepara a viewModel que possui funcionarios e departamentos para armazenar os dados
            FuncionarioIndexData viewModel = new FuncionarioIndexData();

            //Pega os dados de todos os funcionarios na tabela Funcionario
            HttpResponseMessage response = GlobalVariables.WebApiClient.GetAsync("Funcionario").Result;
            //Pega os dados de todos os Departamentos na tabela Departamento
            HttpResponseMessage response2 = GlobalVariables.WebApiClient.GetAsync("Departamento").Result;

            //Armazena os dados recebidos na viewModel
            viewModel.Funcionarios  = response.Content.ReadAsAsync <IEnumerable <mvcFuncionarioModel> >().Result;
            viewModel.Departamentos = response2.Content.ReadAsAsync <IEnumerable <MvcDepartamentoModel> >().Result;
            //Cria a view enviando os dados da viewModel
            return(View(viewModel));
        }
예제 #3
0
        public ActionResult AddOrEdit(int id = 0)
        {
            FuncionarioIndexData viewModel = new FuncionarioIndexData();

            if (id == 0)
            {
                HttpResponseMessage response2 = GlobalVariables.WebApiClient.GetAsync("Departamento").Result;
                viewModel.Departamentos = response2.Content.ReadAsAsync <IEnumerable <MvcDepartamentoModel> >().Result;
                return(View(viewModel));
            }
            else
            {
                HttpResponseMessage response  = GlobalVariables.WebApiClient.GetAsync("Funcionario/" + id.ToString()).Result;
                HttpResponseMessage response2 = GlobalVariables.WebApiClient.GetAsync("Departamento").Result;
                //viewModel.Funcionarios = response.Content.ReadAsAsync<IEnumerable<mvcFuncionarioModel>>().Result;
                viewModel.FuncionarioSelecionado = response.Content.ReadAsAsync <mvcFuncionarioModel>().Result;
                viewModel.Departamentos          = response2.Content.ReadAsAsync <IEnumerable <MvcDepartamentoModel> >().Result;
                //return View(response.Content.ReadAsAsync<mvcFuncionarioModel>().Result);
                return(View(viewModel));
            }
        }
예제 #4
0
        public ActionResult AddOrEdit(FuncionarioIndexData func)
        {
            //GET ALL FUNCIONARIO_DEPARTAMENTOS e armazena na variavel allFuncDep
            HttpResponseMessage responseAllFuncDep = GlobalVariables.WebApiClient.GetAsync("Funcionario_Departamento").Result;
            IEnumerable <MvcFuncionario_Departamento> allFuncDep = responseAllFuncDep.Content.ReadAsAsync <IEnumerable <MvcFuncionario_Departamento> >().Result;

            //Preapara uma lista para armazenar os funcionario_departamento que possuam id do funcionario
            List <MvcFuncionario_Departamento> depComFunc = new List <MvcFuncionario_Departamento>();
            mvcFuncionarioModel novoFunc = new mvcFuncionarioModel();

            //GET ALL FUNCIONARIOS

            var func_ = func.FuncionarioSelecionado;

            //Variavel para auxilar na criação de novo funcionario
            //(Vai armazenar o funcionario novo que foi criado pra auxiliar na adiciao na tabela funcionario_departamento
            var funcDep_ = new MvcFuncionario_Departamento();

            //Pega os valores selecionados dos departamentos na criação de um novo funcionario
            var mystr = Request.Form["departamentos"];

            //Verifica se algum departamento foi selecionado
            //Se sim => começa a adicao nas tabelas
            //Se não (== null) gera um erro
            if (mystr == null)
            {
                TempData["FailMessage"] = "Não foi possível cadastrar o usuário! É necessário escolher um departamento!";
            }
            else
            {
                //Pega os divide o retorno dos departamentos em uma String[]
                var depValues2 = mystr.Split(',');

                //Armazena o id do funcionario na variavel criada para auxiliar a adicao na tabela Funcionario_departamento
                funcDep_.FuncionarioID = func_.Id;

                //Em todas as instancias de Funcionario_departamento
                //=> procura as que possuem o id do funcionario e armazena eles na variavel depComFunc
                foreach (var dep in allFuncDep)
                {
                    if (dep.FuncionarioID == func_.Id)
                    {
                        depComFunc.Add(dep);
                    }
                }
                //Caso o funcionario ainda não possua id, significa que é a criação de um novo
                if (func_.Id == 0)
                {
                    //Verifica se já existe instancia na tabela com o mesmo login

                    HttpResponseMessage responseAllFunc       = GlobalVariables.WebApiClient.GetAsync("Funcionario").Result;
                    IEnumerable <mvcFuncionarioModel> allFunc = responseAllFunc.Content.ReadAsAsync <IEnumerable <mvcFuncionarioModel> >().Result;

                    bool verificadorCreate = true;

                    foreach (var funcAux in allFunc)
                    {
                        if (funcAux.Login == func_.Login)
                        {
                            verificadorCreate = false;
                        }
                    }
                    //Se VerificadorCreate == false, significa que já existe um funcionario com o login registrado
                    if (verificadorCreate == false)
                    {
                        TempData["FailMessage"] = "Não foi possível cadastrar o usuário! Um funcionário já está usando esse Login!";
                    }
                    else
                    {
                        //Adiciona o funcionario na tabela Funcionario
                        HttpResponseMessage response = GlobalVariables.WebApiClient.PostAsJsonAsync("Funcionario", func_).Result;

                        //GET ALL FUNCIONARIOS (novamente) e armazena na variavel allFunc
                        responseAllFunc = GlobalVariables.WebApiClient.GetAsync("Funcionario").Result;
                        allFunc         = responseAllFunc.Content.ReadAsAsync <IEnumerable <mvcFuncionarioModel> >().Result;

                        //Passa por todos os funcionario e procura os que possuem o mesmo login da variavel que o usuario passou na criação/edicao do funcionario
                        //Ou seja, na label Login de criação
                        //Então armazena ele na variavel novoFunc
                        foreach (var funcAux in allFunc)
                        {
                            if (funcAux.Login == func_.Login)
                            {
                                novoFunc = funcAux;
                            }
                        }
                        //Armazena a variavel do usuario criado na funcDep_.Funcionario (que sera utilizado para a adicao na tabela Funcionario_Departamento
                        funcDep_.FuncionarioID = novoFunc.Id;
                        //Passa por todas as instancias de Departamentos selecionados adicionando na tabela Funcionario_Departamento
                        for (int i = 0; i < depValues2.Length; i++)
                        {
                            funcDep_.DepartamentoID = Convert.ToInt32(depValues2[i]);
                            HttpResponseMessage responseDep = GlobalVariables.WebApiClient.PostAsJsonAsync("Funcionario_Departamento", funcDep_).Result;
                        }
                        TempData["SuccessMessage"] = "Salvo com sucesso!";
                    }
                }
                else
                {
                    //Caso o func_id != 0, significa que é uma atualizacão na tabela

                    //OBS: Como todos os usuarios efetuam todas as açoes, não é necessario fazer uma validação de quem esta atualizando a tabela

                    //Verifica se já existe instancia na tabela com o mesmo login

                    HttpResponseMessage responseAllFunc       = GlobalVariables.WebApiClient.GetAsync("Funcionario").Result;
                    IEnumerable <mvcFuncionarioModel> allFunc = responseAllFunc.Content.ReadAsAsync <IEnumerable <mvcFuncionarioModel> >().Result;

                    bool verificadorCreate = true;

                    foreach (var funcAux in allFunc)
                    {
                        if (funcAux.Login == func_.Login)
                        {
                            verificadorCreate = false;
                        }
                    }

                    //Se VerificadorCreate == false, significa que já existe um funcionario com o login registrado
                    if (verificadorCreate == false)
                    {
                        TempData["FailMessage"] = "Não foi possível atualizar o usuário! Um funcionário já está usando esse Login!";
                    }
                    else
                    {
                        //Atualiza as informacoes do funcionario selecionado na tabela Funcionario
                        HttpResponseMessage response = GlobalVariables.WebApiClient.PutAsJsonAsync("Funcionario/" + func_.Id, func_).Result;
                        //Pega as informacoes na tabela Funcionario_Departamento que possuem
                        //o id do funcionario sendo atualizado e os deleta para criar um novo com os valores atualizados
                        for (int i = 0; i < depComFunc.Count; i++)
                        {
                            HttpResponseMessage responseDelete = GlobalVariables.WebApiClient.DeleteAsync("Funcionario_Departamento/" + depComFunc[i].id.ToString()).Result;
                        }
                        for (int i = 0; i < depValues2.Length; i++)
                        {
                            funcDep_.DepartamentoID = Convert.ToInt32(depValues2[i]);
                            HttpResponseMessage responseDep = GlobalVariables.WebApiClient.PostAsJsonAsync("Funcionario_Departamento", funcDep_).Result;
                        }
                        TempData["SuccessMessage"] = "Atualizado com sucesso!";
                    }
                }
            }
            return(RedirectToAction("Index"));
        }