示例#1
0
        public ActionResult Logar(mvcFuncionarioModel user)
        {
            HttpResponseMessage responseAllFunc       = GlobalVariables.WebApiClient.GetAsync("Funcionario").Result;
            IEnumerable <mvcFuncionarioModel> allFunc = responseAllFunc.Content.ReadAsAsync <IEnumerable <mvcFuncionarioModel> >().Result;
            mvcFuncionarioModel novoFunc = new mvcFuncionarioModel();

            foreach (var allFuncAux in allFunc)
            {
                if (allFuncAux.Login == user.Login && allFuncAux.Senha == user.Senha)
                {
                    novoFunc            = allFuncAux;
                    Session["UserId"]   = novoFunc.Id;
                    Session["UserName"] = novoFunc.Nome;
                }
                else
                {
                }
            }

            if (novoFunc.Id > 0)
            {
                return(RedirectToAction("LoggedIn"));
            }
            else
            {
            }
            return(View());
        }
示例#2
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"));
        }