示例#1
0
        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);
        }
示例#2
0
        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"));
        }
示例#3
0
        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);
        }