private static void CancelCallback(ref PolledCallback callback) { if (callback != null) { callback.Cancel(); } }
public UpdateParamErrors[] UpdateItem(WorkshopItemInfo item, string changeNotes = "") { AssertDisposed(); var fileID = item.fileID; NativeMethods.Workshop_StartItemUpdate(pointer, fileID); List <UpdateParamErrors> errors = new List <UpdateParamErrors>(); if (!NativeMethods.Workshop_SetItemTitle(pointer, item.title)) { errors.Add(UpdateParamErrors.TITLE); } if (!NativeMethods.Workshop_SetItemDescription(pointer, item.description)) { errors.Add(UpdateParamErrors.DESCRIPTION); } if (!NativeMethods.Workshop_SetItemUpdateLanguage(pointer, item.updateLanguage)) { errors.Add(UpdateParamErrors.LANGUAGE); } if (!NativeMethods.Workshop_SetItemMetadata(pointer, item.meta)) { errors.Add(UpdateParamErrors.META); } if (!NativeMethods.Workshop_SetItemVisibility(pointer, item.visibility)) { errors.Add(UpdateParamErrors.VISIBILITY); } if (!NativeMethods.Workshop_SetItemTags(pointer, item.tags.ToArray(), item.tags.Count)) { errors.Add(UpdateParamErrors.TAGS); } if (!NativeMethods.Workshop_SetItemContent(pointer, item.contentFolderPath)) { errors.Add(UpdateParamErrors.CONTENT_PATH); } if (!NativeMethods.Workshop_SetItemPreview(pointer, item.previewImagePath)) { errors.Add(UpdateParamErrors.PREVIEW_PATH); } if (errors.Count == 0) { NativeMethods.Workshop_SubmitItemUpdate(pointer, changeNotes); CancelCallback(ref polledCallback); polledCallback = WaitForDone(this, OnSubmitItem); } return(errors.ToArray()); }