public void EnumeratePublishedWorkshopFiles(WorkshopFileAction enumerationType, int startIndex,
     int count, int days, IList<string> tags, IList<string> userTags)
 {
     CheckIfUsable();
     using (SteamParamStringArray tagArray = new SteamParamStringArray(tags))
     {
         using (SteamParamStringArray userTagArray = new SteamParamStringArray(userTags))
         {
             NativeMethods.Cloud_EnumeratePublishedWorkshopFiles((int)enumerationType, (uint)startIndex,
                 (uint)count, (uint)days, tagArray.UnmanagedMemory, userTagArray.UnmanagedMemory);
         }
     }
 }
 public void PublishVideo(WorkshopVideoProviders videoProviders, string videoAccount, string videoIdentifier, 
     string previewFile, AppID consumerAppId, string title, string description, 
     RemoteStoragePublishedFileVisibility visibility, IList<string> tags)
 {
     CheckIfUsable();
     using (SteamParamStringArray tagArray = new SteamParamStringArray(tags))
     {
         NativeMethods.Cloud_PublishVideo((int)videoProviders, videoAccount, videoIdentifier, previewFile, consumerAppId.AsUInt32, title,
             description, (int)visibility, tagArray.UnmanagedMemory);
     }
 }
 public bool UpdatePublishedFileTags(PublishedFileUpdateHandle updateHandle, IList<string> tags)
 {
     CheckIfUsable();
     using (SteamParamStringArray tagsArray = new SteamParamStringArray(tags))
     {
         return NativeMethods.Cloud_UpdatePublishedFileTags(updateHandle.AsUInt64, tagsArray.UnmanagedMemory);
     }
 }
 public void EnumerateUserSharedWorkshopFiles(SteamID steamId, int startIndex,
     IList<string> requiredTags, IList<string> excludedTags)
 {
     CheckIfUsable();
     using (SteamParamStringArray requiredTagsArray = new SteamParamStringArray(requiredTags))
     {
         using (SteamParamStringArray excludeTagsArray = new SteamParamStringArray(excludedTags))
         {
             NativeMethods.Cloud_EnumerateUserSharedWorkshopFiles(steamId.AsUInt64, (uint)startIndex,
                 requiredTagsArray.UnmanagedMemory, excludeTagsArray.UnmanagedMemory);
         }
     }
 }
 public void PublishWorkshopFile(string fileName, string previewFile, AppID consumerAppId,
     string title, string description, RemoteStoragePublishedFileVisibility visibility,
     IList<string> tags, WorkshopFileType workshopFileType)
 {
     CheckIfUsable();
     using (SteamParamStringArray tagsArray = new SteamParamStringArray(tags))
     {
         NativeMethods.Cloud_PublishWorkshopFile(fileName, previewFile, consumerAppId.AsUInt32,
             title, description, (int)visibility, tagsArray.UnmanagedMemory, (int)workshopFileType);
     }
 }