Implements the ability to associate a context with a request.
Inheritance: BackendRequest
        /// <inheritdoc />
        public override bool DataEquals(IRingMasterBackendRequest obj)
        {
            BackendRequestWithContext<TRequest, TReturn> other = obj as BackendRequestWithContext<TRequest, TReturn>;

            // note we don't need to validate the request type because the previous check covers us on that
            if (this.Uid != other?.Uid)
            {
                return false;
            }

            if (this.ExecutionQueueTimeoutMillis != other.ExecutionQueueTimeoutMillis)
            {
                return false;
            }

            if (Guid.Equals(this.ExecutionQueueId, other.ExecutionQueueId))
            {
                return false;
            }

            if (!string.Equals(this.Path, other.Path))
            {
                return false;
            }

            return EqualityHelper.Equals(this.context, other.context);
        }
        /// <summary>
        /// Determines whether the specified <see cref="object"/> is equal to this instance.
        /// </summary>
        /// <param name="obj">The object to compare with the current object.</param>
        /// <returns><c>true</c> if the specified object is equal to this instance; otherwise, <c>false</c>.</returns>
        public override bool Equals(object obj)
        {
            BackendRequestWithContext<TRequest, TReturn> other = obj as BackendRequestWithContext<TRequest, TReturn>;

            return this.DataEquals(other);
        }