/// <summary> /// Recupera las reservas desde un archivo XML. /// </summary> /// <returns>Una coleccion con las reservas /// <param>El nombre del archivo.</param> public static RegistroReservas RecuperarXml() { var toret = new RegistroReservas(); var doc = XDocument.Load(@"C:\Users\ivand\OneDrive\Escritorio\gestionHotel\Hotel\ReservasHotel\ReservasHotel\bin\Debug\registro_reservas.xml"); var reservasElement = doc.Root.Elements("reserva"); foreach (XElement reservaElement in reservasElement) { XElement clienteElement = reservaElement.Element("cliente"); Cliente cliente = new Cliente( (string)clienteElement.Element("nombre"), (string)clienteElement.Element("dni"), (int)clienteElement.Element("telefono"), (string)clienteElement.Element("email"), (string)clienteElement.Element("direccion") ); XElement habitacionElement = reservaElement.Element("habitacion"); Habitacion habitacion = new Habitacion((string)habitacionElement.Element("tipo"), (string)habitacionElement.Element("fechaReserva"), (int)habitacionElement.Attribute("id"), (string)habitacionElement.Element("fechaRenovacion"), (string)habitacionElement.Element("comodidades")); var reserva = new Reserva(habitacion, cliente, (DateTime)reservaElement.Element("fechaEntrada"), (DateTime)reservaElement.Element("fechaSalida"), (bool)reservaElement.Element("garaje"), (double)reservaElement.Element("tarifa")); toret.Add(reserva); Console.WriteLine(reserva); } return(toret); }
/// <summary> /// Guarda la lista de las reservas como XML. /// <param>El nombre del archivo.</param> /// </summary> public static void GuardarXml(string archivo, RegistroReservas reservas) { var doc = new XDocument(); var root = new XElement("reservas"); foreach (Reserva reserva in reservas) { root.Add( new XElement("reserva", new XAttribute("id", reserva.IdReserva), new XElement("cliente", new XElement("nombre", reserva.Cliente.Nombre), new XElement("dni", reserva.Cliente.Dni), new XElement("telefono", reserva.Cliente.Telefono), new XElement("email", reserva.Cliente.Email), new XElement("direccion", reserva.Cliente.Direccion) ), new XElement("habitacion", new XAttribute("id", reserva.Habitacion.Identificador), new XElement("tipo", reserva.Habitacion.Tipo), new XElement("fechaReserva", reserva.Habitacion.FechaReserva), new XElement("fechaRenovacion", reserva.Habitacion.FechaRenovacion), new XElement("comodidades", reserva.Habitacion.Comodidades) ), new XElement("fechaEntrada", reserva.FechaEntrada.ToString("yyyy/MM/dd HH:mm:ss")), new XElement("fechaSalida", reserva.FechaSalida.ToString("yyyy/MM/dd HH:mm:ss")), new XElement("garaje", reserva.UsaGaraje), new XElement("tarifa", reserva.TarifaDia, new XAttribute("iva", Reserva.Iva)), new XElement("total", reserva.calcularTotal()) ) ); } doc.Add(root); doc.Save(archivo); }