/// <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); } }
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)); }
private void ValidarPedimento(Pedimento pedimento) { //TODO:Agregar otras validaciones a funcion validar pedimento if (pedimento.ArchivoFisico.LongitudArchivo != pedimento.ArchivoFisico.ArchivoBytes.Length) { throw new ArchivoCorruptoException(); } }
public async Task <IHttpActionResult> GetPedimento(int id) { Pedimento pedimento = await db.Pedimentos.FindAsync(id); if (pedimento == null) { return(NotFound()); } return(Ok(pedimento)); }
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)); }
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); }
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)); }
public IEnumerable <Pedimento> TraerPedimentos(Pedimento pedimento, ref Modelo.Compartido.Paginacion paginacion) { throw new NotImplementedException(); }