// Summary:
        //     Determines whether the specified transfer location is equal to the current transfer location.
        //
        // Parameters:
        //   obj:
        //     The transfer location to compare with the current transfer location.
        //
        // Returns:
        //     true if the specified transfer location is equal to the current transfer location; otherwise, false.
        public override bool Equals(object obj)
        {
            TransferLocation location = obj as TransferLocation;

            if (location == null || this.Type != location.Type)
            {
                return(false);
            }

            return(this.ToString() == location.ToString());
        }
        // Summary:
        //     Determines whether the specified transfer location is equal to the current transfer location.
        //
        // Parameters:
        //   obj:
        //     The transfer location to compare with the current transfer location.
        //
        // Returns:
        //     true if the specified transfer location is equal to the current transfer location; otherwise, false.
        public override bool Equals(object obj)
        {
            TransferLocation location = obj as TransferLocation;

            if (location == null || this.TransferLocationType != location.TransferLocationType)
            {
                return(false);
            }

            switch (this.TransferLocationType)
            {
            case TransferLocationType.AzureBlob:
            case TransferLocationType.AzureFile:
            case TransferLocationType.FilePath:
            case TransferLocationType.SourceUri:
                return(this.ToString() == location.ToString());

            case TransferLocationType.Stream:
            default:
                return(false);
            }
        }