public static void UploadModBinary_Zipped(int modId, EditableModfile modfileValues, string binaryZipLocation, bool setPrimary, Action <Modfile> onSuccess, Action <WebRequestError> onError) { string buildFilename = Path.GetFileName(binaryZipLocation); byte[] buildZipData = File.ReadAllBytes(binaryZipLocation); var parameters = new AddModfileParameters(); parameters.zippedBinaryData = BinaryUpload.Create(buildFilename, buildZipData); if (modfileValues.version.isDirty) { parameters.version = modfileValues.version.value; } if (modfileValues.changelog.isDirty) { parameters.changelog = modfileValues.changelog.value; } if (modfileValues.metadataBlob.isDirty) { parameters.metadataBlob = modfileValues.metadataBlob.value; } // - Generate Hash - using (var md5 = System.Security.Cryptography.MD5.Create()) { using (var stream = System.IO.File.OpenRead(binaryZipLocation)) { var hash = md5.ComputeHash(stream); parameters.fileHash = BitConverter.ToString(hash).Replace("-", "").ToLowerInvariant(); } } APIClient.AddModfile(modId, parameters, onSuccess, onError); }