Table of Contents

Silently updating the timing of a booking

The example below shows how the timing of a booking can be changed without user interaction by means of an Automation script.

Note

The timing of events that have already been executed cannot be changed.

using System;
using Skyline.DataMiner.Library.Solutions.SRM;
using Skyline.DataMiner.Library.Solutions.SRM.Model.ReservationAction;
using Skyline.DataMiner.Automation;

public class Script
{
 public static void Run(Engine engine)
 {
 // Replace with reservation guid
 var reservationId = Guid.NewGuid();

 // Replace with Element Name of the Booking Manager
 string bookingManagerElementName = "Booking Manager";

 // Replace with expected timing
 DateTime start = DateTime.UtcNow.AddHours(2);
 DateTime end = start.AddHours(4);
 TimeSpan preRoll = TimeSpan.FromMinutes(5);
 TimeSpan postRoll = TimeSpan.FromMinutes(5);

 var reservationInstance = SrmManagers.ResourceManager.GetReservationInstance(reservationId);

 var bookingManager = new BookingManager(engine,
 engine.FindElement(bookingManagerElementName));

 var newTiming = new ChangeTimeInputData
 {
 StartDate = start,
 EndDate = end,
 PreRoll = preRoll,
 PostRoll = postRoll,
 IsSilent = true
 };

 var result = bookingManager.TryChangeTime(engine, ref reservationInstance, newTiming);
 }
}