Table of Contents

Silently editing a pending booking

If a booking has not yet started, you can use the TryEditBooking method to silently edit its content.

The example below shows how you can use this to update the name of a booking.

using System;
using Skyline.DataMiner.Automation;
using Skyline.DataMiner.Core.SRM;
using Skyline.DataMiner.Core.SRM.Extensions.Reservations;

public class Script
{
   public void Run(Engine engine)
   {
      // to be replaced with reservation guid;
      var reservationId = Guid.Parse("<Reservation ID>");
      var reservation = SrmManagers.ResourceManager.GetReservationInstance(reservationId);

      var bookingManager = reservation.FindBookingManager();
      var bookingData = reservation.GetBookingData();
      bookingData.Description = "new booking description";

      // TryEditBooking is available since 1.2.21. In earlier versions EditBooking can be used as an alternative.
      var result = bookingManager.TryEditBooking(engine, reservation.ID, bookingData, null, null, null, null, out reservation);
   }
}

The example below show how you can use this to update the name and the resource assigned to node 1:

using System;
using System.Linq;
using Skyline.DataMiner.Automation;
using Skyline.DataMiner.Core.SRM;
using Skyline.DataMiner.Core.SRM.Extensions.Reservations;

public class Script
{
   public void Run(Engine engine)
   {
      // to be replaced with reservation guid;
      var reservationId = Guid.Parse("<Reservation ID>");
      var reservation = SrmManagers.ResourceManager.GetReservationInstance(reservationId);

      var bookingManager = reservation.FindBookingManager();
      var bookingData = reservation.GetBookingData();
      bookingData.Description = "new booking description";

      var functionData = reservation.GetFunctionData();
      functionData.Single(x => x.Id == 1 /* Node ID */).SelectedResource = "new resource guid";

      // TryEditBooking is available since 1.2.21. In earlier versions EditBooking can be used as an alternative.
      var result = bookingManager.TryEditBooking(engine, reservation.ID, bookingData, functionData, null, null, null, out reservation);
   }
}