public CredenciadoViewModel Run(Repository value) { CredenciadoViewModel rec = (CredenciadoViewModel)value; string habilitaEmail = db.Parametros.Find(sessaoCorrente.empresaId, (int)Enumeracoes.Enumeradores.Param.HABILITA_EMAIL).Valor; if (habilitaEmail == "S") { int _empresaId = sessaoCorrente.empresaId; int _sistemaId = int.Parse(db.Parametros.Find(_empresaId, (int)Enumeracoes.Enumeradores.Param.SISTEMA).Valor); Sistema sistema = seguranca_db.Sistemas.Find(_sistemaId); Condominio condominio = db.Condominios.Find(sessaoCorrente.empresaId); CondominoUnidade CondominoUnidade = db.CondominoUnidades.Where(info => info.CondominoID == rec.CondominoID && !info.DataFim.HasValue).FirstOrDefault(); Edificacao Edificacao = db.Edificacaos.Find(CondominoUnidade.EdificacaoID); Credenciado Credenciado = db.Credenciados.Where(info => info.Email == rec.Email).FirstOrDefault(); Unidade Unidade = db.Unidades.Find(_empresaId, CondominoUnidade.EdificacaoID, CondominoUnidade.UnidadeID); string DescricaoTipoEdificacao = DWMSessaoLocal._GetTipoEdificacao(_empresaId, this.db).Descricao; rec.empresaId = _empresaId; SendEmail sendMail = new SendEmail(); MailAddress sender = new MailAddress(condominio.RazaoSocial + " <" + condominio.Email + ">"); List <string> recipients = new List <string>(); recipients.Add(rec.Nome + "<" + rec.Email + ">"); string Subject = "Confirmação de cadastro no " + condominio.RazaoSocial; string Text = "<p>Confirmação de cadastro</p>"; string Html = "<p><span style=\"font-family: Verdana; font-size: larger; color: #656464\">" + sistema.descricao + "</span></p>" + "<p><span style=\"font-family: Verdana; font-size: xx-large; color: #0094ff\">" + rec.Nome.ToUpper() + "</span></p>" + "<p></p>" + "<p><span style=\"font-family: Verdana; font-size: small; color: #000\">" + DescricaoTipoEdificacao + ": <b>" + Edificacao.Descricao + "</b></span></p>" + "<p></p>" + "<p><span style=\"font-family: Verdana; font-size: small; color: #000\">Unidade: <b>" + Unidade.Codigo + "</b></span></p>" + "<p></p>" + "<p><span style=\"font-family: Verdana; font-size: small; color: #000\">Essa é uma mensagem de confirmação de seu cadastro de credenciado. Seu registro no Sistema Administrativo do " + condominio.RazaoSocial + " foi realizado com sucesso.</span></p>" + "<p></p>"; Html += "<p></p>" + "<p><span style=\"font-family: Verdana; font-size: small; color: #000\">Seu Login de acesso é: </span></p>" + "<p></p>" + "<p><span style=\"font-family: Verdana; font-size: xx-large; color: #0094ff\">" + rec.Email + "</span></p>" + "<p></p>" + "<p><span style=\"font-family: Verdana; font-size: small; color: #000\">Clique no link abaixo para ativar o seu cadastro e acessar o sistema:</span></p>" + "<p><a href=\"http://www.parcparadiso.com.br/Account/AtivarCredenciado?id=" + Credenciado.UsuarioID.ToString() + "&key=" + rec.mensagem.Field + "\" target=\"_blank\"><span style=\"font-family: Verdana; font-size: small; color: #0094ff\">Acesso ao " + sistema.descricao + "</span></a></p>" + "<p></p>" + "<p><span style=\"font-family: Verdana; font-size: small; color: #000\">Observação: este link estará disponível para ativação por 24 h</span></p>" + "<hr />"; Html += "<p></p>" + "<p></p>" + "<p><span style=\"font-family: Verdana; font-size: small; color: #000\">Através do sistema o credenciado poderá:</span></p>" + "<p></p>" + "<p><span style=\"font-family: Verdana; font-size: small; color: #000\">- Consultar os documentos e comunicados oficiais do condomínio postados pelo síndico.</span></p>" + "<p><span style=\"font-family: Verdana; font-size: small; color: #000\">- Consultar os comunicados específicos destinados a sua torre.</span></p>" + "<p><span style=\"font-family: Verdana; font-size: small; color: #000\">- Abrir chamados à administração como por exemplo fazer o registro de uma ocorrência ou uma solicitação.</ span></p>" + "<p><span style=\"font-family: Verdana; font-size: small; color: #000\">- Receber mensagens e alertas personalizados.</ span></p>" + "<p><span style=\"font-family: Verdana; font-size: small; color: #000\">- Consultar o histórico de notificações.</ span></p>" + "<hr />" + "<p></p>" + "<p><span style=\"font-family: Verdana; font-size: small; color: #000\">Além desses recursos, estaremos implementando outras novidades. Aguarde !</span></p>" + "<p> </p>" + "<p> </p>" + "<p><span style=\"font-family: Verdana; font-size: small; color: #000\">Obrigado,</span></p>" + "<p><span style=\"font-family: Verdana; font-size: small; color: #000\">Administração " + condominio.RazaoSocial + "</span></p>"; Validate result = sendMail.Send(sender, recipients, Html, Subject, Text); if (result.Code > 0) { result.MessageBase = "Seu cadastro foi realizado com sucesso, mas por falhas de comunicação não foi possível enviar seu e-mail de confirmação. Favor entrar em contato com [email protected] e solicite seu e-mail de ativação."; throw new App_DominioException(result); } } rec.mensagem = new Validate() { Code = 0, Message = MensagemPadrao.Message(0).ToString(), MessageType = MsgType.SUCCESS }; return(rec); }
public ActionResult EditCredenciado(CredenciadoViewModel CredenciadoViewModel, string Operacao) { if (ModelState.IsValid) { int CredenciadoViewModel_CondominoID = CredenciadoViewModel.CondominoID; int CredenciadoViewModel_CredenciadoID = CredenciadoViewModel.CredenciadoID; int? CredenciadoViewModel_UsuarioID = CredenciadoViewModel.UsuarioID; string CredenciadoViewModel_Nome = CredenciadoViewModel.Nome; string CredenciadoViewModel_Email = CredenciadoViewModel.Email; int CredenciadoViewModel_TipoCredenciadoID = CredenciadoViewModel.TipoCredenciadoID; string CredenciadoViewModel_Observacao = CredenciadoViewModel.Observacao; string CredenciadoViewModel_Sexo = CredenciadoViewModel.Sexo; string CredenciadoViewModel_IndVisitantePermanente = CredenciadoViewModel.IndVisitantePermanente; if (ViewBag.ValidateRequest) { CondominoEditViewModel result = null; try { #region Incluir/Editar Credenciado result = new CondominoEditViewModel() { UnidadeViewModel = new UnidadeViewModel(), CondominoViewModel = new CondominoPFViewModel(), CredenciadoViewModel = new CredenciadoViewModel() { CredenciadoID = CredenciadoViewModel_CredenciadoID, CondominoID = CredenciadoViewModel_CondominoID, Nome = CredenciadoViewModel_Nome, Email = CredenciadoViewModel_Email, TipoCredenciadoID = CredenciadoViewModel_TipoCredenciadoID, Sexo = CredenciadoViewModel_Sexo, Observacao = CredenciadoViewModel_Observacao, UsuarioID = CredenciadoViewModel_UsuarioID, IndVisitantePermanente = CredenciadoViewModel_IndVisitantePermanente, mensagem = new App_Dominio.Contratos.Validate() { Code = 0 } }, mensagem = new App_Dominio.Contratos.Validate() { Code = 0 } }; result.CredenciadoViewModel.uri = this.ControllerContext.Controller.GetType().Name.Replace("Controller", "") + "/" + this.ControllerContext.RouteData.Values["action"].ToString(); FactoryLocalhost <CredenciadoViewModel, ApplicationContext> factory = new FactoryLocalhost <CredenciadoViewModel, ApplicationContext>(); result.Credenciados = factory.Execute(new EditarCredenciadoBI(Operacao), result.CredenciadoViewModel, CredenciadoViewModel_CondominoID, Operacao); if (factory.Mensagem.Code > 0) { throw new App_DominioException(factory.Mensagem); } //if (result.CredenciadoViewModel.CredenciadoID == 0 && !string.IsNullOrEmpty(result.CredenciadoViewModel.Email) ) //{ // #region envio de e-mail ao credenciado para ativação // result.CredenciadoViewModel.mensagem.Field = factory.Mensagem.Field; // senha do credenciado // CredenciadoViewModel repository = factory.Execute(new EnviarEmailCredenciadoBI(), result.CredenciadoViewModel); // if (repository.mensagem.Code > 0) // throw new ArgumentException(repository.mensagem.MessageBase); // #endregion //} CredenciadoModel CredenciadoModel = new CredenciadoModel(); result.CredenciadoViewModel = CredenciadoModel.CreateRepository(Request); result.CredenciadoViewModel.CondominoID = CredenciadoViewModel_CondominoID; #endregion Success("Registro processado com sucesso"); } catch (App_DominioException ex) { ModelState.AddModelError("", ex.Result.MessageBase); // mensagem amigável ao usuário Error(ex.Result.Message); // Mensagem em inglês com a descrição detalhada do erro e fica no topo da tela } catch (Exception ex) { App_DominioException.saveError(ex, GetType().FullName); ModelState.AddModelError("", MensagemPadrao.Message(17).ToString()); // mensagem amigável ao usuário Error(ex.Message); // Mensagem em inglês com a descrição detalhada do erro e fica no topo da tela } return(View("_Credenciado", result)); } else { return(View()); } } else { CondominoEditViewModel result = new CondominoEditViewModel() { UnidadeViewModel = new UnidadeViewModel(), CondominoViewModel = new CondominoPFViewModel() { CondominoID = CredenciadoViewModel.CondominoID }, CredenciadoViewModel = CredenciadoViewModel }; Factory <CondominoEditViewModel, ApplicationContext> factory = new Factory <CondominoEditViewModel, ApplicationContext>(); CondominoEditViewModel obj = factory.Execute(new EditarCondominoBI(), result); result.Credenciados = obj.Credenciados; Error("Erro de preenhcimento em campos"); return(View("_Credenciado", result)); } }