/// <summary>
        /// Gets the checksum of the manifest for the specified module.
        /// </summary>
        protected virtual string GetRemoteModuleManifestChecksum(EModule Module)
        {
            string checksum;

            switch (Module)
            {
            case EModule.Launcher:
            {
                checksum = ReadRemoteFile(Manifest.GetLaunchpadManifestChecksumURL());
                break;
            }

            case EModule.Game:
            {
                checksum = ReadRemoteFile(Manifest.GetGameManifestChecksumURL());
                break;
            }

            default:
            {
                throw new ArgumentOutOfRangeException(nameof(Module), Module, null);
            }
            }

            return(Utilities.SanitizeString(checksum));
        }
        /// <summary>
        /// Gets the checksum of the manifest for the specified module.
        /// </summary>
        /// <exception cref="ArgumentOutOfRangeException">
        /// Will be thrown if the <see cref="EModule"/> passed to the function is not a valid value.
        /// </exception>
        protected virtual string GetRemoteModuleManifestChecksum(EModule module)
        {
            string checksum;

            switch (module)
            {
            case EModule.Launcher:
            {
                checksum = ReadRemoteFile(ManifestHandler.GetLaunchpadManifestChecksumURL());
                break;
            }

            case EModule.Game:
            {
                checksum = ReadRemoteFile(FileManifestHandler.GetGameManifestChecksumURL());
                break;
            }

            default:
            {
                throw new ArgumentOutOfRangeException(nameof(module), module,
                                                      "An invalid module value was passed to GetRemoteModuleManifestChecksum.");
            }
            }

            return(checksum.RemoveLineSeparatorsAndNulls());
        }
        //TODO: Maybe move to ManifestHandler?
        /// <summary>
        /// Gets the remote game manifest checksum.
        /// </summary>
        /// <returns>The remote game manifest checksum.</returns>
        public string GetRemoteGameManifestChecksum()
        {
            string checksum = ReadRemoteFile(manifestHandler.GetGameManifestChecksumURL());

            checksum = Utilities.Clean(checksum);

            return(checksum);
        }