Beispiel #1
0
        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));
        }
Beispiel #2
0
        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]");
                }
            }
        }
Beispiel #3
0
        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);
            }
        }