// 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)); }
/// <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)); } }