//public static Infrastructure.Entities.Domain.Wings.Wing FactoryWingFromDymanicWing(this WingTarget target,) //{ // var wing = new Infrastructure.Entities.Domain.Wings.Wing(dynamicWing.Name) // { // WingGUID = dynamicWing.Id == null || dynamicWing.Id == Guid.Empty ? new Guid() : dynamicWing.Id, // Description = dynamicWing.Description, // Publisher = dynamicWing.Publisher, // PublisherEmail = dynamicWing.PublisherEmail, // PublisherWebsite = dynamicWing.PublisherWebsite, // Version = new Infrastructure.Domain.Version { Number = dynamicWing.Version }, // IsDisabled = dynamicWing.IsDisabled // }; // return wing; //} /// <summary> /// Loads the custom scopes. /// </summary> /// <param name="target">The target.</param> /// <param name="dynamicTarget">The dynamic target.</param> /// <param name="module">The module.</param> /// <returns></returns> public static Target LoadCustomScopes(this Target target, DynamicTarget dynamicTarget) { if (target.Scopes == null) { target.Scopes = new List <Scope>(); } foreach (var column in dynamicTarget.Columns) { var scope = CreateScope(target, column); if (scope == null) { continue; } if (!target.Scopes.Any(s => s.Name.EqualsIgnoreCase(scope.Name))) { target.Scopes.Add(scope); } } return(target); }
/// <summary> /// Loads the custom elements. /// </summary> /// <param name="target">The target.</param> /// <param name="wingTarget">The wing target.</param> public static void LoadCustomElements(this Target target, DynamicTarget wingTarget) { if (wingTarget == null || wingTarget.Columns == null) { return; } for (var index = 0; index < wingTarget.Columns.Count; index++) { var targetColumn = wingTarget.Columns[index]; var result = new Element(target, targetColumn.Name); result.LongDescription = result.Description = targetColumn.Description; result.Type = targetColumn.DataType; result.IsRequired = targetColumn.IsRequired; result.Ordinal = (index + 1); result.MappingHints = new List <string> { targetColumn.Name }; result.IsUnique = targetColumn.IsUnique; result.Length = (targetColumn.Length > 0) ? (int?)targetColumn.Length : null; result.Scale = (targetColumn.Scale > 0) ? (int?)targetColumn.Scale : null; result.Precision = (targetColumn.Precision > 0) ? (int?)targetColumn.Precision : null; if (target.Elements.All(t => !t.Name.EqualsIgnoreCase(result.Name))) { target.Elements.Add(result); } } }
public static Target CreateTarget( this DynamicTarget target, Wing wing) { var result = TargetRepository.New(wing, target.Id, target.Name); if (result.Guid == Guid.Empty) { result.Guid = Guid.NewGuid(); } result.Description = target.Description; result.ClrType = null; result.IsReferenceTarget = false; result.DisplayOrder = target.DisplayOrder; result.IsCustom = true; result.DbSchemaName = target.DbSchemaName; result.CreateSqlScript = target.CreateTableScript; result.ImportSQLScript = target.ImportSQLScript; result.AddMeausersSqlScript = target.AddMeasuresScript; result.AddReportsSqlScript = target.AddReportsScript; result.AllowMultipleImports = target.AllowMultipleImports; result.ImportType = target.ImportSteps.Type; result.Publisher = target.Publisher; result.PublisherEmail = target.PublisherEmail; result.PublisherWebsite = target.PublisherWebsite; result.Version = new Version { Number = target.Version }; result.IsDisabled = target.IsDisabled; result.WingTargetXmlFilePath = target.WingTargetXmlFilePath; result.TemplateFileName = target.TempateFileName; if (wing.Targets.All(t => t.Guid != result.Guid || !t.Name.EqualsIgnoreCase(result.Name))) { wing.Targets.Add(result); } return(result); }
/// <summary> /// Creates the topics. /// </summary> /// <param name="dynamicTopics">The dynamic topics.</param> /// <param name="dynamicTarget">The dynamic target.</param> /// <param name="target">The target.</param> /// <param name="session">The session.</param> /// <returns></returns> public static IList <Topic> CreateTopics(this IList <DynamicTopic> dynamicTopics, DynamicTarget dynamicTarget, Target target, ISession session) { var topics = new List <Topic>(); if (dynamicTopics == null || !dynamicTopics.Any()) { return(topics); } foreach (var dynamicTopic in dynamicTopics.ToList()) { using (var trans = session.BeginTransaction()) { var topicCategory = session.Query <TopicCategory>() .FirstOrDefault(tc => tc.Name.ToUpper() == dynamicTopic.Name.ToUpper()) ?? new TopicCategory(dynamicTopic.Name) { LongTitle = dynamicTopic.Name, Description = dynamicTopic.Name, TopicType = dynamicTopic.Type, WingTargetName = target.Name, ConsumerDescription = dynamicTopic.ConsumerDescription, CategoryType = dynamicTopic.CategoryType, Facts = dynamicTopic.Facts.Select(f => new TopicFacts { Name = f.Name, Text = f.Text, CitationText = f.CitationText, ImagePath = f.ImagePath }).ToList() }; if (!topicCategory.IsPersisted) { session.SaveOrUpdate(topicCategory); } else { topicCategory = session.Merge(topicCategory); } foreach (var subTopic in dynamicTopic.SubTopics) { var topic = session.Query <Topic>().FirstOrDefault(t => t.Name.ToUpper() == subTopic.Name.ToUpper() && t.Owner.Name.ToLower() == topicCategory.Name.ToLower()) ?? new Topic(topicCategory, subTopic.Name) { LongTitle = subTopic.Name, Description = subTopic.Name, WingTargetName = target.Name }; if (!topic.IsPersisted) { session.SaveOrUpdate(topic); } else { topic = session.Merge(topic); } topics.Add(topic); } trans.Commit(); } } return(topics); }
/// <summary> /// Creates the measure. /// </summary> /// <param name="dynamicMeasure">The dynamic measure.</param> /// <param name="dynamicTarget">The dynamic target.</param> /// <param name="target">The target.</param> /// <param name="session">The session.</param> /// <returns></returns> public static Measure CreateMeasure(this DynamicTargetMeasure dynamicMeasure, DynamicTarget dynamicTarget, Target target, ISession session) { Measure measure = null; if (dynamicMeasure == null) { return(default(DynamicMeasure)); } if (dynamicMeasure.IsExistingMeasure && !string.IsNullOrEmpty(dynamicMeasure.MeasureCode)) { measure = session.Query <Measure>() .FirstOrDefault(m => m.Name.ToLower() == dynamicMeasure.MeasureCode.ToLower()); } if (measure == null) { measure = Measure.CreateMeasure(typeof(DynamicMeasure), target, dynamicMeasure.Name); measure.MeasureType = dynamicMeasure.MeasureType; measure.RiskAdjustedMethod = dynamicMeasure.RiskAdjustedMethod; measure.Description = dynamicMeasure.Description; measure.ConsumerDescription = dynamicMeasure.ConsumerDescription; measure.Footnotes = dynamicMeasure.Footnotes; measure.MoreInformation = dynamicMeasure.MoreInformation; measure.Url = dynamicMeasure.Url; measure.UrlTitle = dynamicMeasure.UrlTitle; measure.NQFEndorsed = dynamicMeasure.NqfEndorsed; measure.NQFID = dynamicMeasure.NqfId; measure.MeasureTitle = new MeasureTitle { Plain = dynamicMeasure.MeasureTitle.Plain, Clinical = dynamicMeasure.MeasureTitle.Clinical, Selected = dynamicMeasure.MeasureTitle.Selected }; measure.ConsumerPlainTitle = dynamicMeasure.MeasureTitle.ConsumerPlain; measure.HigherScoresAreBetter = dynamicMeasure.HigherScoresAreBetter; measure.SuppressionNumerator = string.IsNullOrEmpty(dynamicMeasure.SuppressionNumerator) ? (decimal?)null : decimal.Parse(dynamicMeasure.SuppressionNumerator); measure.SuppressionDenominator = string.IsNullOrEmpty(dynamicMeasure.SuppressionDenominator) ? (decimal?)null : decimal.Parse(dynamicMeasure.SuppressionDenominator); measure.PerformMarginSuppression = dynamicMeasure.PerformMarginSuppression; measure.StatePeerBenchmark = new StatePeerBenchmark { CalculationMethod = dynamicMeasure.StatePeerBenchmark.CalculationMethod, ProvidedBenchmark = string.IsNullOrEmpty(dynamicMeasure.StatePeerBenchmark.ProvidedBenchmark) ? (decimal?)null : decimal.Parse(dynamicMeasure.StatePeerBenchmark.ProvidedBenchmark) }; dynamicMeasure.Topics.CreateTopics(dynamicTarget, target, session).ForEach(t => measure.AddTopic(t)); measure.UpperBound = string.IsNullOrEmpty(dynamicMeasure.UpperBound) ? (decimal?)null : decimal.Parse(dynamicMeasure.UpperBound); measure.LowerBound = string.IsNullOrEmpty(dynamicMeasure.LowerBound) ? (decimal?)null : decimal.Parse(dynamicMeasure.LowerBound); measure.SupportsCost = dynamicMeasure.SupportsCost; } return(measure); }