public bool IsFinishedDownloading()
    {
        for (int i = 0; i < GetFileFragments().Count; ++i)
        {
            RemoteFileFragmentMetadata fragment = GetFileFragments()[i];
            if (!fragment.IsFinishedDownloading())
            {
                return(false);
            }
        }

        return(true);
    }
    public bool AreHeadRequestsCompleted()
    {
        for (int i = 0; i < GetFileFragments().Count; ++i)
        {
            RemoteFileFragmentMetadata fragment = GetFileFragments()[i];
            if (!(fragment.IsReadyForDownload() ||
                  fragment.IsDownloading() ||
                  fragment.IsFinishedDownloading()))
            {
                return(false);
            }
        }

        return(true);
    }