Esempio n. 1
0
        //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);
        }
Esempio n. 2
0
        /// <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);
                }
            }
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        /// <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);
        }
Esempio n. 5
0
        /// <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);
        }