/// <summary>Submits changes to a mod to the server.</summary>
        public void SubmitModChanges(int modId, EditableModProfile modEdits)
        {
            Debug.Assert(modId != ModProfile.NULL_ID);

            this.eModProfile = modEdits;

            if (this.eModProfile.status.isDirty ||
                this.eModProfile.visibility.isDirty ||
                this.eModProfile.name.isDirty ||
                this.eModProfile.nameId.isDirty ||
                this.eModProfile.summary.isDirty ||
                this.eModProfile.descriptionAsHTML.isDirty ||
                this.eModProfile.homepageURL.isDirty ||
                this.eModProfile.metadataBlob.isDirty)
            {
                var parameters = new EditModParameters();
                if (this.eModProfile.status.isDirty)
                {
                    parameters.status = this.eModProfile.status.value;
                }
                if (this.eModProfile.visibility.isDirty)
                {
                    parameters.visibility = this.eModProfile.visibility.value;
                }
                if (this.eModProfile.name.isDirty)
                {
                    parameters.name = this.eModProfile.name.value;
                }
                if (this.eModProfile.nameId.isDirty)
                {
                    parameters.nameId = this.eModProfile.nameId.value;
                }
                if (this.eModProfile.summary.isDirty)
                {
                    parameters.summary = this.eModProfile.summary.value;
                }
                if (this.eModProfile.descriptionAsHTML.isDirty)
                {
                    parameters.descriptionAsHTML = this.eModProfile.descriptionAsHTML.value;
                }
                if (this.eModProfile.homepageURL.isDirty)
                {
                    parameters.homepageURL = this.eModProfile.homepageURL.value;
                }
                if (this.eModProfile.metadataBlob.isDirty)
                {
                    parameters.metadataBlob = this.eModProfile.metadataBlob.value;
                }

                APIClient.EditMod(modId, parameters, this.SubmitModChanges_Internal, this.onError);
            }
            // - Get updated ModProfile -
            else
            {
                ModManager.GetModProfile(modId, this.SubmitModChanges_Internal, this.onError);
            }
        }
Exemplo n.º 2
0
        public static void SubmitModChanges(int modId,
                                            EditableModProfile modEdits,
                                            Action <ModProfile> modSubmissionSucceeded,
                                            Action <WebRequestError> modSubmissionFailed)
        {
            Debug.Assert(modId > 0);

            Action <ModProfile> submitChanges = (profile) =>
            {
                if (modEdits.status.isDirty ||
                    modEdits.visibility.isDirty ||
                    modEdits.name.isDirty ||
                    modEdits.nameId.isDirty ||
                    modEdits.summary.isDirty ||
                    modEdits.description.isDirty ||
                    modEdits.homepageURL.isDirty ||
                    modEdits.metadataBlob.isDirty)
                {
                    var parameters = new EditModParameters();
                    if (modEdits.status.isDirty)
                    {
                        parameters.status = modEdits.status.value;
                    }
                    if (modEdits.visibility.isDirty)
                    {
                        parameters.visibility = modEdits.visibility.value;
                    }
                    if (modEdits.name.isDirty)
                    {
                        parameters.name = modEdits.name.value;
                    }
                    if (modEdits.nameId.isDirty)
                    {
                        parameters.nameId = modEdits.nameId.value;
                    }
                    if (modEdits.summary.isDirty)
                    {
                        parameters.summary = modEdits.summary.value;
                    }
                    if (modEdits.description.isDirty)
                    {
                        parameters.description = modEdits.description.value;
                    }
                    if (modEdits.homepageURL.isDirty)
                    {
                        parameters.homepageURL = modEdits.homepageURL.value;
                    }
                    if (modEdits.metadataBlob.isDirty)
                    {
                        parameters.metadataBlob = modEdits.metadataBlob.value;
                    }

                    APIClient.EditMod(modId, parameters,
                                      (p) => SubmitModProfileComponents(profile, modEdits,
                                                                        modSubmissionSucceeded,
                                                                        modSubmissionFailed),
                                      modSubmissionFailed);
                }
                // - Get updated ModProfile -
                else
                {
                    SubmitModProfileComponents(profile,
                                               modEdits,
                                               modSubmissionSucceeded,
                                               modSubmissionFailed);
                }
            };

            ModManager.GetModProfile(modId,
                                     submitChanges,
                                     modSubmissionFailed);
        }