public HealthMetricWithOutput(HealthMetric metric, string formattedOutput)
 {
     Metric = metric;
     FormattedConsoleOutput = formattedOutput;
 }
        public UpdateHealthMetricOutput UpdateHealthMetric(UpdateHealthMetricInput input)
        {
            UpdateHealthMetricOutput output = new UpdateHealthMetricOutput { Metric = null };
            AssetType assetType = null;
            IOWLevel level = null;

            if (input != null)
            {

                if (input.Metric.AssetTypeId > 0)
                    assetType = _assetManager.GetAssetType(input.Metric.AssetTypeId);
                else
                    assetType = _assetManager.GetAssetType(input.Metric.AssetTypeName);

                if (input.Metric.LevelId > 0)
                    level = _iowManager.FirstOrDefaultLevel(input.Metric.LevelId);
                else
                    level = _iowManager.FirstOrDefaultLevel(input.Metric.LevelName);

                if( assetType != null && level != null )
                {
                    HealthMetric metric = _assetHealthManager.GetHealthMetric(input.Metric.Id, input.Metric.Name);

                    if (metric == null)
                        metric = new HealthMetric { };

                    metric.TenantId = (AbpSession.TenantId != null) ? (int)AbpSession.TenantId : 1;
                    metric.Name = input.Metric.Name;
                    metric.AssetTypeId = assetType.Id;
                    metric.ApplyToEachAsset = input.Metric.ApplyToEachAsset;
                    metric.IOWLevelId = level.Id;
                    metric.Period = input.Metric.Period;
                    metric.MetricType = input.Metric.MetricType;
                    metric.GoodDirection = input.Metric.GoodDirection;
                    metric.WarningLevel = input.Metric.WarningLevel;
                    metric.ErrorLevel = input.Metric.ErrorLevel;
                    metric.Order = input.Metric.Order;

                    HealthMetric outputMetric =  _assetHealthManager.UpdateHealthMetric( metric );
                    if (outputMetric != null)
                        output.Metric = outputMetric.MapTo<HealthMetricDto>();
                }
            }
            return output;
        }