示例#1
0
        public object AlterarStatus(Evento evento)
        {
            Usuario user = GetSessionUser();

            try
            {
                //var ev = eventoRepository.GetEventoById(evento.IdEvento);
                //ev.Status = evento.Status;

                Evento ev = eventoRepository.AlteraStatusEvento(evento.IdEvento, evento.Status);

                if (ev != null)
                {
                    try
                    {
                        if (evento.Status == EnumStatusEvento.cancelado)
                        {
                            var    url         = System.Web.Hosting.HostingEnvironment.MapPath("~/Views/Email/AlteracaoEvento.cshtml");
                            string viewCode    = System.IO.File.ReadAllText(url);
                            var    eventoEmail = eventoRepository.ConverToEmailModel(ev, Url.Action("Login", "Account", null, Request.Url.Scheme));

                            var html = RazorEngine.Razor.Parse(viewCode, eventoEmail);

                            var alunosConfirmados = eventoRepository.GetListaChamada(ev.IdEvento);

                            if (alunosConfirmados != null && alunosConfirmados.Count > 0 && alunosConfirmados.Any(x => x.Usuario.E_mail != ""))
                            {
                                var to   = alunosConfirmados.Where(x => !string.IsNullOrEmpty(x.Usuario.E_mail)).Select(x => x.Usuario.E_mail).ToArray();
                                var from = System.Configuration.ConfigurationManager.AppSettings["MailFrom"].ToString();
                                Email.EnviarEmail(from, to, "Alteração de evento", html);
                            }
                        }
                    }
                    catch (Exception e)
                    {
                    }

                    if (ev.Status == EnumStatusEvento.cancelado)
                    {
                        Utilidades.SalvaLog(user, EnumAcao.Cancelar, ev, ev.IdEvento);
                    }

                    return(Json(new { Status = true, Type = "success", Message = "Evento salvo 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));
            }
        }