コード例 #1
0
 public ActionResult Get(int id)
 {
     try {
         var file = _context.File.Include(f => f.IdClienteNavigation).Include(f => f.IdBibliaNavigation).Include(x => x.Servicio).Where(x => x.IdFile == id).FirstOrDefault();
         if (file == null)
         {
             return(Json(new Respuesta("File " + id + " no encontrado"), StatusCodes.Status503ServiceUnavailable));
         }
         else
         {
             return(Json(FileDto.GenerarDto(file)));
         }
     } catch (Exception ex) {
         return(Json(new Respuesta("", ex), StatusCodes.Status500InternalServerError));
     }
 }
コード例 #2
0
        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));
                }
            }
        }