Example #1
0
        public ObjectReturn <Curriculo> Salvar(Curriculo cur, string path)
        {
            var ret = new ObjectReturn <Curriculo> {
                Success = true
            };

            try
            {
                using (var context = new perfilCurricularContext())
                {
                    curriculo curriculoDB = null;
                    curriculoDB = context.curriculo.FirstOrDefault(where => where.id == cur.id);

                    curriculoDB.nomeCompleto    = cur.nomeCompleto;
                    curriculoDB.email           = cur.email;
                    curriculoDB.profissao       = cur.profissao;
                    curriculoDB.perfilCarreira  = cur.perfilCarreira;
                    curriculoDB.linkedinDisplay = cur.linkedinDisplay;
                    curriculoDB.linkedin        = cur.linkedin;
                    curriculoDB.introProjeto    = cur.introProjeto;
                    if (!String.IsNullOrEmpty(cur.nomeFoto))
                    {
                        curriculoDB.foto = cur.nomeFoto;
                    }

                    if (cur.interesse != null && cur.interesse.Count > 0)
                    {
                        var insercao  = cur.interesse.Where(where => where.id == 0);
                        var alteracao = cur.interesse.Where(where => where.id > 0);
                        var ids       = alteracao.Select(sel => sel.id).ToList();

                        var itemsInteresseDB = curriculoDB.interesse.Where(where => ids.Contains(where.id) && where.Curriculo == cur.id);
                        foreach (var item in alteracao)
                        {
                            var interesseDB = itemsInteresseDB.FirstOrDefault(where => where.id == item.id);
                            interesseDB.descricao = item.descricao;
                        }

                        foreach (var novoInteresse in insercao)
                        {
                            var novoInteresseDB = new interesse()
                            {
                                descricao = novoInteresse.descricao,
                                Curriculo = cur.id
                            };
                            context.interesse.Add(novoInteresseDB);
                        }
                    }


                    if (cur.proficiencia != null && cur.proficiencia.Count > 0)
                    {
                        var insercaoProficiencia  = cur.proficiencia.Where(where => where.id == 0);
                        var alteracaoProficiencia = cur.proficiencia.Where(where => where.id > 0);
                        var idsProficiencia       = alteracaoProficiencia.Select(sel => sel.id).ToList();

                        var itemsProficienciaDB = curriculoDB.proficiencia.Where(where => idsProficiencia.Contains(where.id) && where.Curriculo == cur.id);
                        foreach (var item in alteracaoProficiencia)
                        {
                            var ProficienciaDB = itemsProficienciaDB.FirstOrDefault(where => where.id == item.id);
                            if (ProficienciaDB != null)
                            {
                                ProficienciaDB.descricao   = item.descricao;
                                ProficienciaDB.porcentagem = item.porcentagem;
                            }
                        }

                        foreach (var novaProficiencia in insercaoProficiencia)
                        {
                            var novaProficienciaDB = new proficiencia()
                            {
                                descricao   = novaProficiencia.descricao,
                                porcentagem = novaProficiencia.porcentagem,
                                Curriculo   = cur.id
                            };
                            context.proficiencia.Add(novaProficienciaDB);
                        }
                    }


                    if (cur.telefone != null && cur.telefone.Count > 0)
                    {
                        var insercaoTelefone  = cur.telefone.Where(where => where.id == 0);
                        var alteracaoTelefone = cur.telefone.Where(where => where.id > 0);
                        var idsTelefone       = alteracaoTelefone.Select(sel => sel.id).ToList();

                        var itemsTelefoneDB = curriculoDB.telefone.Where(where => idsTelefone.Contains(where.id) && where.Curriculo == cur.id);
                        foreach (var item in alteracaoTelefone)
                        {
                            var TelefoneDB = itemsTelefoneDB.FirstOrDefault(where => where.id == item.id);
                            if (TelefoneDB != null)
                            {
                                TelefoneDB.ddd    = item.ddd;
                                TelefoneDB.numero = item.numero;
                            }
                        }

                        foreach (var novaTelefone in insercaoTelefone)
                        {
                            var novaTelefoneDB = new telefone()
                            {
                                ddd       = novaTelefone.ddd,
                                numero    = novaTelefone.numero,
                                Curriculo = cur.id
                            };
                            context.telefone.Add(novaTelefoneDB);
                        }
                    }


                    if (cur.projeto != null && cur.projeto.Count > 0)
                    {
                        var insercaoProjeto  = cur.projeto.Where(where => where.id == 0);
                        var alteracaoProjeto = cur.projeto.Where(where => where.id > 0);
                        var idsProjeto       = alteracaoProjeto.Select(sel => sel.id).ToList();

                        var itemsProjetoDB = curriculoDB.projeto.Where(where => idsProjeto.Contains(where.id) && where.Curriculo == cur.id);
                        foreach (var item in alteracaoProjeto)
                        {
                            var ProjetoDB = itemsProjetoDB.FirstOrDefault(where => where.id == item.id);
                            if (ProjetoDB != null)
                            {
                                ProjetoDB.nomeProjeto      = item.nomeProjeto;
                                ProjetoDB.descricaoProjeto = item.descricaoProjeto;
                            }
                        }

                        foreach (var novaProjeto in insercaoProjeto)
                        {
                            var novaProjetoDB = new projeto()
                            {
                                nomeProjeto      = novaProjeto.nomeProjeto,
                                descricaoProjeto = novaProjeto.descricaoProjeto,
                                Curriculo        = cur.id
                            };
                            context.projeto.Add(novaProjetoDB);
                        }
                    }


                    if (cur.lingua != null && cur.lingua.Count > 0)
                    {
                        var insercaoLingua  = cur.lingua.Where(where => where.id == 0);
                        var alteracaoLingua = cur.lingua.Where(where => where.id > 0);
                        var idsLingua       = alteracaoLingua.Select(sel => sel.id).ToList();

                        var itemsLinguaDB = curriculoDB.lingua.Where(where => idsLingua.Contains(where.id) && where.Curriculo == cur.id);
                        foreach (var item in alteracaoLingua)
                        {
                            var LinguaDB = itemsLinguaDB.FirstOrDefault(where => where.id == item.id);
                            if (LinguaDB != null)
                            {
                                LinguaDB.descricao = item.descricao;
                                LinguaDB.Nivel     = item.nivelId;
                            }
                        }

                        foreach (var novaLingua in insercaoLingua)
                        {
                            var novaLinguaDB = new lingua()
                            {
                                descricao = novaLingua.descricao,
                                Nivel     = novaLingua.nivelId,
                                Curriculo = cur.id
                            };
                            context.lingua.Add(novaLinguaDB);
                        }
                    }


                    if (cur.formacao != null && cur.formacao.Count > 0)
                    {
                        var insercaoFormacao  = cur.formacao.Where(where => where.id == 0);
                        var alteracaoFormacao = cur.formacao.Where(where => where.id > 0);
                        var idsFormacao       = alteracaoFormacao.Select(sel => sel.id).ToList();

                        var itemsFormacaoDB = curriculoDB.formacao.Where(where => idsFormacao.Contains(where.id) && where.Curriculo == cur.id);
                        foreach (var item in alteracaoFormacao)
                        {
                            var FormacaoDB = itemsFormacaoDB.FirstOrDefault(where => where.id == item.id);
                            if (FormacaoDB != null)
                            {
                                FormacaoDB.curso             = item.curso;
                                FormacaoDB.instituicaoEnsino = item.instituicaoEnsino;
                                FormacaoDB.anoInicio         = item.anoInicio;
                                FormacaoDB.anoFim            = item.anoFim;
                                FormacaoDB.graduacao         = item.graduacao;
                            }
                        }

                        foreach (var novaFormacao in insercaoFormacao)
                        {
                            var novaFormacaoDB = new formacao()
                            {
                                curso             = novaFormacao.curso,
                                instituicaoEnsino = novaFormacao.instituicaoEnsino,
                                anoInicio         = novaFormacao.anoInicio,
                                anoFim            = novaFormacao.anoFim,
                                graduacao         = novaFormacao.graduacao,
                                Curriculo         = cur.id
                            };
                            context.formacao.Add(novaFormacaoDB);
                        }
                    }


                    if (cur.experiencia != null && cur.experiencia.Count > 0)
                    {
                        var insercaoExperiencia  = cur.experiencia.Where(where => where.id == 0);
                        var alteracaoExperiencia = cur.experiencia.Where(where => where.id > 0);
                        var idsExperiencia       = alteracaoExperiencia.Select(sel => sel.id).ToList();

                        var itemsExperienciaDB = curriculoDB.experiencia.Where(where => idsExperiencia.Contains(where.id) && where.Curriculo == cur.id);
                        foreach (var item in alteracaoExperiencia)
                        {
                            var ExperienciaDB = itemsExperienciaDB.FirstOrDefault(where => where.id == item.id);
                            if (ExperienciaDB != null)
                            {
                                ExperienciaDB.cargo             = item.cargo;
                                ExperienciaDB.empresa           = item.empresa;
                                ExperienciaDB.anoInicio         = item.anoInicio;
                                ExperienciaDB.anoFim            = item.anoFim;
                                ExperienciaDB.localidadeEmpresa = item.localidadeEmpresa;
                                ExperienciaDB.descricao         = item.descricao;
                            }
                        }

                        foreach (var novaExperiencia in insercaoExperiencia)
                        {
                            var novaExperienciaDB = new experiencia()
                            {
                                cargo             = novaExperiencia.cargo,
                                empresa           = novaExperiencia.empresa,
                                anoInicio         = novaExperiencia.anoInicio,
                                anoFim            = novaExperiencia.anoFim,
                                localidadeEmpresa = novaExperiencia.localidadeEmpresa,
                                descricao         = novaExperiencia.descricao,
                                Curriculo         = cur.id
                            };
                            context.experiencia.Add(novaExperienciaDB);
                        }
                    }
                    context.SaveChanges();

                    if (!String.IsNullOrEmpty(cur.nomeFoto))
                    {
                        cur.fotoArray = Convert.FromBase64String(cur.foto);
                        System.IO.File.WriteAllBytes(path, cur.fotoArray);
                    }
                }
                ret.Result = cur;
            }
            catch (Exception ex)
            {
                ret.Ex      = ex;
                ret.Message = ex.Message;
                ret.Success = false;
                ret.Result  = cur;
            }

            return(ret);
        }
Example #2
0
        public ObjectReturn <Curriculo> getCurriculo(int?id)
        {
            var ret = new ObjectReturn <Curriculo> {
                Success = true
            };

            try
            {
                curriculo curriculoDB = null;
                using (var context = new perfilCurricularContext())
                {
                    if (id != null)
                    {
                        curriculoDB = context.curriculo.FirstOrDefault(where => where.id == id);
                    }
                    else
                    {
                        curriculoDB = context.curriculo.FirstOrDefault();
                    }

                    curriculoDB.experiencia  = curriculoDB.experiencia.ToList();
                    curriculoDB.projeto      = curriculoDB.projeto.ToList();
                    curriculoDB.proficiencia = curriculoDB.proficiencia.ToList();
                    curriculoDB.telefone     = curriculoDB.telefone.ToList();
                    curriculoDB.formacao     = curriculoDB.formacao.ToList();
                    curriculoDB.interesse    = curriculoDB.interesse.ToList();
                    var linguasCurriculo = curriculoDB.lingua.ToList();

                    curriculoDB.lingua = linguasCurriculo.Join(context.nivel, lin => lin.Nivel, nvl => nvl.id, (lin, nvl) => new { ling = lin, nivl = nvl }).Select(res => new lingua
                    {
                        id         = res.ling.id,
                        descricao  = res.ling.descricao,
                        curriculo1 = res.ling.curriculo1,
                        Nivel      = res.ling.Nivel,
                        nivel1     = res.nivl
                    }).ToList();

                    if (curriculoDB == null)
                    {
                        curriculoDB = new curriculo();
                    }
                }

                var curriculo = new PerfilCurricular.Models.Curriculo
                {
                    id              = curriculoDB.id,
                    nomeCompleto    = curriculoDB.nomeCompleto,
                    email           = curriculoDB.email,
                    profissao       = curriculoDB.profissao,
                    perfilCarreira  = curriculoDB.perfilCarreira,
                    linkedinDisplay = curriculoDB.linkedinDisplay,
                    linkedin        = curriculoDB.linkedin,
                    introProjeto    = curriculoDB.introProjeto,
                    nomeFoto        = curriculoDB.foto
                };

                curriculo.experiencia = getListExperiencia(curriculoDB.experiencia.ToList());

                curriculo.projeto = getListProjeto(curriculoDB.projeto.ToList());

                curriculo.proficiencia = getListProficiencia(curriculoDB.proficiencia.ToList());

                curriculo.telefone = getListTelefone(curriculoDB.telefone.ToList());

                curriculo.formacao = getListFormacao(curriculoDB.formacao.ToList());

                curriculo.lingua = getListLingua(curriculoDB.lingua.ToList());

                curriculo.interesse = getListInteresse(curriculoDB.interesse.ToList());
                ret.Result          = curriculo;
            }
            catch (Exception ex)
            {
                ret.Ex      = ex;
                ret.Message = ex.Message;
                ret.Success = false;
                ret.Result  = new Curriculo();
            }
            return(ret);
        }