예제 #1
0
        public async Task <ActionResult> Post([FromBody] VagaDTO vaga)
        {
            try
            {
                var vagaModel = new VagaModel()
                {
                    IdIlha = vaga.IdIlha
                };

                await _repository.InserirVaga(vagaModel);

                return(CreatedAtAction(nameof(CarregarVaga), new { Id = vagaModel.Id },
                                       new VagaDTO()
                {
                    Id = vagaModel.Id,
                    IdIlha = vagaModel.IdIlha,
                    CorVeiculo = "",
                    NomeVeiculo = "",
                    PlacaVeiculo = "",
                    Ocupada = false,
                    NomeCliente = "",
                    CpfCliente = ""
                }
                                       ));
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }
        public ActionResult Cadastro(VagaModel vModel)
        {
            if (ModelState.IsValid)
            {
                VagaDal vDal = new VagaDal();
                var     auth = JsonConvert.DeserializeObject <UsuarioAutenticado>(HttpContext.User.Identity.Name);
                try
                {
                    Vaga vaga = new Vaga();

                    vaga.Descricao       = vModel.Descricao;
                    vaga.Situacao        = vModel.Situacao;
                    vaga.Salario         = vModel.Salario;
                    vaga.TipoContratacao = vModel.TipoContratacao;
                    vaga.DataCadastro    = DateTime.Now;
                    vaga.DataAtualizacao = DateTime.Now;
                    vaga.CadastradoPor   = auth.Nome;
                    vaga.AtualizadoPor   = auth.Nome;

                    vDal.Insert(vaga);
                    TempData["Sucesso"] = "Vaga cadastrada com sucesso";
                    ModelState.Clear();
                }
                catch (Exception e)
                {
                    TempData["Falha"] = e.Message;
                }

                return(RedirectToAction("Consulta", "Candidato"));
            }
            return(View());
        }
        public object PreencherVagaModel(List <object> itens)
        {
            VagaModel model = new VagaModel();

            model.ListaVaga = new List <Vaga>();

            for (int i = 0; i < itens.Count; i++)
            {
                List <string> item    = itens[i] as List <string>;
                Vaga          objVaga = new Vaga();
                objVaga.VagaID      = item[0];
                objVaga.VagaNome    = item[1];
                objVaga.Word        = item[2];
                objVaga.Excel       = item[3];
                objVaga.PowerPoint  = item[4];
                objVaga.Project     = item[5];
                objVaga.CRM         = item[6];
                objVaga.Photoshop   = item[7];
                objVaga.Corel       = item[8];
                objVaga.Illustrator = item[9];
                objVaga.Fotografia  = item[10];
                objVaga.InDesign    = item[11];

                model.ListaVaga.Add(objVaga);
            }

            return(model);
        }
        public ActionResult Vagas()
        {
            VagaModel model = LerPlanilha(NOME_ARQUIVO_EXCEL_VAGAS) as VagaModel;

            TempData["VagaModel"] = model;

            return(View(model));
        }
예제 #5
0
 public Vaga(int id, bool ocupada, VagaModel model)
 {
     Id           = id;
     Ocupada      = ocupada;
     Andar        = model.Andar;
     Corredor     = model.Corredor;
     Numero       = model.Numero;
     PorteVeiculo = model.PorteVeiculo;
 }
예제 #6
0
        public IHttpActionResult GetVagaModel(long id)
        {
            VagaModel vagaModel = db.VagaModels.Find(id);

            if (vagaModel == null)
            {
                return(NotFound());
            }

            return(Ok(vagaModel));
        }
예제 #7
0
        public IActionResult Create([Bind(include: "Titulo, Requisitos, Local, Salario")] VagaModel vagaModel)
        {
            if (ModelState.IsValid)
            {
                _context.Vagas.Add(vagaModel);
                _context.SaveChanges();

                TempData["VagaCreate"] = "Vaga Cadastrada com sucesso!";
            }

            return(RedirectToAction("Index"));
        }
예제 #8
0
 public IActionResult QuantVagasDisponiveis()
 {
     try
     {
         AutenticacaoAPI.Autenticar();
         int QuantVagasDisp = new VagaModel().ListaVagasDisponíveis().Count;
         return(new OkObjectResult(QuantVagasDisp));
     }
     catch (UnauthorizedAccessException erro)
     {
         return(StatusCode((int)HttpStatusCode.Unauthorized, erro.Message));
     }
 }
예제 #9
0
        public IHttpActionResult DeleteVagaModel(long id)
        {
            VagaModel vagaModel = db.VagaModels.Find(id);

            if (vagaModel == null)
            {
                return(NotFound());
            }

            db.VagaModels.Remove(vagaModel);
            db.SaveChanges();

            return(Ok(vagaModel));
        }
예제 #10
0
        private Vaga GetVagaFromVagaModel(VagaModel vagaModel)
        {
            if (vagaModel == null)
            {
                return(null);
            }

            Vaga vaga = new Vaga();

            vagaModel.Titulo            = HtmlRemoval.StripTagsRegex(vagaModel.Titulo);
            vagaModel.DescricaoMarkdown = HtmlRemoval.StripTagsRegex(vagaModel.DescricaoMarkdown);
            vagaModel.Descricao         = HtmlRemoval.StripTagsRegex(vagaModel.Descricao);

            vagaModel.ThumbnailUrl     = HtmlRemoval.StripTagsRegex(vagaModel.ThumbnailUrl);
            vagaModel.PostItemImageUrl = HtmlRemoval.StripTagsRegex(vagaModel.PostItemImageUrl);
            vagaModel.HeaderImageUrl   = HtmlRemoval.StripTagsRegex(vagaModel.HeaderImageUrl);

            Uri uriResult;

            if (!(Uri.TryCreate(vagaModel.ThumbnailUrl, UriKind.Absolute, out uriResult) && uriResult.Scheme == Uri.UriSchemeHttp))
            {
                vagaModel.ThumbnailUrl = null;
            }

            if (!(Uri.TryCreate(vagaModel.PostItemImageUrl, UriKind.Absolute, out uriResult) && uriResult.Scheme == Uri.UriSchemeHttp))
            {
                vagaModel.PostItemImageUrl = null;
            }

            if (!(Uri.TryCreate(vagaModel.HeaderImageUrl, UriKind.Absolute, out uriResult) && uriResult.Scheme == Uri.UriSchemeHttp))
            {
                vagaModel.HeaderImageUrl = null;
            }

            vaga.Titulo            = vagaModel.Titulo.Substring(0, vagaModel.Titulo.Length > 29 ? 29 : vagaModel.Titulo.Length);
            vaga.Descricao         = vagaModel.Descricao.Substring(0, vagaModel.Descricao.Length > 79 ? 79 : vagaModel.Descricao.Length);
            vaga.DescricaoMarkdown = vagaModel.DescricaoMarkdown.Substring(0, vagaModel.DescricaoMarkdown.Length > 3999 ? 3999 : vagaModel.DescricaoMarkdown.Length);


            vaga.ThumbnailUrl     = vagaModel.ThumbnailUrl;
            vaga.HeaderImageUrl   = vagaModel.HeaderImageUrl;
            vaga.PostItemImageUrl = vagaModel.PostItemImageUrl;

            vaga.DataCriacao   = vagaModel.DataCriacao;
            vaga.DataExpiracao = vagaModel.DataExpiracao;

            vaga.TipoVaga = _uow.TiposVaga.GetByID(vagaModel.TipoVagaID);

            return(vaga);
        }
예제 #11
0
        public bool ValidaVaga(VagaModel model)
        {
            if (Vagas.Count <= 0)
            {
                return(true);
            }

            if (Vagas.Any(v => v.Andar == model.Andar && v.Corredor == model.Corredor && v.Numero == model.Numero))
            {
                return(false);
            }

            return(true);
        }
예제 #12
0
        public void CreateInitial()
        {
            var vaga1Model = new VagaModel(1, 1, 1, "Pequeno");
            var vaga2Model = new VagaModel(1, 1, 2, "Pequeno");
            var vaga3Model = new VagaModel(1, 1, 3, "Pequeno");
            var vaga4Model = new VagaModel(1, 1, 4, "Pequeno");
            var vaga5Model = new VagaModel(1, 1, 5, "Pequeno");

            Vagas.Add(new Vaga(CriaId(), false, vaga1Model));
            Vagas.Add(new Vaga(CriaId(), false, vaga2Model));
            Vagas.Add(new Vaga(CriaId(), false, vaga3Model));
            Vagas.Add(new Vaga(CriaId(), false, vaga4Model));
            Vagas.Add(new Vaga(CriaId(), false, vaga5Model));
        }
예제 #13
0
        public IHttpActionResult GetVagaByID(int id)
        {
            VagaModel vaga = _vagasService.GetVagaModelByID(id, GetUsuarioID());

            if (vaga.Bloqueada || vaga.CriadorBloqueado)
            {
                return(BadRequest());
            }

            if (vaga == null)
            {
                return(BadRequest());
            }
            return(Ok(vaga));
        }
예제 #14
0
        public IHttpActionResult GetVagaParaEditarByID(int id)
        {
            VagaModel vaga = _vagasService.GetVagaModelByID(id, GetUsuarioID());

            if (vaga == null)
            {
                return(BadRequest("NotFound"));
            }

            if (vaga.CriadorID != GetUsuarioID() && !UsuarioEhAdmin())
            {
                return(BadRequest("401"));
            }

            return(Ok(vaga));
        }
예제 #15
0
        public IActionResult Adicionar(VagaModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            if (!_vagaRepository.ValidaVaga(model))
            {
                ModelState.AddModelError(string.Empty, "Vaga já cadastrada!");
                return(View(model));
                //return BadRequest(new { status = "failed", message = "Vaga já cadastrada!" });
            }

            _vagaRepository.AddVaga(model);
            return(RedirectToAction(nameof(Index)));
        }
예제 #16
0
        public IHttpActionResult PostVagaModel(long idPonto, VagaModel vagaModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var ponto = db.PontoModels.Find(idPonto);

            if (ponto.VagasConectadas == null)
            {
                ponto.VagasConectadas = new List <VagaModel>();
            }
            ponto.VagasConectadas.Add(vagaModel);
            db.SaveChanges();

            return(CreatedAtRoute("DefaultApi", new { id = vagaModel.Id }, vagaModel));
        }
예제 #17
0
        public IHttpActionResult SalvarAnuncio(ReCaptchaParam <VagaModel> recaptchaParam)
        {
            VagaModel vaga = recaptchaParam.param;

            if (!_reCaptchaService.ResponseIsCorrect(recaptchaParam.reCaptchaResponse))
            {
                return(BadRequest(((int)ReCaptchaService.RESPONSE.INVALID).ToString()));
            }

            int ID = _vagasService.SalvarAnuncio(vaga, GetUsuarioID(), UsuarioEhAdmin());

            if (ID > 0)
            {
                return(Ok(ID));
            }

            return(BadRequest((-ID).ToString()));
        }
예제 #18
0
        // POST - Inserir uma nova vaga
        public async Task InserirVaga(VagaModel vaga)
        {
            using (var transaction = _context.Database.BeginTransaction())
            {
                try
                {
                    _context.Vagas.Add(vaga);
                    await _context.SaveChangesAsync();



                    transaction.Commit();
                }
                catch (Exception)
                {
                    transaction.Rollback();
                    throw;
                }
            }
        }
예제 #19
0
        public VagaModel GetVagaModelByID(int id, int usuarioID = 0)
        {
            Vaga vaga = _uow.Vagas.GetByID(id);

            if (vaga == null)
            {
                return(null);
            }

            VagaModel vagaModel = new VagaModel(vaga);

            Avaliacao avaliacaoUsuario = vaga.avaliacoes.FirstOrDefault(a => a.usuario.ID == usuarioID);

            if (avaliacaoUsuario != null)
            {
                vagaModel.Like = avaliacaoUsuario.Gostou;
            }
            else
            {
                vagaModel.Like = null;
            }

            return(vagaModel);
        }
예제 #20
0
        // GET: Listar usuários cadastrados no sistema
        public ActionResult Consulta()
        {
            // Verifica se usuário está autenticado e possui perfil de administrador
            if (!HttpContext.User.Identity.IsAuthenticated && HttpContext.User.IsInRole("Admin"))
            {
                TempData["Falha"] = "Necessário estar autenticado com perfil de Administrador";
                return(RedirectToAction("Login", "Usuario"));
            }

            var     listaVagaModel = new List <VagaModel>();
            Conexao con            = new Conexao();
            VagaDal vDal           = new VagaDal();

            try
            {
                List <Vaga> listaVagas = vDal.ListarVagas();
                foreach (var vaga in listaVagas)
                {
                    var vModel = new VagaModel();

                    vModel.Id              = vaga.Id;
                    vModel.Descricao       = vaga.Descricao;
                    vModel.Situacao        = vaga.Situacao;
                    vModel.Salario         = vaga.Salario;
                    vModel.TipoContratacao = vaga.TipoContratacao;
                    vModel.DataCadastro    = vaga.DataCadastro;

                    listaVagaModel.Add(vModel);
                }
            }
            catch (Exception e)
            {
                TempData["Falha"] = e.Message;
            }
            return(View(listaVagaModel));
        }
예제 #21
0
        public int SalvarAnuncio(VagaModel vagaModel, int usuarioID, bool EhAdmin)
        {
            Usuario usuario = _uow.Usuarios.GetByID(usuarioID);

            if (!EhAdmin && usuario.vagas != null && usuario.vagas.Count(v => v.DataExpiracao > DateTime.Now) > 5)
            {
                return(-406);
            }

            if (vagaModel == null || usuario == null)
            {
                return(-1);
            }

            if (vagaModel.ID <= 0)
            {
                Vaga vaga = GetVagaFromVagaModel(vagaModel);

                vaga.DataCriacao   = DateTime.Now;
                vaga.DataExpiracao = vaga.DataCriacao.AddDays(vagaModel.TempoExpiracao);
                vaga.Criador       = usuario;

                if (!EhAdmin && usuario.vagas != null && usuario.vagas.Count > 0 &&
                    usuario.vagas.Any(v =>
                                      v.Titulo == vaga.Titulo ||
                                      v.DescricaoMarkdown == vaga.DescricaoMarkdown ||
                                      v.Descricao == vaga.Descricao
                                      ))
                {
                    return(-2);
                }

                vaga = _uow.Vagas.Insert(vaga);
                _uow.Save();

                return(vaga.ID);
            }
            else
            {
                Vaga vagaAntiga = _uow.Vagas.GetByID(vagaModel.ID);

                if (vagaAntiga.Criador.ID != usuario.ID && !EhAdmin)
                {
                    return(-401);
                }

                Vaga vaga = GetVagaFromVagaModel(vagaModel);

                vagaAntiga.Titulo            = vaga.Titulo;
                vagaAntiga.Descricao         = vaga.Descricao;
                vagaAntiga.DescricaoMarkdown = vaga.DescricaoMarkdown;

                vagaAntiga.ThumbnailUrl     = vaga.ThumbnailUrl;
                vagaAntiga.HeaderImageUrl   = vaga.HeaderImageUrl;
                vagaAntiga.PostItemImageUrl = vaga.PostItemImageUrl;

                vagaAntiga.DataCriacao   = vaga.DataCriacao;
                vagaAntiga.DataExpiracao = DateTime.Now.AddDays(vagaModel.TempoExpiracao);

                vagaAntiga.TipoVaga = vaga.TipoVaga;

                _uow.Vagas.Update(vagaAntiga);
                _uow.Save();

                return(vagaAntiga.ID);
            }
        }
        public ActionResult SelecionarVaga(string ID)
        {
            VagaModel model = TempData["VagaModel"] as VagaModel;

            var vagaSelecionada             = model.ListaVaga.First(m => m.VagaID.Equals(ID)) as Vaga;
            var conhecimentosVaga           = VerificarConhecimentosVaga(vagaSelecionada);
            int quantidadeConhecimentosVaga = conhecimentosVaga.Count();
            int pontuacaoVaga = quantidadeConhecimentosVaga * 3;

            List <VoluntarioModel> voluntarios = LerPlanilha(NOME_ARQUIVO_EXCEL_VOLUNTARIOS) as List <VoluntarioModel>;

            int quantidadeVoluntarios = voluntarios.Count();

            for (int i = 0; i < quantidadeVoluntarios; i++)
            {
                int pontuacaoCandidato = 0;
                for (int j = 0; j < quantidadeConhecimentosVaga; j++)
                {
                    switch (conhecimentosVaga[j])
                    {
                    case CONHECIMENTO_1:
                        pontuacaoCandidato += ConverterParaPontuacao(voluntarios[i].Word);
                        break;

                    case CONHECIMENTO_2:
                        pontuacaoCandidato += ConverterParaPontuacao(voluntarios[i].Excel);
                        break;

                    case CONHECIMENTO_3:
                        pontuacaoCandidato += ConverterParaPontuacao(voluntarios[i].PowerPoint);
                        break;

                    case CONHECIMENTO_4:
                        pontuacaoCandidato += ConverterParaPontuacao(voluntarios[i].Project);
                        break;

                    case CONHECIMENTO_5:
                        pontuacaoCandidato += ConverterParaPontuacao(voluntarios[i].CRM);
                        break;

                    case CONHECIMENTO_6:
                        pontuacaoCandidato += ConverterParaPontuacao(voluntarios[i].Photoshop);
                        break;

                    case CONHECIMENTO_7:
                        pontuacaoCandidato += ConverterParaPontuacao(voluntarios[i].Corel);
                        break;

                    case CONHECIMENTO_8:
                        pontuacaoCandidato += ConverterParaPontuacao(voluntarios[i].Illustrator);
                        break;

                    case CONHECIMENTO_9:
                        pontuacaoCandidato += ConverterParaPontuacao(voluntarios[i].Fotografia);
                        break;

                    case CONHECIMENTO_10:
                    default:
                        pontuacaoCandidato += ConverterParaPontuacao(voluntarios[i].InDesign);
                        break;
                    }
                }

                //Cálculo de compatibilidade voluntário x vaga
                voluntarios[i].Compatibilidade = string.Concat(pontuacaoCandidato * 100 / pontuacaoVaga, "%");

                //Formatações
                if (voluntarios[i].Other != string.Empty)
                {
                    voluntarios[i].AreaEmQueDesejaAtuar = voluntarios[i].Other;
                }

                voluntarios[i].PossuiExperienciaEmProjetosSociais =
                    voluntarios[i].PossuiExperienciaEmProjetosSociais.Equals("1") ? "Sim" : "Não";
            }

            //Ordena por compatiblidade
            var voluntariosOrdenados = voluntarios.OrderByDescending(x => x.Compatibilidade).ToList();

            TempData["voluntariosOrdenados"] = voluntariosOrdenados;

            return(RedirectToAction("Voluntarios"));
        }
예제 #23
0
        public void AddVaga(VagaModel model)
        {
            var novaVaga = new Vaga(CriaId(), false, model);

            Vagas.Add(novaVaga);
        }