private async void AddNomina(CandidatoExpediente candidato, int idExpediente) { var idExpedienteNomina = this.configuracionGlobal?.Configuration <int>("ItemDocumentoIdNomina"); if (idExpedienteNomina != idExpediente) { return; } var nominasDisponibles = candidato.ExpedientesArchivos.Count(e => e.File == null && e.ExpedienteId == idExpediente); if (nominasDisponibles > 0) { return; } var expedienteArchivo = new ExpedienteArchivo { File = null, // CandidatoExpedienteId = candidato.CandidatoDetalle.CandidatoExpediente.Id, ExpedienteId = idExpediente }; candidato.ExpedientesArchivos?.Add(expedienteArchivo); }
public ActionResult AgregarArchivo(HttpPostedFileBase archivo, int IdEx, string Nombre) { ViewBag.IdExpediente = IdEx; Archivos archi = new Archivos(); archi.Nombre = Nombre; ExpedienteArchivo Exparchi = new ExpedienteArchivo(); // Grabar en Base de datos el Archivo! Exparchi.IdArchivo = BD.InsertarArchivo(archi); Exparchi.Expediente = IdEx; BD.InsertarExpeArchivo(Exparchi); if (archivo.ContentLength > 0) { string extension = Path.GetExtension(archivo.FileName); var path = Server.MapPath("~/Content/Archivos/") + Nombre + archi.IdArchivo + "." + extension; archivo.SaveAs(path); } return(RedirectToAction("ABMExpedientes")); }
public async Task <FileUpload> AddExpedienteArchivo( int idRequisicion, int idCandidato, int idExpediente, FileUpload fileUpload, int?idExpedienteArchivo = null) { fileUpload = await this.repository.AddAsync(fileUpload) .ConfigureAwait(false); var candidato = await this.candidatoRepository.Single(new CandidatoSpecification(idCandidato)) .ConfigureAwait(false); var detalle = candidato.CandidatoDetalle; if (detalle.Id == 0) { detalle.CandidatoId = idCandidato; await this.candidatoDetalleRepository.AddAsync(detalle) .ConfigureAwait(false); candidato = await this.candidatoRepository.Single(new CandidatoSpecification(idCandidato)) .ConfigureAwait(false); } if (candidato.CandidatoDetalle.CandidatoExpediente.Id == 0) { candidato.CandidatoDetalle.CandidatoExpediente.Id = candidato.CandidatoDetalle.Id; await this.candidatoExpedienteRepository.AddAsync(candidato.CandidatoDetalle.CandidatoExpediente) .ConfigureAwait(false); } var candidatoExpediente = candidato.CandidatoDetalle.CandidatoExpediente ?? new CandidatoExpediente { CandidatoDetalleId = candidato.CandidatoDetalle.Id, ExpedientesArchivos = new List <ExpedienteArchivo>() }; var expedienteArchivo = idExpedienteArchivo == null ? candidatoExpediente?.ExpedientesArchivos?.FirstOrDefault( e => e.ExpedienteId == idExpediente) : candidatoExpediente?.ExpedientesArchivos?.FirstOrDefault( e => e.ExpedienteId == idExpediente && e.Id == idExpedienteArchivo); if (expedienteArchivo != null) { expedienteArchivo.File = fileUpload; await this.expedienteArchivoRepository.UpdateAsync(expedienteArchivo) .ConfigureAwait(false); } else { if (candidatoExpediente.ExpedientesArchivos == null) { candidatoExpediente.ExpedientesArchivos = new List <ExpedienteArchivo>(); } expedienteArchivo = new ExpedienteArchivo { File = fileUpload, ExpedienteId = idExpediente }; candidatoExpediente.ExpedientesArchivos.Add(expedienteArchivo); } if (candidatoExpediente.Id == 0) { candidatoExpediente = await this.candidatoExpedienteRepository.AddAsync(candidatoExpediente) .ConfigureAwait(false); } this.AddNomina(candidatoExpediente, expedienteArchivo.ExpedienteId.Value); await this.candidatoExpedienteRepository.UpdateAsync(candidatoExpediente) .ConfigureAwait(false); return(fileUpload); }