Ejemplo n.º 1
0
        public async Task <IActionResult> CadastroTrabalho(int idEvento)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }
            var evento = await _eventoRepository.GetEvento(idEvento);

            var areas = await _areaRepository.GetAreas();

            var periodos = await _trabalhoRepository.GetPeriodos();

            var agencias = await _agenciaRepository.GetAgencias();

            var user = await _userManager.FindByNameAsync(User.Identity.Name);

            AutorViewModel autorPrincipal = new AutorViewModel()
            {
                Email     = user.Email,
                Nome      = user.Nome.ToUpper(),
                Sobrenome = user.Sobrenome.ToUpper(),
                Id        = user.Id
            };

            CadastroTrabalhoViewModel model = new CadastroTrabalhoViewModel()
            {
                EventoNome        = evento.EventoNome,
                EventoId          = evento.Id,
                Evento            = evento,
                AreasConhecimento = areas,
                Periodos          = periodos,
                Agencias          = agencias,
                AutorPrincipal    = autorPrincipal,
            };

            model.EventoId = idEvento;

            var roles = await _accountRepository.GetRoles(user.Id);

            model.Roles       = roles;
            ViewBag.AutorNome = user.Nome;


            return(View(model));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> CadastroTrabalho(CadastroTrabalhoViewModel model, int idEvento)
        {
            model.EventoId = idEvento;
            var user = await _userManager.FindByNameAsync(User.Identity.Name);

            var            coautores  = new List <AutorViewModel>();
            AutorViewModel orientador = null;

            if (model.CoautoresId != null)
            {
                foreach (var autor in model.CoautoresId)
                {
                    var coautor = await _autorRepository.GetAutor(autor);

                    coautor.Orientador       = false;
                    coautor.Id               = autor;
                    coautor.AutorResponsavel = false;
                    if (coautor.Nome == null)
                    {
                        coautor.StatusId = 3;
                    }
                    else
                    {
                        coautor.StatusId = 2;
                    }
                    coautores.Add(coautor);
                }
            }

            if (model.OrientadorId != 0)
            {
                orientador = await _autorRepository.GetAutor(model.OrientadorId);

                orientador.Orientador       = true;
                orientador.Id               = model.OrientadorId;
                orientador.AutorResponsavel = false;
                if (orientador.Nome == null)
                {
                    orientador.StatusId = 3;
                }
                else
                {
                    orientador.StatusId = 2;
                }
            }


            #region ModelState.IsValid
            if (!ModelState.IsValid)
            {
                if (model.OrientadorId == 0)
                {
                    ViewBag.orientador = false;
                }
                var areas = await _areaRepository.GetAreas();

                var periodos = await _trabalhoRepository.GetPeriodos();

                var agencias = await _agenciaRepository.GetAgencias();


                AutorViewModel autorPrincipal = new AutorViewModel()
                {
                    Email     = user.Email,
                    Nome      = user.Nome.ToUpper(),
                    Sobrenome = user.Sobrenome.ToUpper(),
                    Id        = user.Id
                };

                model.Orientador  = orientador;
                model.Coautores   = coautores;
                model.SubAreaNome = await _areaRepository.GetSubArea(model.SubAreaId);

                model.AutorPrincipal    = autorPrincipal;
                model.Agencias          = agencias;
                model.AreasConhecimento = areas;
                model.Periodos          = periodos;
                ViewBag.erro            = true;
                return(View(model));
            }
            #endregion ModelState.IsValid

            //gera identificação
            model.Evento = await _eventoRepository.GetEvento(idEvento);

            string identificacao = await GeraIdentificacao(model.Evento);

            model.DataCadastro = DateTime.Now;

            model.StatusTrabalhoId = 3;

            var trabalhoId = await _trabalhoRepository.InsertTrabalho(model.StatusTrabalhoId, model.Titulo, model.Introducao, model.Metodologia, model.Resultados, model.Resumo, model.Conclusao, model.Referencias, model.NomeEscola, model.TelefoneEscola, model.CidadeEscola, identificacao, model.DataCadastro, model.TextoCitacao, model.CodigoCEP, model.AgenciaId, model.Evento.Id, model.ArtigoId, model.SubAreaId, model.PeriodoApresentacao);

            var palavrasChave = await _trabalhoServices.CadastraPalavrasChave(model.PalavraChave, trabalhoId);

            if (trabalhoId > 0)
            {
                var autorPrincipal = await _trabalhoRepository.CadastraAutorTrabalho(user.Id, 1, false, trabalhoId, true);

                if (idEvento == 2 || idEvento == 3 || idEvento == 4)
                {
                    var cadastraAlunos = await _trabalhoRepository.CadastrarAlunoTrabalho(trabalhoId, model.AlunosNome);

                    model.ReturnMenssagem = "Alterações salvas";
                    return(RedirectToAction("ConsultaTrabalho"));
                }
                else
                {
                    //SALVAR AUTOR TRABALHO
                    if (coautores != null)
                    {
                        foreach (var coautor in coautores)
                        {
                            var autorTrabalho = await _trabalhoRepository.CadastraAutorTrabalho(coautor.Id, coautor.StatusId, coautor.Orientador, trabalhoId, false);
                        }
                    }

                    if (orientador != null)
                    {
                        var autorTrabalho = await _trabalhoRepository.CadastraAutorTrabalho(orientador.Id, orientador.StatusId, orientador.Orientador, trabalhoId, false);
                    }

                    model.ReturnMenssagem = "Alterações salvas";
                    return(RedirectToAction("ConsultaTrabalho"));
                }
            }
            return(BadRequest());
        }