private async Task CrearParticipante(int ProyectoId, Ekilibrate.Model.Entity.Participante.clsParticipante item, List <Ekilibrate.Model.Entity.Proyecto.clsGrupo> ListaGrupos) { Ekilibrate.ad.Participante.clsParticipante objParticipante = new Ekilibrate.ad.Participante.clsParticipante(_lifetimeScope); Ekilibrate.Model.Entity.Participante.clsParticipanteBase dParticipante = await objParticipante.GetById(item.Id, ProyectoId); if (dParticipante == null) { dParticipante = new Model.Entity.Participante.clsParticipanteBase(); dParticipante.Id = item.Id; dParticipante.ProyectoId = ProyectoId; dParticipante.GrupoId = ListaGrupos.Where(x => x.Nombre == item.Grupo).First().Id; await objParticipante.Insert(dParticipante); } else { dParticipante.ProyectoId = ProyectoId; dParticipante.GrupoId = ListaGrupos.Where(x => x.Nombre == item.Grupo).First().Id; await objParticipante.Update(dParticipante); } }
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); } }