Esempio n. 1
0
        async Task <Int32> IDataInjector.CreateProyecto(Ekilibrate.Model.Entity.Administrador.clsProyecto Data)
        {
            using (var scope = Ekilibrate.Data.Access.Common.ContainerConfig.ProxyContainer.BeginLifetimeScope("a"))
            {
                try
                {
                    var objController = new Ekilibrate.BL.Controller.clsProyecto(scope);
                    var result        = await objController.Create(Data);

                    var DBContext = scope.Resolve <DBTrnContext>();
                    DBContext.CommitTransaction();
                    return(result);
                }
                catch (FaultException ex)
                {
                    throw ex;
                }
                catch (Exception ex)
                {
                    var objController = new Ekilibrate.BL.Common.clsLog(scope);
                    objController.GuardarLog(ex);
                    throw new FaultException("Error al registrar los datos del proyecto.");
                }
            }
        }
Esempio n. 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.");
        }
        public async Task <ActionResult> Update([DataSourceRequest] DataSourceRequest request, Ekilibrate.Model.Entity.Administrador.clsProyecto model)
        {
            try
            {
                model.HoraFinConsultas    = model.DHoraFinConsultas.TimeOfDay;
                model.HoraInicioConsultas = model.DHoraInicioConsultas.TimeOfDay;
                model.DuracionConsultas   = model.DDuracionConsultas.TimeOfDay;

                if (model != null && ModelState.IsValid)
                {
                    using (var scope = EkilibrateUI.Autofac.ContainerConfig.ProxyContainer.BeginLifetimeScope())
                    {
                        var middleTier = scope.Resolve <Ekilibrate.Model.Services.Administrador.IDataInjector>();
                        await middleTier.UpdateProyecto(model);
                    }
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError(string.Empty, ex.Message);
            }
            return(Json(new[] { model }.ToDataSourceResult(request, ModelState)));
        }
Esempio n. 4
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);
            }
        }