public void AssignSelectedMeasure(WebsiteMeasure websiteMeasure) { TopicTypeEnum?topicType; IsMeasureTopicsEnabled = true; if (websiteMeasure.OriginalMeasure is NursingHomeMeasure) { topicType = TopicTypeEnum.NursingHome; IsMeasureTopicsEnabled = false; } else if (websiteMeasure.OriginalMeasure is HospitalMeasure) { topicType = TopicTypeEnum.Hospital; } else { topicType = null; } TopicsCollectionView = CollectionViewSource.GetDefaultView(WebsiteDataService.GetTopicViewModels(topicType).ToObservableCollection()) as ListCollectionView; SelectedMeasure = GenMeasureModel(websiteMeasure); }
private void cbSelectionMeasures_KeyUp(object sender, KeyEventArgs e) { CheckBox cbSelectionMeasures = sender as CheckBox; WebsiteMeasure newCheckedItem = cbSelectionMeasures.DataContext as WebsiteMeasure; int newCheckedItemIndex = Model.AvailableMeasuresView.IndexOf(newCheckedItem); if ((System.Windows.Input.Keyboard.IsKeyUp(System.Windows.Input.Key.LeftShift) || System.Windows.Input.Keyboard.IsKeyUp(System.Windows.Input.Key.RightShift)) && newCheckedItemIndex != _lastCheckedItemIndex) { int start = System.Math.Min(_lastCheckedItemIndex, newCheckedItemIndex); int end = System.Math.Max(_lastCheckedItemIndex, newCheckedItemIndex); int countToTake = end - start; var itemsToCheck = new System.Collections.Generic.List <WebsiteMeasure>(); foreach (var o in Model.AvailableMeasuresView.OfType <WebsiteMeasure>().Select((x, i) => new { x, i })) { if (o.i > start && o.i < end) { itemsToCheck.Add(o.x); } } foreach (WebsiteMeasure itemToCheck in itemsToCheck) { itemToCheck.IsSelected = true; } _lastCheckedItemIndex = -1; } else { _lastCheckedItemIndex = newCheckedItemIndex; } }
/// <summary> /// Gets the value. /// </summary> /// <param name="values">The values.</param> /// <param name="measure">The measure.</param> /// <returns></returns> private static string GetValue(Tuple <int, int, double> values, WebsiteMeasure measure) { var code = measure.OriginalMeasure != null ? measure.OriginalMeasure.MeasureCode : measure.OverrideMeasure != null ? measure.OverrideMeasure.MeasureCode : string.Empty; if (string.IsNullOrEmpty(code) || values == null) { return(string.Empty); } return(code.Contains("COST") ? string.Format("{0}", values.Item3) : values.Item2.ToString(CultureInfo.InvariantCulture)); }
/// <summary> /// Creates a *useable* MeasureModel from a WebsiteMeasure. /// </summary> /// <param name="websiteMeasure"></param> /// <param name="isBatchLoading"> /// Indicates that we are loading multiple MeasuresModels. As such, currently no need to hydrate /// topics. If we ever add topics to Batch editing, we can should add a BatchHydrateTopics function /// that would be called at this functions call site, after all batched MeasureModes have been /// generated. Also, the TopicTree IsSelection type should be changed from bool to bool?, thus /// introducing a 3 state true, false, mixed IsSelected indicator, where mixed means some of the /// batched Measures selected the topic, and some /// have not. /// </param> /// <returns></returns> private MeasureModel GenMeasureModel(WebsiteMeasure websiteMeasure, bool isBatchLoading = false) { var newMeasureModel = new MeasureModel(websiteMeasure); newMeasureModel.InitMeasureOverride(newMeasureModel.MeasureOverwrite ?? newMeasureModel.Measure); newMeasureModel.IsPlainTitleSelected = (newMeasureModel.MeasureOverwrite.IsPersisted) ? newMeasureModel.MeasureOverwrite.MeasureTitle.Selected == SelectedMeasuretitleEnum.Plain : CurrentWebsite.Audiences.Any(a => a == Audience.Consumers); //: CurrentWebsite.Audience == Audience.Consumers; newMeasureModel.WasMeasureOverrideEdited = true; if (!isBatchLoading) { HydrateTopics(newMeasureModel.MeasureOverwrite); } return(newMeasureModel); }
// TODO: WEBSITE FILTER bool ModelPropertyFilter(WebsiteMeasure measure) { if (measure == null) { return(false); } if (Model.SelectedProperty == ModelPropertyFilterValues.NONE) { return(true); } if (Model.SelectedProperty == ModelPropertyFilterValues.MEASURE_CODE) { return(measure.ReportMeasure.MeasureCode.ToLower().Contains(Model.PropertyFilterText.ToLower())); } if (Model.SelectedProperty == ModelPropertyFilterValues.MEASURE_NAME) { return(measure.ReportMeasure.MeasureTitle.Clinical.ToLower().Contains(Model.PropertyFilterText.ToLower())); } if (Model.SelectedProperty == ModelPropertyFilterValues.TOPIC_NAME) { return(measure.ReportMeasure.Topics.Any(t => t.Name.ToLower().Contains(Model.PropertyFilterText.ToLower()) || t.Owner.ToString().ToLower().Contains(Model.PropertyFilterText.ToLower()))); } if (Model.SelectedProperty == ModelPropertyFilterValues.WEBSITE_NAME) { var WebsiteDataService = ServiceLocator.Current.GetInstance <IWebsiteDataService>(); var websiteNames = WebsiteDataService.GetWebsiteNamesForMeasure(measure.OriginalMeasure.Id); return(string.Join(", ", websiteNames).ToLower().Contains(Model.PropertyFilterText.ToLower())); } if (Model.SelectedProperty == ModelPropertyFilterValues.SUBTOPIC_NAME) { return(measure.ReportMeasure.Topics.Any(t => t.Name.ToLower().Contains(Model.PropertyFilterText.ToLower()) || t.Owner.ToString().ToLower().Contains(Model.PropertyFilterText.ToLower()))); } return(true); }
public BatchMeasureModel(WebsiteMeasure wm) : this() { ProxyWebsiteMeasure = wm; }
bool ModelDatasetFilter(WebsiteMeasure measure) { return(measure != null && measure.ReportMeasure.Owner.Name == Model.SelectedDataSet); }