コード例 #1
0
        public async Task <ApiResponse <List <GetEncuestaCursoDTO> > > addEncuestaCurso(AddEncuestaCursoDTO encuestaCurso)
        {
            ApiResponse <List <GetEncuestaCursoDTO> > response = new ApiResponse <List <GetEncuestaCursoDTO> >();

            try
            {
                SeccionCurso sc = await _context.SeccionesCursos.Where(sc => sc.Titulo == "Encuestas" && sc.CursoId == encuestaCurso.IdCurso).FirstOrDefaultAsync();

                Encuesta e = _context.Encuestas.Find(encuestaCurso.IdEncuesta);

                if (sc == null)
                {
                    sc         = new SeccionCurso();
                    sc.CursoId = encuestaCurso.IdCurso;
                    sc.Indice  = 0;
                    sc.Titulo  = "Encuestas";

                    _context.SeccionesCursos.Add(sc);
                    await _context.SaveChangesAsync();
                }

                Componente comp = new Componente();
                comp.Indice         = 0;
                comp.Nombre         = e.Titulo;
                comp.SeccionCursoId = sc.Id;
                comp.Tipo           = "encuesta";

                _context.Componentes.Add(comp);

                await _context.SaveChangesAsync();

                int idComponenete = comp.Id;

                EncuestaCurso enc = new EncuestaCurso();

                enc.ComponenteId = idComponenete;
                //enc.Fecha = encuestaCurso.Fecha;
                enc.IdCurso    = encuestaCurso.IdCurso;
                enc.IdEncuesta = encuestaCurso.IdEncuesta;

                _context.EncuestaCursos.Add(enc);

                await _context.SaveChangesAsync();

                response.Data = _context.EncuestaCursos.Select(f => _mapper.Map <GetEncuestaCursoDTO>(f)).ToList();
            }
            catch (Exception e)
            {
                response.Success = false;
                response.Status  = 500;
                response.Message = e.Message;
            }
            return(response);
        }
コード例 #2
0
        public async Task <ApiResponse <AddComponenteDTO> > addComponente(AddComponenteDTO componente, IFormFile archivo)
        {
            ApiResponse <AddComponenteDTO> response = new ApiResponse <AddComponenteDTO>();

            try
            {
                Componente c = new Componente
                {
                    Indice         = componente.Indice,
                    Nombre         = componente.Nombre,
                    SeccionCursoId = componente.SeccionCursoId,
                    Tipo           = componente.Tipo
                };
                _context.Componentes.Add(c);
                await _context.SaveChangesAsync();

                int idComponente = c.Id;

                switch (c.Tipo)
                {
                case "texto":
                    c.Texto = componente.Texto;
                    Console.WriteLine(c.Texto);
                    break;

                case "imagen":
                    Archivo a = new Archivo
                    {
                        ComponenteId = idComponente,
                        Extension    = Path.GetExtension(archivo.FileName).Substring(1),
                        Nombre       = Path.GetFileNameWithoutExtension(archivo.FileName)
                    };

                    _context.UploadS3(archivo, "componentFile", a.Nombre + "." + a.Extension);
                    a.Ubicacion = "componentFile/" + a.Nombre + "." + a.Extension;

                    _context.Archivos.Add(a);
                    break;

                case "archivo":
                    Archivo i = new Archivo
                    {
                        ComponenteId = idComponente,
                        Extension    = Path.GetExtension(archivo.FileName).Substring(1),
                        Nombre       = Path.GetFileNameWithoutExtension(archivo.FileName)
                    };

                    _context.UploadS3(archivo, "componentFile", i.Nombre + "." + i.Extension);
                    i.Ubicacion = "componentFile/" + i.Nombre + "." + i.Extension;

                    _context.Archivos.Add(i);
                    break;

                case "contenedor":
                    ContenedorTarea contenedorTarea = new ContenedorTarea();

                    contenedorTarea.ComponenteId = idComponente;
                    contenedorTarea.FechaCierre  = Convert.ToDateTime(componente.FechaCierre);
                    _context.ContenedoresTareas.Add(contenedorTarea);
                    break;

                case "comunicado":
                    Comunicado comunicado = new Comunicado
                    {
                        ComponenteId = idComponente,
                        Descripcion  = componente.Comunicado.Descripcion,
                        Titulo       = componente.Comunicado.Titulo
                    };

                    _context.Comunicados.Add(comunicado);
                    break;

                case "encuesta":
                    EncuestaCurso encuesta = new EncuestaCurso
                    {
                        ComponenteId = idComponente,
                        //Fecha = componente.Encuesta.Fecha,
                        IdCurso    = componente.CursoId,
                        IdEncuesta = componente.EncuestaId,
                    };

                    _context.EncuestaCursos.Add(encuesta);
                    break;

                case "calendario":
                    Calendario calendario = new Calendario
                    {
                        ComponenteId = idComponente,
                        IdCurso      = componente.CursoId,
                        Titulo       = componente.Nombre,
                    };

                    _context.Calendarios.Add(calendario);
                    break;
                }

                await _context.SaveChangesAsync();

                response.Data = componente;

                GetCursoDTO curso = _mapper.Map <GetCursoDTO>(_context.Cursos
                                                              .Include(c => c.UsuariosCursos).ThenInclude(uc => uc.Usuario)
                                                              .Include(c => c.SeccionesCurso)
                                                              .First(c => c.SeccionesCurso.Any(s => s.Id == componente.SeccionCursoId)));

                const string q = "\"";

                foreach (GetUsuarioDTO u in curso.Usuarios)
                {
                    EmailManager.SendMail(u.Nombre + ":\nSe ha agregado nuevo material al curso " + curso.Nombre + "\n\nUdelar Online.", u.Correo, _config);
                }
            }
            catch (Exception e)
            {
                response.Success = false;
                response.Status  = 500;
                response.Message = e.Message;
            }

            return(response);
        }
コード例 #3
0
        public void AddEncuesta(EncuestaRequest encuesta)
        {
            var enc = new Encuesta()
            {
                Titulo       = encuesta.Titulo,
                Fecha        = DateTime.Now,
                TipoEncuesta = encuesta.TipoEncuesta
            };

            _context.Encuesta.Add(enc);
            _context.SaveChanges();

            if (encuesta.TipoEncuesta == "Curso")
            {
                var enc_curso = new EncuestaCurso()
                {
                    EncuestaId        = enc.Id,
                    SeccionTemplateId = encuesta.SeccionId,
                    CursoId           = encuesta.FkId
                };
                _context.EncuestaCurso.Add(enc_curso);
                _context.SaveChanges();
            }
            if (encuesta.TipoEncuesta == "Facultad")
            {
                var facultad = _contextoGeneral.Facultad.FirstOrDefault(a => a.Url == encuesta.Facultad);
                if (facultad != null)
                {
                    var enc_facultad = new EncuestaFacultad()
                    {
                        EncuestaId        = enc.Id,
                        FacultadId        = facultad.Id,
                        SeccionTemplateId = encuesta.SeccionId
                    };
                    _context.EncuestaFacultades.Add(enc_facultad);
                    _context.SaveChanges();
                }
            }

            foreach (var preg in encuesta.LstPreguntas)
            {
                var p = new Preguntas()
                {
                    Frase      = preg.Pregunta,
                    TipoCheck  = preg.Opcion,
                    EncuestaId = enc.Id
                };
                _context.Preguntas.Add(p);
                _context.SaveChanges();
            }
            foreach (var resp in encuesta.LstRespuestas)
            {
                var op = new Opciones()
                {
                    Respuesta  = resp.Respuesta,
                    PreguntaId = GetIdPreguntaEncuesta(resp.PreguntaAsociada, enc.Id)
                };
                _context.Opciones.Add(op);
                _context.SaveChanges();
            }
        }