private CkanModule ApplyVersionsCheckbox(CkanModule input) { if (IncludeVersionsCheckbox.Checked) { return(input); } else { // We want to return the relationships without the version properties, // BUT we don't want to purge them from the main module object // in case the user changes the checkbox after cancelling out of the // save popup. So we create a new CkanModule instead. var newMod = CkanModule.FromJson(CkanModule.ToJson(input)); foreach (var rels in new List <List <RelationshipDescriptor> >() { newMod.depends, newMod.recommends, newMod.suggests }) { if (rels != null) { foreach (var rel in rels .Select(rel => rel as ModuleRelationshipDescriptor) .Where(rel => rel != null)) { rel.version = null; rel.min_version = null; rel.max_version = null; } } } return(newMod); } }
private string SerializeCurrentInstall(bool recommends = false, bool with_versions = true) { var pack = GenerateModpack(recommends, with_versions); return(CkanModule.ToJson(pack)); }