public static MensajeDto Hacer(DbContext context, MensajeDto mensajeDto) { try { context.SaveChanges(); } catch (DbUpdateException e) { var mensaje = MensajeAux(e); mensajeDto = new MensajeDto() { Error = true, MensajeDelProceso = mensaje }; } catch (DbEntityValidationException e) { var mensajeEntity = e.EntityValidationErrors.First() .ValidationErrors.First().ErrorMessage; var mensaje = MensajeAux(e); mensajeDto = new MensajeDto() { Error = true, MensajeDelProceso = mensaje + " " + mensajeEntity }; } catch (Exception e) { var mensaje = MensajeAux(e); mensajeDto = new MensajeDto() { Error = true, MensajeDelProceso = mensaje }; } return mensajeDto; }
// POST: api/Documentos public HttpResponseMessage Post() { DocumentosManagers dm = new DocumentosManagers(); MensajeDto mensaje = null; List<MensajeDto> listadoMensajeArchivos = new List<MensajeDto>(); var request = HttpContext.Current.Request; //Se recupera las variables enviadas desde el formulario var titulo = request["titulo"]; var descripcion = request["descripcion"]; if (request.Files.Count > 0) { var cantidadArchivosSinError = request.Files.Count; foreach (string file in request.Files) { var postedFile = request.Files[file]; using (var binaryReader = new BinaryReader(postedFile.InputStream)) { byte[] fileData = binaryReader.ReadBytes(postedFile.ContentLength); var mensajeCadaUno = dm.guardarDocumento(postedFile.FileName, fileData); if (mensajeCadaUno.Error) { cantidadArchivosSinError -= 1; } listadoMensajeArchivos.Add(mensajeCadaUno); } } string logArchivos = "Ningun mensaje cargado"; bool errorCompleto = false; if (request.Files.Count == 1) { logArchivos = "Archivo cargado"; }else if (cantidadArchivosSinError == request.Files.Count) { logArchivos = "Todos los archivos cargados"; } else if (cantidadArchivosSinError > 0) { logArchivos = "Algunos archivos cargados"; } else { logArchivos = "Algunos archivos cargados"; errorCompleto = true; } mensaje = new MensajeDto() { Error = errorCompleto, MensajeDelProceso = logArchivos, ObjetoDto = listadoMensajeArchivos, Valor = cantidadArchivosSinError.ToString() }; return Request.CreateResponse(HttpStatusCode.Created, mensaje); } else { mensaje = new MensajeDto() { Error = false, MensajeDelProceso = "No se envio ningun archivo" }; return Request.CreateResponse(HttpStatusCode.BadRequest, mensaje); } }