async Task <IEnumerable <Ekilibrate.Model.Entity.Administrador.clsProyecto> > IDataRetriever.GetProyectosEmpresa(int EmpresaId) { using (var scope = Ekilibrate.Data.Access.Common.ContainerConfig.ProxyContainer.BeginLifetimeScope()) { var objDataRetriever = new Ekilibrate.BL.DataRetriever.clsProyecto(scope); return(await objDataRetriever.GetProyectos(EmpresaId)); } }
public async Task CargarParticipantes(Int32 ProyectoId, IEnumerable <Ekilibrate.Model.Entity.Participante.clsParticipante> Data) { //Obtener información del proyecto Ekilibrate.BL.DataRetriever.clsProyecto objProyecto = new Ekilibrate.BL.DataRetriever.clsProyecto(_lifetimeScope); Ekilibrate.Model.Entity.Administrador.clsProyecto dProyecto = new Ekilibrate.Model.Entity.Administrador.clsProyecto(); dProyecto = await objProyecto.GetProyecto(ProyectoId); List <Ekilibrate.Model.Entity.Proyecto.clsGrupo> ListaGrupos = new List <Ekilibrate.Model.Entity.Proyecto.clsGrupo>(); //if (dProyecto.CrearUsuarios) //{ if (dProyecto.Estado == EstadoProyectoCreacionParticipantes) { //Crear Grupos Ekilibrate.ad.Administrador.clsGrupo adGrupo = new Ekilibrate.ad.Administrador.clsGrupo(_lifetimeScope); var Grupos = Data.GroupBy(test => test.Grupo) .Select(grp => grp.First()) .ToList(); foreach (var item in Grupos) { if (item.Grupo != null && item.Grupo.Length > 0) { Ekilibrate.Model.Entity.Proyecto.clsGrupo dGrupo = await CrearGrupo(ProyectoId, item); ListaGrupos.Add(dGrupo); } } //Crear Participante foreach (var item in Data) { item.Id = await CrearPersona(item); //Insertar Participante await CrearParticipante(ProyectoId, item, ListaGrupos); } if (dProyecto.TipoProyectoId == TipoProyectoTransform) { //Asociar compas foreach (var item in Data) { if (item.Compa.HasValue) { Ekilibrate.ad.Participante.clsParticipante objParticipante = new Ekilibrate.ad.Participante.clsParticipante(_lifetimeScope); Ekilibrate.Model.Entity.Participante.clsParticipanteBase dParticipante = new Model.Entity.Participante.clsParticipanteBase(); dParticipante.Id = item.Id; dParticipante.Compa = Data.Where(x => x.No == item.Compa).First().Id; await objParticipante.AsignarCompa(dParticipante); } } } } else { throw new FaultException("El estado actual del proyecto no permite la acción solicitada."); } //} //else // throw new FaultException("La parametrización del proyecto no admite carga de usuarios por Excel, comuníquese con el administrador del proyecto."); }
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); } }