public string GetSetting(string property) { ImplementationGuideSetting setting = this.settings.SingleOrDefault(y => y.PropertyName == property); if (setting == null) { SettingProperty predefinedProperty = SettingProperty.CardinalityZero; if (Enum.TryParse <SettingProperty>(property, out predefinedProperty)) { return(GetDefaultSetting(predefinedProperty)); } return(string.Empty); } return(setting.PropertyValue); }
public void SaveSetting(string property, string value) { ImplementationGuideSetting setting = this.tdb.ImplementationGuideSettings.SingleOrDefault(y => y.ImplementationGuideId == this.ImplementationGuideId && y.PropertyName == property); SettingProperty predefinedProperty = SettingProperty.CardinalityZero; string predefinedValue = string.Empty; bool removed = false; if (Enum.TryParse <SettingProperty>(property, out predefinedProperty)) { predefinedValue = GetDefaultSetting(predefinedProperty); } if (setting == null) { if (predefinedValue == value) { return; } setting = new ImplementationGuideSetting(); setting.ImplementationGuideId = this.ImplementationGuideId; this.tdb.ImplementationGuideSettings.Add(setting); } else if (predefinedValue == value || value == null) { this.tdb.ImplementationGuideSettings.Remove(setting); removed = true; } if (!removed) { if (setting.PropertyName != property) { setting.PropertyName = property; } if (setting.PropertyValue != value) { setting.PropertyValue = value; } } this.tdb.SaveChanges(); }
public void SaveSetting(string property, string value) { ImplementationGuideSetting setting = this.tdb.ImplementationGuideSettings.SingleOrDefault(y => y.ImplementationGuideId == this.ImplementationGuideId && y.PropertyName == property); SettingProperty predefinedProperty = SettingProperty.CardinalityZero; string predefinedValue = string.Empty; if (Enum.TryParse <SettingProperty>(property, out predefinedProperty)) { predefinedValue = GetDefaultSetting(predefinedProperty); } if (setting == null) { if (predefinedValue == value) { return; } setting = new ImplementationGuideSetting(); setting.ImplementationGuideId = this.ImplementationGuideId; this.tdb.ImplementationGuideSettings.AddObject(setting); } else if (predefinedValue == value) { this.tdb.ImplementationGuideSettings.DeleteObject(setting); } if (setting.EntityState != System.Data.Entity.EntityState.Deleted) { if (setting.PropertyName != property) { setting.PropertyName = property; } if (setting.PropertyValue != value) { setting.PropertyValue = value; } } this.tdb.SaveChanges(); }
public ActionResult NewVersion(int implementationGuideId) { if (!CheckPoint.Instance.GrantEditImplementationGuide(implementationGuideId)) { throw new AuthorizationException("You do not have permissions to edit this implementation guide!"); } if (this.tdb.ImplementationGuides.Count(y => y.PreviousVersionImplementationGuideId == implementationGuideId) > 0) { throw new Exception("This implementation guide already has a new version."); } ImplementationGuide ig = this.tdb.ImplementationGuides.Single(y => y.Id == implementationGuideId); if (!ig.IsPublished()) { throw new Exception("Cannot version an implementation guide that has not been published"); } ImplementationGuide newIg = new ImplementationGuide() { Name = ig.Name, ImplementationGuideType = ig.ImplementationGuideType, Organization = ig.Organization, PreviousVersionImplementationGuideId = ig.Id, PublishStatus = PublishStatus.GetDraftStatus(this.tdb), Version = ig.Version + 1, WebReadmeOverview = ig.WebReadmeOverview, WebDescription = ig.WebDescription }; // Copy permissions foreach (var cPermission in ig.Permissions) { ImplementationGuidePermission newPermission = new ImplementationGuidePermission() { GroupId = cPermission.GroupId, UserId = cPermission.UserId, Type = cPermission.Type, Permission = cPermission.Permission }; newIg.Permissions.Add(newPermission); } // Copy settings foreach (var cSetting in ig.Settings) { ImplementationGuideSetting newSetting = new ImplementationGuideSetting() { PropertyName = cSetting.PropertyName, PropertyValue = cSetting.PropertyValue }; newIg.Settings.Add(newSetting); } // Copy IG Template Types foreach (var cTemplateType in ig.TemplateTypes) { ImplementationGuideTemplateType newTemplateType = new ImplementationGuideTemplateType() { TemplateTypeId = cTemplateType.TemplateTypeId, Name = cTemplateType.Name, DetailsText = cTemplateType.DetailsText }; newIg.TemplateTypes.Add(newTemplateType); } // Copy volume 1 foreach (var cSection in ig.Sections) { var newSection = new ImplementationGuideSection() { Content = cSection.Content, Heading = cSection.Heading, Level = cSection.Level, Order = cSection.Order }; newIg.Sections.Add(newSection); } this.tdb.SaveChanges(); IGSettingsManager igSettings = new IGSettingsManager(this.tdb, implementationGuideId); IGSettingsManager newIgSettings = new IGSettingsManager(this.tdb, newIg.Id); var cardinalityAtLeastOne = igSettings.GetSetting(IGSettingsManager.SettingProperty.CardinalityAtLeastOne); var cardinalityOneToOne = igSettings.GetSetting(IGSettingsManager.SettingProperty.CardinalityOneToOne); var cardinalityZero = igSettings.GetSetting(IGSettingsManager.SettingProperty.CardinalityZero); var cardinalityZeroOrMore = igSettings.GetSetting(IGSettingsManager.SettingProperty.CardinalityZeroOrMore); var cardinalityZeroToOne = igSettings.GetSetting(IGSettingsManager.SettingProperty.CardinalityZeroToOne); var categories = igSettings.GetSetting(IGSettingsManager.SettingProperty.Categories); var useConsolidationConstraintFormat = igSettings.GetBoolSetting(IGSettingsManager.SettingProperty.UseConsolidatedConstraintFormat); var volume1Html = igSettings.GetSetting(IGSettingsManager.SettingProperty.Volume1Html); if (!string.IsNullOrEmpty(cardinalityAtLeastOne)) { newIgSettings.SaveSetting(IGSettingsManager.SettingProperty.CardinalityAtLeastOne, cardinalityAtLeastOne); } if (!string.IsNullOrEmpty(cardinalityOneToOne)) { newIgSettings.SaveSetting(IGSettingsManager.SettingProperty.CardinalityZero, cardinalityZero); } if (!string.IsNullOrEmpty(cardinalityZeroOrMore)) { newIgSettings.SaveSetting(IGSettingsManager.SettingProperty.CardinalityZeroOrMore, cardinalityZeroOrMore); } if (!string.IsNullOrEmpty(cardinalityZeroToOne)) { newIgSettings.SaveSetting(IGSettingsManager.SettingProperty.CardinalityZeroToOne, cardinalityZeroToOne); } if (!string.IsNullOrEmpty(categories)) { newIgSettings.SaveSetting(IGSettingsManager.SettingProperty.Categories, categories); } if (!string.IsNullOrEmpty(volume1Html)) { newIgSettings.SaveSetting(IGSettingsManager.SettingProperty.Volume1Html, volume1Html); } newIgSettings.SaveBoolSetting(IGSettingsManager.SettingProperty.UseConsolidatedConstraintFormat, useConsolidationConstraintFormat); return(Json(new { ImplementationGuideId = newIg.Id })); }