using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Windows.Media; namespace BS.Shared.DataContracts.ClientPartials { public class SupportConceptGoalDC : INotifyPropertyChanged, IFilterableDC { private List _Children; private ValueListEntryDC _GoalEntryDC; private bool _IsChecked; private bool _IsExpanded; public List Children { get { return _Children ?? (_Children = new List()); } set { _Children = value; } } public ValueListEntryDC GoalEntryDC { get { return _GoalEntryDC; } set { _GoalEntryDC = value; } } public bool HasParent { get { return ParentGoal != null; } } public bool IsChecked { get { return _IsChecked; } set { _IsChecked = value; foreach (var item in Children.Where(w => !w.GoalEntryDC.Type.Equals(ValueListEntryType.SupportConceptIndividualGoalCategoryType) || !w.GoalEntryDC.Type.Equals(ValueListEntryType.SupportConceptIndividualGoalType))) { item.IsChecked = value; } RaisePropertyChanged("IsChecked"); } } public bool IsExpanded { get { return _IsExpanded; } set { _IsExpanded = value; RaisePropertyChanged("IsExpanded"); } } public string Name { get { if (_GoalEntryDC != null) { return _GoalEntryDC.TypeDescription; } return null; } } public SupportConceptGoalDC ParentGoal { get; set; } public event PropertyChangedEventHandler PropertyChanged; public SolidColorBrush FilterableBrush { get { return new SolidColorBrush(Colors.Transparent); } } protected void RaisePropertyChanged(string propertyName) { PropertyChangedEventHandler propertyChanged = PropertyChanged; if (propertyChanged != null) { propertyChanged(this, new PropertyChangedEventArgs(propertyName)); } } #region IFilterableDC Members public string IconPath { get { return string.Empty; } } public string DetailDescription { get { return Name; } } public string FilterRelevants { get { return Name; } // ?? String.Empty; } } public bool SupportsActivationType { get { return true; } } public long Version { get { return 0; } set { } } public string SimpleDescription { get { return Name; } } public ActivationTypeId ActivationType { get { return ActivationTypeId.Active; } set { } } #endregion } }