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); }
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); }
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(); } }