public async Task <IActionResult> Post([FromForm] AddEntregaTareaDTO entregaTarea) { if (Request.Form.Files.Count > 0) { return(Ok(await _cursoManager.addEntregaTarea(entregaTarea, Request.Form.Files[0]))); } else { return(Ok(await _cursoManager.addEntregaTarea(entregaTarea, null))); } }
public async Task <ApiResponse <AddEntregaTareaDTO> > addEntregaTarea(AddEntregaTareaDTO entregaTarea, IFormFile archivoEntrega) { ApiResponse <AddEntregaTareaDTO> response = new ApiResponse <AddEntregaTareaDTO>(); try { EntregaTarea entregaUpdate = _context.EntregasTarea.SingleOrDefault(et => et.UsuarioId == entregaTarea.UsuarioId && et.FacultadId == entregaTarea.FacultadId && et.ContenedorTareaId == entregaTarea.ContenedorTareaId); if (entregaUpdate != null) { entregaUpdate.FechaEntrega = Convert.ToDateTime(entregaTarea.FechaEntrega); Archivo archivoUpdate = await _context.Archivos.FirstAsync(a => a.Id == entregaTarea.ArchivoId); archivoUpdate.Extension = Path.GetExtension(archivoEntrega.FileName).Substring(1); archivoUpdate.Nombre = Path.GetFileNameWithoutExtension(archivoEntrega.FileName); _context.UploadS3(archivoEntrega, "componentFile", archivoUpdate.Nombre + "." + archivoUpdate.Extension); archivoUpdate.Ubicacion = "componentFile/" + archivoUpdate.Nombre + "." + archivoUpdate.Extension; await _context.SaveChangesAsync(); response.Data = entregaTarea; } else { EntregaTarea entrega = new EntregaTarea(); entrega.Calificacion = 0; entrega.ContenedorTareaId = entregaTarea.ContenedorTareaId; entrega.UsuarioId = entregaTarea.UsuarioId; entrega.FacultadId = entregaTarea.FacultadId; entrega.Calificacion = 0; entrega.FechaEntrega = Convert.ToDateTime(entregaTarea.FechaEntrega); entrega.Estado = "Entregado"; _context.EntregasTarea.Add(entrega); await _context.SaveChangesAsync(); int idEntregaTarea = entrega.Id; Archivo a = new Archivo(); a.EntregaTareaId = idEntregaTarea; a.Extension = Path.GetExtension(archivoEntrega.FileName).Substring(1); a.Nombre = Path.GetFileNameWithoutExtension(archivoEntrega.FileName); _context.UploadS3(archivoEntrega, "componentFile", a.Nombre + "." + a.Extension); a.Ubicacion = "componentFile/" + a.Nombre + "." + a.Extension; _context.Archivos.Add(a); await _context.SaveChangesAsync(); response.Data = entregaTarea; } } catch (Exception e) { response.Success = false; response.Status = 500; response.Message = e.Message; } return(response); }