public async Task <ActionResult> Register(Ekilibrate.Model.Entity.Participante.clsRegistroParticipante model) { try { if (ModelState.IsValid) { if (model.Password == model.ConfirmPassword) { using (var scope = EkilibrateUI.Autofac.ContainerConfig.ProxyContainer.BeginLifetimeScope()) { var middleTier = scope.Resolve <Ekilibrate.Model.Services.Participante.IDataInjector>(); var usr = await middleTier.CrearParticipante(model); BarcoSoftAuthorize.LogIn(this.HttpContext, model.Password.Encrypt(), usr); FormsAuthentication.SetAuthCookie(usr, false); BarcoSoftUtilidades.Seguridad.Usuario user = this.HttpContext.GetActualUser(); if (user.Tipo.IdTipoUsuario == 6) { return(Redirect(user.Tipo.RedirectUrlTipoUsuario)); } //return Redirect("~/SitioAdministrativo/Home/Lock"); else { return(Redirect(user.Tipo.RedirectUrlTipoUsuario)); } } } else { ModelState.AddModelError(string.Empty, "Las contraseñas ingresadas no coinciden"); } } else { ModelState.AddModelError(string.Empty, "Verifica tu datos."); } } catch (Exception ex) { ModelState.AddModelError(string.Empty, ex.Message); } return(View(model)); }
async Task <string> IDataInjector.CrearParticipante(Ekilibrate.Model.Entity.Participante.clsRegistroParticipante Data) { using (var scope = Ekilibrate.Data.Access.Common.ContainerConfig.ProxyContainer.BeginLifetimeScope("a")) { try { var objController = new Ekilibrate.BL.Controller.Participante.clsController(scope); var result = await objController.CrearParticipante(Data); var DBContext = scope.Resolve <DBTrnContext>(); DBContext.CommitTransaction(); return(result); } catch (FaultException ex) { throw ex; } catch (Exception) { throw new FaultException("Error al registrar los datos del usuario. Favor comunícate con tu administrador o contacto principal o escríbenos a [email protected]"); } } }
public async Task <string> CrearParticipante(Ekilibrate.Model.Entity.Participante.clsRegistroParticipante Data) { try { //Obtener información del proyecto Ekilibrate.BL.DataRetriever.clsProyecto objProyecto = new Ekilibrate.BL.DataRetriever.clsProyecto(_lifetimeScope); Ekilibrate.Model.Entity.Administrador.clsProyecto dProyecto = await objProyecto.GetProyecto(Data.CodigoRegistro); if (dProyecto != null) { //Crear Participante //Crear Persona Ekilibrate.ad.General.clsPersona objPersona = new Ekilibrate.ad.General.clsPersona(_lifetimeScope); Data.Id = await objPersona.Insert(Data); //Insertar Participante Ekilibrate.ad.Participante.clsParticipante objParticipante = new Ekilibrate.ad.Participante.clsParticipante(_lifetimeScope); Ekilibrate.Model.Entity.Participante.clsParticipanteBase dParticipante = new Model.Entity.Participante.clsParticipanteBase(); dParticipante.Id = Data.Id; dParticipante.ProyectoId = dProyecto.Id; //dParticipante.GrupoId = ListaGrupos.Where(x => x.Nombre == item.Grupo).First().Id; await objParticipante.Insert(dParticipante); //if (dProyecto.Estado == EstadoProyectoEnEjecucion) //{ //Insertar DiagnosticoBase Ekilibrate.BL.ad.Participante.clsDiagnostico objDiagnostico = new Ekilibrate.BL.ad.Participante.clsDiagnostico(_lifetimeScope); Ekilibrate.Model.Entity.Participante.clsDiagnosticoBase dDiagnostico = new Model.Entity.Participante.clsDiagnosticoBase(); dDiagnostico.ID_PARTICIPANTE = Data.Id; dDiagnostico.PrimerNombre = Data.PrimerNombre; dDiagnostico.PrimerApellido = Data.PrimerApellido; dDiagnostico.Correo = Data.Correo; await objDiagnostico.Insert(dDiagnostico); //} //Insertar Usuario Ekilibrate.ad.Administracion.clsUsuario objUsuario = new Ekilibrate.ad.Administracion.clsUsuario(_lifetimeScope); Ekilibrate.Model.Entity.Administracion.clsUsuarioBase dUsuario = new Model.Entity.Administracion.clsUsuarioBase(); string Usuario = await objUsuario.GetUserKey(Data.Correo, dProyecto.EmpresaNombre, Data.PrimerNombre, Data.PrimerApellido); dUsuario.IdPersona = Data.Id; dUsuario.NombreUsuario = Usuario; dUsuario.IdTipoUsuario = TipoUsuarioParticipante; dUsuario.Activo = true; //Grabrar el usuario encriptado como contraseña de usuario //dUsuario.Contraseña = BarcoSoftUtilidades.Utilidades.Cryptography.Encrypt(BarcoSoftUtilidades.Utilidades.Cryptography.Encrypt(item.Id.ToString(), sk)); dUsuario.Contraseña = BarcoSoftUtilidades.Utilidades.Cryptography.Encrypt(Data.Password); int IdUsuario = await objUsuario.Insert(dUsuario); //Insertar UsuarioPorRol Ekilibrate.ad.Administracion.clsUsuarioPorRol objUsuarioRol = new Ekilibrate.ad.Administracion.clsUsuarioPorRol(_lifetimeScope); Ekilibrate.Model.Entity.Administracion.clsUsuarioPorRolBase dUsuarioRol = new Model.Entity.Administracion.clsUsuarioPorRolBase(); dUsuarioRol.IdUsuario = IdUsuario; dUsuarioRol.IdRol = RolParticipante; dUsuarioRol.TransacDateTime = DateTime.Now; dUsuarioRol.TransacUser = tranuser; await objUsuarioRol.Insert(dUsuarioRol); //Enviar Correo Ekilibrate.BL.Common.clsMail ctrlMail = new Ekilibrate.BL.Common.clsMail(_lifetimeScope); Ekilibrate.Model.Entity.General.clsMensajeCorreo MailNotifica = new Model.Entity.General.clsMensajeCorreo(); MailNotifica.Para = Data.Correo; MailNotifica.EsHTML = "SI"; MailNotifica.EsLista = "NO"; MailNotifica.Asunto = "Bienvenido a Ekilibrate"; MailNotifica.Mensaje = String.Format(HTMLCorreoRegistro, Data.PrimerNombre, Usuario, Data.Password); await ctrlMail.DirectEmail(MailNotifica, dProyecto.Correo, dProyecto.PasswordCorreo, "Ekilibrate"); return(Usuario); } else { throw new Exception("El Código ingresado no es válido favor verifique."); } } catch (Exception e) { throw new Exception("Error al registrar el participante", e); } }