コード例 #1
0
 /// <summary>
 /// Rutina que inserta en base de datos primero los datos del archivo M
 /// posteriormente manda al FTP el archivo M,
 /// al final también registra en el expediente digital el nombre del archivo y el path
 /// </summary>
 /// <param name="pedimento">Contiene datos y archivo M</param>
 /// <returns></returns>
 public Pedimento InsertarPedimento(Pedimento pedimento)
 {
     ValidarPedimento(pedimento);
     using (TransactionScope transaction = new TransactionScope(TransactionScopeOption.Required))
     {
         //    //primero inserto a la base de datos
         //pedimentoRepositorio.InsertarPedimento();
         //    //crear request de NAS para posterior envío archivo al servidor NAS
         var request = new RecibeArchivoRequest()
         {
             EjecucionValida  = false,
             Item             = ConvertirArchivo(pedimento),
             MensajeError     = "",
             UsuarioEjecucion = ""
         };
         //    //hago llamado a NAS
         var ftp      = ConsultarPedimentoCompletoWS();
         var response = ftp.OperacionArchivo(request);
         //    //Guardo en Base de datos tabla expediente
         //    pedimentoRepositorio.InsertarExpedienteDigital();
         //    //Guardo también la relación entre expediente y pedimento
         //    pedimentoRepositorio.InsertarAsociacionPedimentoExpediente();
         transaction.Complete();
         return(null);
     }
 }
コード例 #2
0
        public async Task <IHttpActionResult> PutPedimento(int id, Pedimento pedimento)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != pedimento.id)
            {
                return(BadRequest());
            }

            db.Entry(pedimento).State = EntityState.Modified;

            try {
                await db.SaveChangesAsync();
            } catch (DbUpdateConcurrencyException) {
                if (!PedimentoExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
コード例 #3
0
 private void ValidarPedimento(Pedimento pedimento)
 {
     //TODO:Agregar otras validaciones a funcion validar pedimento
     if (pedimento.ArchivoFisico.LongitudArchivo != pedimento.ArchivoFisico.ArchivoBytes.Length)
     {
         throw new ArchivoCorruptoException();
     }
 }
コード例 #4
0
        public async Task <IHttpActionResult> GetPedimento(int id)
        {
            Pedimento pedimento = await db.Pedimentos.FindAsync(id);

            if (pedimento == null)
            {
                return(NotFound());
            }

            return(Ok(pedimento));
        }
コード例 #5
0
        public async Task <IHttpActionResult> DeletePedimento(int id)
        {
            Pedimento pedimento = await db.Pedimentos.FindAsync(id);

            if (pedimento == null)
            {
                return(NotFound());
            }

            db.Pedimentos.Remove(pedimento);
            await db.SaveChangesAsync();

            return(Ok(pedimento));
        }
コード例 #6
0
        private Archivo ConvertirArchivo(Pedimento archivo)
        {
            var request = new Archivo()
            {
                ArchivoBytes          = archivo.ArchivoFisico.ArchivoBytes,
                TipoArchivoFiltro     = TipoArchivo.ArchivoM,
                ExtensionArchivo      = archivo.ArchivoFisico.ExtensionArchivo,
                FechaSubida           = archivo.ArchivoFisico.FechaSubida,
                LongitudArchivo       = archivo.ArchivoFisico.LongitudArchivo,
                NombreCompletoArchivo = archivo.ArchivoFisico.NombreCompletoArchivo,
                Patente       = archivo.ArchivoFisico.Patente,
                ExtensionData = archivo.ArchivoFisico.ExtensionData,
                IdCliente     = archivo.ArchivoFisico.IdCliente
            };

            return(request);
        }
コード例 #7
0
        public async Task <IHttpActionResult> PostPedimento(Pedimento pedimento)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.Pedimentos.Add(pedimento);

            try {
                await db.SaveChangesAsync();
            } catch (DbUpdateException) {
                if (PedimentoExists(pedimento.id))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }

            return(CreatedAtRoute("DefaultApi", new { id = pedimento.id }, pedimento));
        }
コード例 #8
0
 public IEnumerable <Pedimento> TraerPedimentos(Pedimento pedimento, ref Modelo.Compartido.Paginacion paginacion)
 {
     throw new NotImplementedException();
 }