示例#1
0
 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));
     }
 }
示例#2
0
        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.");
        }
示例#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);
            }
        }