// GET: HoraComplementar
        public ActionResult Index()
        {
            PopularDropDowns();

            AlunoCurso al = cursoRepository.GetAlunoCurso(User.Identity.Name);

            ViewBag.HrsComputadas  = al.HoraCompleta.HasValue && al.HoraCompleta.Value > 0 ? al.HoraCompleta.Value : 0;
            ViewBag.HrsNecessarias = al.HoraNecessaria;

            List <SolicitacaoDocumento> retorno = solicitacaoRepository.GetMinhaSolicitacao(User.Identity.Name).Where(x => x.TipoSolicitacao == EnumTipoSolicitacao.aluno).ToList();

            return(View(retorno));
        }
Beispiel #2
0
        /// <summary>
        /// Salva o arquivo enviado
        /// </summary>
        /// <param name="doc">documento a ser salvo</param>
        /// <returns>Documento com endereço e nome corretos para inserção no banco de dados</returns>
        public static string SalvaArquivo(Documento doc)
        {
            string     curso;
            string     idAluno;
            AlunoCurso al;

            try
            {
                al = cursoRepository.GetAlunoCurso(doc.AlunoCurso.IdAluno, doc.AlunoCurso.IdCurso);
            }
            catch
            {
                al = cursoRepository.GetAlunoCurso(doc.IdAlunoCurso);
            }

            try
            {
                curso   = cursoRepository.GetCursoById(doc.AlunoCurso.IdCurso).Nome;
                idAluno = doc.AlunoCurso.IdAluno.ToString();
            }
            catch
            {
                curso   = cursoRepository.GetCursoById(al.IdCurso).Nome;
                idAluno = al.IdAluno.ToString();
            }


            string tipoDoc = tipoDocumentoRepository.GetTipoDocById(doc.IdTipoDoc).TipoDocumento1;


            List <string> caminho = new List <string>();

            caminho.Add(curso);
            caminho.Add(idAluno);
            caminho.Add(tipoDoc);

            CriaDiretorio(caminho.ToArray());
            doc.NomeDocumento = "(" + al.Aluno.IdUsuario + ")" + GeraNomeArquivo(doc.NomeDocumento);

            string outputFile = CriaDiretorio(caminho.ToArray()) + doc.NomeDocumento;

            doc.CaminhoDocumento = outputFile;

            try
            {
                if (File.Exists(outputFile))
                {
                    return("Arquivo existente");
                }
                else
                {
                    FileStream      fs     = new FileStream(outputFile, FileMode.Create);
                    RijndaelManaged rmCryp = new RijndaelManaged();
                    CryptoStream    cs     = new CryptoStream(fs, rmCryp.CreateEncryptor(Key, Key), CryptoStreamMode.Write);

                    foreach (var data in doc.arquivo)
                    {
                        cs.WriteByte((byte)data);
                    }
                    cs.Close();
                    fs.Close();
                }
                doc.Data = DateTime.Now;
                if (documentoRepository.PersisteDocumento(doc))
                {
                    return("Sucesso");
                }

                return("Falha ao persistir");
            }
            catch (Exception e)
            {
                return("Falha ao criptografar");
            }
        }
        public object SalvarSolicitacao(SolicitacaoDocumento sol)
        {
            Usuario user = GetSessionUser();

            var edit = true;

            sol.Status       = sol.IdSolicitacao > 0 ? sol.Status : EnumStatusSolicitacao.pendente;
            sol.DataAbertura = DateTime.Now;
            if (sol.IdSolicitacao == 0)
            {
                sol.IdAlunoCurso = cursoRepository.GetAlunoCurso(sol.AlunoCurso.IdAluno, sol.AlunoCurso.IdCurso).IdAlunoCurso;
            }
            sol.AlunoCurso      = null;
            sol.TipoSolicitacao = EnumTipoSolicitacao.secretaria;
            if (sol.IdSolicitacao == 0)
            {
                edit = false;
                Documento d = new Documento();
                d.IdTipoDoc     = (int)sol.TipoDocumento;
                d.IdAlunoCurso  = sol.IdAlunoCurso;
                d.Data          = sol.DataAbertura;
                d.NomeDocumento = "";

                sol.Documento = d;
            }

            if (ModelState.IsValid)
            {
                try
                {
                    // valida se o aluno está matriculado no curso que coordena
                    if (user.Permissao == EnumPermissaoUsuario.coordenador)
                    {
                        var        cursos = cursoRepository.GetCursoByCoordenador(User.Identity.Name);
                        AlunoCurso ac     = cursoRepository.GetAlunoCurso(sol.IdAlunoCurso);
                        if (!cursos.Contains(ac.Curso))
                        {
                            return(Json(new { Status = false, Type = "error", Message = "Não autorizado!" }, JsonRequestBehavior.AllowGet));
                        }
                    }

                    string msg = solicitacaoRepository.PersisteSolicitacao(sol);

                    if (msg != "Erro")
                    {
                        try
                        {
                            DocumentosModel db2              = new DocumentosModel();
                            var             solicitacao      = db2.SolicitacaoDocumento.Find(sol.IdSolicitacao);
                            var             solicitacaoEmail = solicitacaoRepository.ConverToEmailModel(solicitacao, Url.Action("Login", "Account", null, Request.Url.Scheme));

                            if (edit)
                            {
                                var    url      = System.Web.Hosting.HostingEnvironment.MapPath("~/Views/Email/AlteracaoSolicitacaoDocumento.cshtml");
                                string viewCode = System.IO.File.ReadAllText(url);

                                var html = RazorEngine.Razor.Parse(viewCode, solicitacaoEmail);
                                if (!string.IsNullOrEmpty(solicitacaoEmail.EmailAluno))
                                {
                                    var to   = new[] { solicitacaoEmail.EmailAluno };
                                    var from = System.Configuration.ConfigurationManager.AppSettings["MailFrom"].ToString();
                                    Email.EnviarEmail(from, to, "Alteração em solicitação de documento - " + solicitacaoEmail.NomeTipoDocumento, html);
                                }
                            }
                            else
                            {
                                var    url      = System.Web.Hosting.HostingEnvironment.MapPath("~/Views/Email/NovaSolicitacaoDocumento.cshtml");
                                string viewCode = System.IO.File.ReadAllText(url);

                                var html = RazorEngine.Razor.Parse(viewCode, solicitacaoEmail);
                                if (!string.IsNullOrEmpty(solicitacaoEmail.EmailAluno))
                                {
                                    var to   = new[] { solicitacaoEmail.EmailAluno };
                                    var from = System.Configuration.ConfigurationManager.AppSettings["MailFrom"].ToString();
                                    Email.EnviarEmail(from, to, "Nova solicitação de documento - " + solicitacaoEmail.NomeTipoDocumento, html);
                                }
                            }
                        }
                        catch (Exception e)
                        {
                        }

                        Utilidades.SalvaLog(user, EnumAcao.Persistir, sol, (sol.IdSolicitacao > 0 ? (int?)sol.IdSolicitacao : null));
                        return(Json(new { Status = true, Type = "success", Message = "Solicitação salva com sucesso", ReturnUrl = Url.Action("Index") }, JsonRequestBehavior.AllowGet));
                    }
                    else
                    {
                        return(Json(new { Status = false, Type = "error", Message = "Ocorreu um erro ao realizar esta operação." }, JsonRequestBehavior.AllowGet));
                    }
                }
                catch (Exception e)
                {
                    return(Json(new { Status = false, Type = "error", Message = "Ocorreu um erro ao realizar esta operação." }, JsonRequestBehavior.AllowGet));
                }
            }
            else
            {
                return(Json(new { Status = false, Type = "error", Message = "Campos inválidos" }, JsonRequestBehavior.AllowGet));
            }
        }