public ActionResult Post([FromBody] FileDto dto) { try { if (dto == null) { return(Json(new Respuesta("File a guardar nulo"), StatusCodes.Status400BadRequest)); } var existente = _context.File.Where(x => x.Codigo == dto.Codigo).FirstOrDefault(); if (existente != null) { return(Json(new Respuesta("Un file con codigo '" + dto.Codigo + "' ya existe. Elegir otro código."), StatusCodes.Status400BadRequest)); } List <string> errores = new List <string>(); if (!FileDto.Validar(dto, out errores)) { return(Json(new Respuesta("Error al crear file: </br>" + Utils.listaStringsAListaHtml(errores)), StatusCodes.Status400BadRequest)); } /* * if (!ModelState.IsValid) { * string errores = Utils.getHtmlStringErroresModelState(ModelState); * return Json(new Respuesta("Error al guardar file: </br>" + errores), StatusCodes.Status400BadRequest); * }*/ var dbo = FileDto.GenerarDbo(dto); _context.File.Add(dbo); _context.SaveChanges(); return(Json(dbo.IdFile)); } catch (Exception ex) { return(Json(new Respuesta("", ex), StatusCodes.Status500InternalServerError)); } }
public ActionResult PutFileAndServices(int id, [FromBody] FileDto dto) { using (var transaction = _context.Database.BeginTransaction()) { try { var encontrado = _context.File.Include(f => f.IdClienteNavigation).Include(f => f.IdBibliaNavigation).Include(x => x.Servicio).Where(x => x.IdFile == id).FirstOrDefault(); if (encontrado == null) { transaction.Rollback(); return(Json(new Respuesta("El file a actualizar no existe"), StatusCodes.Status500InternalServerError)); } else { var obj = FileDto.GenerarDbo(dto); encontrado.Codigo = obj.Codigo; encontrado.IdBiblia = obj.IdBiblia; encontrado.Descripcion = obj.Descripcion; encontrado.IdCliente = obj.IdCliente; //encontrado.Servicio = obj.Servicio; List <int> sobrantes = new List <int>(); foreach (var s in encontrado.Servicio) { sobrantes.Add(s.IdServicio); } foreach (var s in obj.Servicio) { var servEncontrado = _context.Servicio.Where(x => x.IdServicio == s.IdServicio).FirstOrDefault(); if (servEncontrado == null) { s.IdFile = id; _context.Servicio.Add(s); } else { sobrantes.Remove(servEncontrado.IdServicio); servEncontrado.Nombre = s.Nombre; servEncontrado.HoraRecojo = s.HoraRecojo; servEncontrado.HoraSalida = s.HoraSalida; servEncontrado.Vuelo = s.Vuelo; servEncontrado.Pasajeros = s.Pasajeros; servEncontrado.Vr = s.Vr; servEncontrado.Tc = s.Tc; servEncontrado.Hotel = s.Hotel; servEncontrado.IdProveedor = s.IdProveedor; servEncontrado.Observaciones = s.Observaciones; servEncontrado.Ciudad = s.Ciudad; servEncontrado.NombrePasajero = s.NombrePasajero; servEncontrado.Tren = s.Tren; servEncontrado.Alm = s.Alm; servEncontrado.Transporte = s.Transporte; servEncontrado.Hotel = s.Hotel; _context.Servicio.Update(servEncontrado); } } //borrando sobrantes foreach (var a in sobrantes) { var ssobrante = _context.Servicio.Where(x => x.IdServicio == a).FirstOrDefault(); _context.Servicio.Remove(ssobrante); } _context.SaveChanges(); var devolucion = FileDto.GenerarDto(encontrado); transaction.Commit(); return(Json(devolucion)); } } catch (Exception ex) { transaction.Rollback(); return(Json(new Respuesta("", ex), StatusCodes.Status500InternalServerError)); } } }