Example #1
0
        private async Task <Ekilibrate.Model.Entity.Proyecto.clsGrupo> CrearGrupo(int ProyectoId,
                                                                                  Ekilibrate.Model.Entity.Participante.clsParticipante item)
        {
            Ekilibrate.ad.Administrador.clsGrupo      adGrupo = new Ekilibrate.ad.Administrador.clsGrupo(_lifetimeScope);
            Ekilibrate.Model.Entity.Proyecto.clsGrupo dGrupo  = await adGrupo.GetByNombre(item.Grupo, ProyectoId);

            if (dGrupo == null)
            {
                dGrupo            = new Ekilibrate.Model.Entity.Proyecto.clsGrupo();
                dGrupo.Nombre     = item.Grupo;
                dGrupo.ProyectoId = ProyectoId;
                dGrupo.Id         = await adGrupo.Insert(dGrupo);
            }

            return(dGrupo);
        }
Example #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.");
        }