Esempio n. 1
0
        /// <summary>
        /// Verifica a formação academica, se dados novos foram inseridos, alterados e excluidos e faz as correções necessárias
        /// </summary>
        private void VerificarFormacaoAcademica()
        {
            bool        achou   = false;
            FormacaoDAO formDao = new FormacaoDAO();

            //Remove dados não válidos
            for (int n = 0; n < CurriculoNovo.Formacao.Count; n++)
            {
                if (CurriculoNovo.Formacao[n].Descricao == null && CurriculoNovo.Formacao[n].Instituicao == null)
                {
                    CurriculoNovo.Formacao.RemoveAt(n);
                }
            }
            //Se o curriculo estava sem formação academica todos os dados devem ser inseridos
            if (CurriculoVelho.Formacao.Count == 0 && CurriculoNovo.Formacao.Count > 0)
            {
                foreach (FormacaoViewModel form in CurriculoNovo.Formacao)
                {
                    form.IdCurriculo = CurriculoVelho.Id;
                    formDao.Inserir(form);
                }


                return;
            }
            //Verifica uma exclusão de formação ou uma alteração
            foreach (FormacaoViewModel form in CurriculoVelho.Formacao)
            {
                foreach (FormacaoViewModel form2 in CurriculoNovo.Formacao)
                {
                    if (form2.Id == form.Id)
                    {
                        if (form2.IdCurriculo == -1)
                        {
                            formDao.Excluir(form2.Id, form.IdCurriculo);
                        }
                        else if (FormacaoChanged(form, form2))
                        {
                            formDao.Alterar(form2);
                        }
                        break;
                    }
                }
            }
            achou = false;
            //verifica inserção de dados
            foreach (FormacaoViewModel form2 in CurriculoNovo.Formacao)
            {
                if (form2.Id == 0)
                {
                    form2.IdCurriculo = CurriculoVelho.Id;
                    formDao.Inserir(form2);
                }
            }
        }
        public IActionResult Salvar(CurriculoViewModel cur)
        {
            int id;

            try
            {
                ViewBag.Idioma = getSelectedLanguage();
                CurriculoDAO   dao  = new CurriculoDAO();
                FormacaoDAO    fdao = new FormacaoDAO();
                IdiomaDAO      Idao = new IdiomaDAO();
                HabilidadesDAO Hdao = new HabilidadesDAO();
                //cur.Nascimento = Convert.ToDateTime("10/07/1997");
                cur.ImagemEmByte = ConvertImageToByte(cur.Imagem);
                if (dao.Consulta(cur.Id) == null)
                {
                    id = dao.ProximoId();
                    dao.Inserir(cur);
                    if (cur.ImagemEmByte != null)
                    {
                        dao.AlterarImagem(cur.ImagemEmByte, id);
                    }
                    //garante que vai estar no ID correto
                    id = dao.ProximoId() - 1;
                    foreach (FormacaoViewModel f in cur.Formacao)
                    {
                        if (f.Descricao != null && f.Instituicao != null)
                        {
                            f.IdCurriculo = id;
                            fdao.Inserir(f);
                        }
                    }

                    foreach (IdiomaViewModel d in cur.Idiomas)
                    {
                        if (d.Idioma != null)
                        {
                            d.IdCurriculo = id;
                            Idao.Inserir(d);
                        }
                    }

                    foreach (HabilidadesViewModel h in cur.Habilidades)
                    {
                        if (h.Descricao != null)
                        {
                            h.IdCurriculo = id;
                            Hdao.Inserir(h);
                        }
                    }
                }
                else
                {
                    CompareCurriculos Compare = new CompareCurriculos(dao.Consulta(cur.Id), cur);
                    Compare.CompararCurriculo();
                    if (cur.StatusImg == "Editar")
                    {
                        dao.AlterarImagem(cur.ImagemEmByte, cur.Id);
                    }
                }

                return(RedirectToAction("index"));
            }
            catch (Exception erro)
            {
                return(View("Error", new ErrorViewModel(erro.ToString())));
            }
        }