ReserveCompletedEventArgs.cs 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. using System;
  2. namespace Wayne.Lib
  3. {
  4. /// <summary>
  5. /// The EventArgs is used when ...
  6. /// </summary>
  7. public class ReserveCompletedEventArgs<TReserved> : AsyncCompletedEventArgs
  8. {
  9. #region Fields
  10. TReserved reservedObject;
  11. #endregion
  12. #region Construction
  13. /// <summary>
  14. /// Initializes a new instance of the class ReserveCompletedEventArgs where the reservation was successful.
  15. /// </summary>
  16. /// <param name="reservedObject">The reserved object.</param>
  17. /// <param name="userToken">An optional user token.</param>
  18. public ReserveCompletedEventArgs(TReserved reservedObject, object userToken)
  19. : base(true, userToken)
  20. {
  21. this.reservedObject = reservedObject;
  22. }
  23. /// <summary>
  24. /// Initializes a new instance of the class ReserveCompletedEventArgs where the reservation failed.
  25. /// </summary>
  26. /// <param name="userToken">An optional user token.</param>
  27. public ReserveCompletedEventArgs(object userToken)
  28. : base(false, userToken)
  29. {
  30. }
  31. #endregion
  32. #region Properties
  33. /// <summary>
  34. /// The reserved object.
  35. /// </summary>
  36. /// <exception cref="ObjectNotReservedException">There was no reserved object since the reservation failed.</exception>
  37. public TReserved ReservedObject
  38. {
  39. get
  40. {
  41. if (!Success)
  42. throw new ObjectNotReservedException("There was no reserved object of the type " + typeof(TReserved).FullName + " since the reservation failed.");
  43. return reservedObject;
  44. }
  45. }
  46. #endregion
  47. }
  48. }