ReserveCompletedEventArgs.cs 1.7 KB

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