示例#1
0
        public async Task Create(MapasRuta model)
        {
            try
            {
                if (model.claveAutores != null)
                {
                    var mapa = _db.DbSetMapasRutas.Add(model);
                    await _db.SaveChangesAsync();

                    var estatusComunidad = await _db.DbSetComunidades.Where(e => e.ComunidadId == model.idCP).AsNoTracking().Select(x => x.Estado).FirstOrDefaultAsync();

                    if (model.Estatus.Equals("Aprobado") && estatusComunidad)
                    {
                        //Solo se pueden hacer operaciones si la comunidad esta activa
                        await repo.Create("CP", "MapasRuta", model.Nombre, "indexCP.html#/detallesMapaRuta/" + mapa.MapaId, Convert.ToString(mapa.MapaId));
                    }

                    Autores autor = new Autores();
                    foreach (var clave in model.claveAutores)
                    {
                        autor.clave         = clave;
                        autor.ContenidoId   = mapa.MapaId;
                        autor.idOC          = 1;
                        autor.FechaRegistro = DateTime.Now;
                        _db.DbSetAutores.Add(autor);
                        await _db.SaveChangesAsync();
                    }
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
        public async Task Create(EstadoArte model)
        {
            try
            {
                if (model.claveAutores != null)
                {
                    var arte = _db.DbSetEstadoArte.Add(model);
                    await _db.SaveChangesAsync();

                    //Creacion de la notificacion de nuevo OC
                    var estatusComunidad = await _db.DbSetComunidades.Where(e => e.ComunidadId == model.idCP).AsNoTracking().Select(x => x.Estado).FirstOrDefaultAsync();

                    if (model.Estado.Equals("Aprobado") && estatusComunidad)
                    {
                        await repo.Create("CP", "EstadoArte", arte.Nombre, "indexCP.html#/detallesEstadoArte/" + arte.EstadoArteId, Convert.ToString(arte.EstadoArteId));
                    }

                    Autores autor = new Autores();
                    foreach (var clave in model.claveAutores)
                    {
                        autor.clave         = clave;
                        autor.ContenidoId   = arte.EstadoArteId;
                        autor.idOC          = 2;
                        autor.FechaRegistro = DateTime.Now;
                        _db.DbSetAutores.Add(autor);
                        await _db.SaveChangesAsync();
                    }
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
        public async Task Create(TemasInnovacion model)
        {
            try
            {
                if (model.claveAutores != null)
                {
                    var tema = _db.DbSetTemasInnovacion.Add(model);
                    await _db.SaveChangesAsync();

                    //Creacion de la notificacion de nuevo OC
                    var estatusComunidad = await _db.DbSetComunidades.Where(e => e.ComunidadId == model.idCP).AsNoTracking().Select(x => x.Estado).FirstOrDefaultAsync();

                    if (model.Estado.Equals("Aprobado") && estatusComunidad)
                    {
                        //Solo se pueden hacer operaciones si la comunidad esta activa
                        await repo.Create("CP", "TemasInnovacion", tema.Nombre, "indexCP.html#/detallesTemas/" + tema.TemaId, Convert.ToString(model.TemaId));
                    }

                    Autores autor = new Autores();
                    foreach (var clave in model.claveAutores)
                    {
                        autor.clave         = clave;
                        autor.ContenidoId   = tema.TemaId;
                        autor.idOC          = 6;
                        autor.FechaRegistro = DateTime.Now;
                        _db.DbSetAutores.Add(autor);
                        await _db.SaveChangesAsync();
                    }
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
        public async Task Create(PlanAnual model)
        {
            try
            {
                if (model.claveAutores != null)
                {
                    var plan = _db.DbSetPlanAnual.Add(model);
                    await _db.SaveChangesAsync();

                    var estatusComunidad = await _db.DbSetComunidades.Where(e => e.ComunidadId == model.idCP).AsNoTracking().Select(x => x.Estado).FirstOrDefaultAsync();

                    if (model.Estado.Equals("Aprobado") && estatusComunidad)
                    {
                        //Los parametros son: moduloid, id del oc (en este caso son strings), descripcion, liga del detalle del oc
                        await repo.Create("CP", "PlanesAnuales", plan.Nombre, "indexCP.html#/detallesPlanAnual/" + plan.PlanId, Convert.ToString(plan.PlanId));
                    }


                    Autores autor = new Autores();
                    foreach (var clave in model.claveAutores)
                    {
                        autor.clave         = clave;
                        autor.ContenidoId   = plan.PlanId;
                        autor.idOC          = 5;
                        autor.FechaRegistro = DateTime.Now;
                        _db.DbSetAutores.Add(autor);
                        await _db.SaveChangesAsync();
                    }
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
        public async Task UpdateEstado(IdeaInnovadora model)
        {
            try
            {
                //if (model.EstadoFlujoId == 10)
                //{
                //    model.FechaValidacion = DateTime.Now;
                //}
                var _model = await dbGI.DbSetIdeaInnovadora.FirstOrDefaultAsync(e => e.IdeaInnovadoraId == model.IdeaInnovadoraId);

                if (_model != null)
                {
                    _model.EstadoFlujoId = model.EstadoFlujoId;
                    _model.TipoAcceso    = model.TipoAcceso;
                    if (model.EstadoFlujoId == 10)
                    {
                        _model.FechaValidacion = DateTime.Now;
                    }
                    await dbGI.SaveChangesAsync();

                    if (model.TipoAcceso == 1 && model.EstadoFlujoId == 10)
                    {
                        NuevoOCRepository nuevo = new NuevoOCRepository();
                        await nuevo.Create(new NuevoOC("GI", "II", _model.NombreIdea,
                                                       "indexGI.html#/buscarIdeaInnovadoraDetalles/" + _model.IdeaInnovadoraId,
                                                       _model.IdeaInnovadoraId.ToString()
                                                       ));
                    }
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
示例#6
0
                                                     [Authorize] public async Task <IHttpActionResult> Create([FromBody] NuevoOC model)
                                                     {
                                                         if (!ModelState.IsValid)
                                                         {
                                                             return(BadRequest(ModelState));
                                                         }

                                                         try { log.Info(new MDCSet(this.ControllerContext.RouteData));
                                                               await _entityRepo.Create(model);

                                                               return(Ok("Registro creado exitosamente!")); }
                                                         catch (Exception e) { log.Error(new MDCSet(this.ControllerContext.RouteData), e);
                                                                               return(InternalServerError(e)); }
                                                     }
示例#7
0
        /// <summary>
        /// Asocia el registro de un becario con un investigador
        /// </summary>
        /// <returns></returns>
        public async Task ActualizaRegistroBecaEmpleado(int id, string clave)
        {
            try
            {
                var _model = await _dbch.BecarioExternoINEEL
                             .FirstOrDefaultAsync(e => e.BecarioId == id);

                if (_model != null)
                {
                    var notificacion = await _dbgen.dbSetNuevoOC.Where(e => e.OcsId.Equals("BecarioExterno") && e.IdExterno == _model.BecarioId + "").AsNoTracking().FirstOrDefaultAsync();;
                    if (clave == "null")   //La clave sera nula cuando el registro sea desasociado al empleado
                    {
                        clave = null;
                    }
                    if (notificacion == null)
                    {
                        NuevoOCRepository repo = new NuevoOCRepository();
                        await repo.Create("CH", "BecarioExterno", _model.NombreBecario, "indexCH.html#/InformeBecarioDetails/" + _model.BecarioId, Convert.ToString(_model.BecarioId));
                    }
                    if (notificacion != null && clave == null)
                    {
                        NuevoOCRepository repo = new NuevoOCRepository();
                        await repo.Delete(notificacion.NuevoOCId);
                    }

                    _model.ClavePersona = clave;
                    await _dbch.SaveChangesAsync();
                }
                else
                {
                    throw new ApplicationException("Error al asociar el registro con el empleado");
                }

                if (clave != null)
                {
                    PersonasRepository prep = new PersonasRepository();
                    Personas           p    = await prep.GetByClave(clave);

                    p.ultimaActualizacion = DateTime.Now;
                    await prep.Update(p);
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
示例#8
0
        public async Task Update(TecnologiaLicenciada model, String clavePersona, String nombrePersona)
        {
            try
            {
                var _model = await dbGI.DbSetTecnologiaLicenciada.FirstOrDefaultAsync(e => e.TecnologiaLicenciadaId == model.TecnologiaLicenciadaId);

                if (_model != null)
                {
                    if (model.Gerencias.Count > 0)
                    { //Se remueven las viejas gerencias
                        var oldGerencias = await dbGI.DbSetTecnologiaLicenciadaGerencia.Where(e => e.TecnologiaLicenciadaId == model.TecnologiaLicenciadaId).ToListAsync();

                        if (oldGerencias.Count > 0)
                        {
                            dbGI.DbSetTecnologiaLicenciadaGerencia.RemoveRange(oldGerencias);
                        }
                        dbGI.DbSetTecnologiaLicenciadaGerencia.AddRange(model.Gerencias);
                    }

                    //Verificamos la existencia de una notificacion como nuevo OC
                    var infoAgregada = await dbGEN.dbSetNuevoOC.Where(e => e.descripcion.Equals(_model.NombreTecnologiaLic)).FirstOrDefaultAsync();

                    if (infoAgregada != null && model.EstadoLicenciamientoId != 1)
                    {
                        NuevoOCRepository repo = new NuevoOCRepository();
                        await repo.Delete(infoAgregada.NuevoOCId);
                    }
                    if (infoAgregada == null && model.EstadoLicenciamientoId == 1)  //En caso de estar vigente la tecnologia se crea una notificacion de nuevo OC
                    {
                        NuevoOCRepository nuevo = new NuevoOCRepository();
                        await nuevo.Create(new NuevoOC("GI", "STL", model.NombreTecnologiaLic,
                                                       "indexGI.html#/detallestecnologiaLicenciada/" + model.TecnologiaLicenciadaId,
                                                       model.TecnologiaLicenciadaId.ToString()
                                                       ));
                    }

                    dbGI.Entry(_model).CurrentValues.SetValues(model);
                    await dbGI.SaveChangesAsync();

                    await this.AddBitacoraMovimiento(model, clavePersona, nombrePersona, "Actualización de STL");
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
        public async Task Create(Comunidad model)
        {
            try
            {
                var entities = _db.DbSetComunidades.Add(model);
                await _db.SaveChangesAsync();

                var id = entities.ComunidadId;

                NuevoOCRepository oc = new NuevoOCRepository();
                //Los parametros son modulo, id del oc, descripcion, liga del detalle del oc
                NuevoOC nuevoOC = new NuevoOC("CP", "CP", model.Descripcion, "indexCP.html#/homeComunidad/" + model.ComunidadId);
                await oc.Create(nuevoOC);

                Miembros lider = new Miembros();
                lider.Aceptacion      = false;
                lider.FechaAlta       = DateTime.Now;
                lider.FechaAceptacion = DateTime.Now;
                lider.idPersonas      = model.claveLider;
                lider.rolId           = model.claveRolLider;
                lider.idCP            = id;
                lider.nombrePersona   = model.nombreLider;
                lider.estado          = true;


                _db.DbSetMiembros.Add(lider);
                await _db.SaveChangesAsync();


                Miembros secretario = new Miembros();
                secretario.Aceptacion      = false;
                secretario.FechaAlta       = DateTime.Now;
                secretario.FechaAceptacion = DateTime.Now;
                secretario.idPersonas      = model.claveSecretario;
                secretario.rolId           = model.claveRolSecretario;
                secretario.idCP            = id;
                secretario.nombrePersona   = model.nombreSecretario;
                secretario.estado          = true;

                _db.DbSetMiembros.Add(secretario);
                await _db.SaveChangesAsync();
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
示例#10
0
        /// <summary>
        /// Crea un lineamiento
        /// </summary>
        /// <param name="Lineamientos">objeto con los datos para crear</param>
        public async Task Create(Lineamientos model)
        {
            try
            {
                var registro = _db.DbSetLineamientos.Add(model);
                await _db.SaveChangesAsync();

                NuevoOCRepository ocrepo = new NuevoOCRepository();
                //Los parametros son: moduloid, id del oc (en este caso son strings), descripcion, liga del detalle del oc
                NuevoOC nuevoOC = new NuevoOC("CP", "LineamientosCP", registro.Nombre, "indexCP.html#/consultaLineamientos/");
                await ocrepo.Create(nuevoOC);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
示例#11
0
        /// <summary>
        /// Actualiza un becario
        /// </summary>
        /// <param name="model">becario con los nuevos valores</param>
        /// <returns></returns>
        public async Task Update(BecarioExternoINEEL model)
        {
            try
            {
                var _model = await _dbch.BecarioExternoINEEL
                             .FirstOrDefaultAsync(e => e.BecarioId == model.BecarioId);

                if (_model != null)
                {
                    if (model.Adjunto != null)
                    {
                        Adjunto key = await new AdjuntoRepository().CreateAd(model.Adjunto);
                        model.AdjuntoId = key.AdjuntoId;
                    }

                    if (model.EstadoFlujoId == 3)
                    {
                        NuevoOCRepository repo = new NuevoOCRepository();
                        await repo.Create("CH", "BecarioDirigido", _model.NombreBecario, "indexCH.html#/InformeBecarioDetails/" + _model.BecarioId, Convert.ToString(_model.BecarioId));
                    }
                    else
                    {
                        var notificacion = await _dbgen.dbSetNuevoOC.Where(e => e.OcsId.Equals("BecarioDirigido") && e.IdExterno == _model.BecarioId + "").AsNoTracking().FirstOrDefaultAsync();;
                        if (notificacion != null)
                        {
                            NuevoOCRepository repo = new NuevoOCRepository();
                            await repo.DeleteId("BecarioDirigido", _model.BecarioId + "");
                        }
                    }

                    _dbch.Entry(_model).CurrentValues.SetValues(model);
                    await _dbch.SaveChangesAsync();
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
示例#12
0
        public async Task Create(TecnologiaLicenciada model, string clavePersona, string nombrePersona)
        {
            try
            {
                dbGI.DbSetTecnologiaLicenciada.Add(model);
                await dbGI.SaveChangesAsync();

                await this.AddBitacoraMovimiento(model, clavePersona, nombrePersona, "Creación del registro");

                if (model.EstadoLicenciamientoId == 1) //En caso de estar vigente la tecnologia se crea una notificacion de nuevo OC
                {
                    NuevoOCRepository nuevo = new NuevoOCRepository();
                    await nuevo.Create(new NuevoOC("GI", "STL", model.NombreTecnologiaLic,
                                                   "indexGI.html#/detallestecnologiaLicenciada/" + model.TecnologiaLicenciadaId,
                                                   model.TecnologiaLicenciadaId.ToString()
                                                   ));
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }