public async Task <FileUpload> AddRequisicionArchivo(int idRequisicion, int idExpediente, FileUpload fileUpload) { fileUpload = await this.repository.AddAsync(fileUpload) .ConfigureAwait(false); var requisicionDetalle = await this.requisicionRepository.Single( new RequisicionDetalleSpecification(idRequisicion)) .ConfigureAwait(false); var requisicionArchivo = requisicionDetalle.Propuesta.PropuestaArchivos.FirstOrDefault(e => e.ExpedienteId == idExpediente); if (requisicionArchivo != null) { requisicionArchivo.File = fileUpload; await this.requisicionArchivoRepository.UpdateAsync(requisicionArchivo) .ConfigureAwait(false); } else { requisicionArchivo = new RequisicionArchivo { File = fileUpload, ExpedienteId = idExpediente }; requisicionDetalle.Propuesta.PropuestaArchivos.Add(requisicionArchivo); await this.requisicionRepository.UpdateAsync(requisicionDetalle) .ConfigureAwait(false); } return(fileUpload); }
public async Task <ActionResult <bool> > CandidatoDelete(int idRequisicion, int idFile) { try { var requisicion = await this.requisicionDetalleRepository.Single( new RequisicionDetalleSpecification(idRequisicion)) .ConfigureAwait(false); RequisicionArchivo requisicionArchivo = null; if (requisicion.Propuestas != null) { foreach (var requisicionPropuesta in requisicion.Propuestas) { requisicionArchivo = requisicionPropuesta.PropuestaArchivos.FirstOrDefault( p => p?.File != null && p.File.Id == idFile); if (requisicionArchivo != null) { break; } } } await this.RemoveFileAsync(idFile); if (requisicionArchivo != null) { requisicionArchivo.File = null; await this.requisicionArchivoRepository.UpdateAsync(requisicionArchivo) .ConfigureAwait(false); return(this.Ok()); } return(this.NotFound()); } catch (Exception e) { return(this.BadRequest(e.Message)); } }