/// <summary>
 /// Parameterless constructor
 /// </summary>
 public ReplayOpen()
 {
     ConnectionIsNotNull = true;
     IsDurable = false;
     IsPersistent = false;
     OutstandingRequestCount = 0;
     OutstandingPreRequestCount = 0;
     Lease = null;
     CreateGuidIsNotNull = false;
     OplockLevel = ReplayModelRequestedOplockLevel.OplockLevelNone;
     OplockStateIsHeld = false;
 }
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="modelDurableHandle">Type of durable handle for this open</param>
        /// <param name="isPersistent">Indicate if the open is persistent</param>
        /// <param name="oplockLevel">Indicate the oplock level</param>
        public ReplayOpen(ReplayModelDurableHandle modelDurableHandle, bool isPersistent, ReplayModelRequestedOplockLevel oplockLevel)
        {
            ConnectionIsNotNull = true;

            if (modelDurableHandle != ReplayModelDurableHandle.NormalHandle)
            {
                IsDurable = true;

                if (modelDurableHandle == ReplayModelDurableHandle.DurableHandleV2Persistent)
                {
                    IsPersistent = isPersistent;
                }
            }

            OutstandingRequestCount = 0;
            OutstandingPreRequestCount = 0;
            Lease = null;
            CreateGuidIsNotNull = false;
            OplockLevel = oplockLevel;
        }