public object SalvarSolicitacao(SolicitacaoDocumento sol, HttpPostedFileBase uploadFile) { Usuario user = GetSessionUser(); string msg = "Erro"; if (uploadFile == null) { return(Json(new { Status = false, Type = "error", Message = "Selecione um documento" }, JsonRequestBehavior.AllowGet)); } try { var edit = true; sol.Status = sol.IdSolicitacao > 0 ? sol.Status : EnumStatusSolicitacao.pendente; sol.DataAbertura = DateTime.Now; AlunoCurso al = new AlunoCurso(); if (sol.IdSolicitacao == 0) { al = cursoRepository.GetAlunoCurso(User.Identity.Name); sol.IdAlunoCurso = al.IdAlunoCurso; sol.TipoSolicitacao = EnumTipoSolicitacao.aluno; edit = false; sol.Documento = new Documento(); sol.Documento.arquivo = DirDoc.converterFileToArray(uploadFile); sol.Documento.NomeDocumento = uploadFile.FileName; sol.Documento.IdAlunoCurso = sol.IdAlunoCurso; sol.Documento.IdTipoDoc = tipoDocumentoRepository.GetTipoDoc("certificado").IdTipoDoc; string msgDoc = DirDoc.SalvaArquivo(sol.Documento); sol.DataLimite = sol.DataAbertura.AddDays(7); msg = solicitacaoRepository.PersisteSolicitacao(sol); } else { sol.Documento = new Documento(); sol.Documento.arquivo = DirDoc.converterFileToArray(uploadFile); sol.Documento.NomeDocumento = uploadFile.FileName; sol.Documento.IdAlunoCurso = sol.IdAlunoCurso; sol.Documento.IdTipoDoc = tipoDocumentoRepository.GetTipoDoc("certificado").IdTipoDoc; msg = solicitacaoRepository.AlteraDocumento(sol); } if (msg != "Erro") { if (!edit) { try { sol.AlunoCurso = al; var solicitacaoEmail = solicitacaoRepository.ConverToEmailModel(sol, Url.Action("Login", "Account", null, Request.Url.Scheme)); var url = System.Web.Hosting.HostingEnvironment.MapPath("~/Views/Email/NovaSolicitacaoHoras.cshtml"); string viewCode = System.IO.File.ReadAllText(url); var html = RazorEngine.Razor.Parse(viewCode, solicitacaoEmail); var toEmail = new List <Usuario>(); var coord = cursoRepository.GetCoordenadorByCurso(al.IdCurso); toEmail = usuarioRepository.GetUsuariosSecretaria(); if (coord != null && coord.Usuario != null) { toEmail.Add(coord.Usuario); } if (toEmail.Any(x => !string.IsNullOrEmpty(x.E_mail))) { var to = toEmail.Where(x => !string.IsNullOrEmpty(x.E_mail)).Select(x => x.E_mail).ToArray(); var from = System.Configuration.ConfigurationManager.AppSettings["MailFrom"].ToString(); Email.EnviarEmail(from, to, "Nova solicitação de horas complementares", 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)); } }