aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.BL/ValueObjects/ActionLogDifferenceValue.cs
blob: 46b585f7518ab4133b0a67b79751f0c7b3975da3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Tango.BL.ValueObjects
{
    /// <summary>
    /// Represents an ActionLog difference node value comparison.
    /// </summary>
    /// <seealso cref="Tango.BL.ValueObjects.ActionLogDifference" />
    public class ActionLogDifferenceValue : ActionLogDifference
    {
        /// <summary>
        /// Gets or sets the node value before the change.
        /// </summary>
        public Object Before { get; set; }

        /// <summary>
        /// Gets or sets the node value after the change.
        /// </summary>
        public Object After { get; set; }

        /// <summary>
        /// Gets a value indicating whether before and after values are different.
        /// </summary>
        [JsonIgnore]
        public override bool HasDifference
        {
            get { return Before != After; }
        }

        /// <summary>
        /// Returns a <see cref="System.String" /> that represents this instance.
        /// </summary>
        /// <returns>
        /// A <see cref="System.String" /> that represents this instance.
        /// </returns>
        public override string ToString()
        {
            return $"{Name}: Before: {Before} != After: {After}";
        }
    }
}
span>; } } public bool? AllSelected { get { return (bool?)GetValue(AllSelectedProperty); } set { SetValue(AllSelectedProperty, value); } } public static readonly DependencyProperty AllSelectedProperty = DependencyProperty.Register("AllSelected", typeof(bool?), typeof(AllSelectedCheckboxList), new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault, new PropertyChangedCallback(OnAllSelectedChanged))); private static void OnAllSelectedChanged(DependencyObject o, DependencyPropertyChangedEventArgs e) { AllSelectedCheckboxList l = o as AllSelectedCheckboxList; var nv = e.NewValue; l.AllSelectedChanged((bool?)nv); } public static DependencyProperty ClickCheckBoxCommandProperty = DependencyProperty.Register("ClickCheckBoxCommand", typeof(RelayCommand<object>), typeof(AllSelectedCheckboxList)); public RelayCommand<object> ClickCheckBoxCommand { get { return (RelayCommand<object>)GetValue(ClickCheckBoxCommandProperty); } private set { SetValue(ClickCheckBoxCommandProperty, value); } } #endregion #region "Constructors" static AllSelectedCheckboxList() { DefaultStyleKeyProperty.OverrideMetadata(typeof(AllSelectedCheckboxList), new FrameworkPropertyMetadata(typeof(AllSelectedCheckboxList))); } public AllSelectedCheckboxList() : base() { ClickCheckBoxCommand = new RelayCommand<object>(ClickCheckBox); } /// <summary> /// Clicks the CheckBox.Update Selection ListBoxitem. /// </summary> /// <param name="obj">The object.</param> private void ClickCheckBox(object obj) { if (obj is ListBoxItem) { ListBoxItem lbItem = obj as ListBoxItem; CheckBox checkBox = lbItem.FindVisualChildren<CheckBox>().FirstOrDefault(); if (checkBox != null) { bool? check = checkBox.IsChecked; if (check != null) { lbItem.IsSelected = (bool)check; } } } if (SelectedItems.Count == 0) { AllSelected = false; } else if (Items.Count > 0 && SelectedItems.Count == Items.Count) { AllSelected = true; } else { AllSelected = null; } } #endregion #region Override /// <summary> /// When overridden in a derived class, is invoked whenever application code or internal processes call <see cref="M:System.Windows.FrameworkElement.ApplyTemplate" />. /// </summary> public override void OnApplyTemplate() { base.OnApplyTemplate(); AllSelectedChanged(AllSelected); } protected override void OnSelectionChanged(SelectionChangedEventArgs e) { base.OnSelectionChanged(e); foreach(var addItem in e.AddedItems.OfType<Components.SelectedObject>()) { addItem.IsSelected = true; } foreach (var removeItem in e.RemovedItems.OfType<Components.SelectedObject>()) { removeItem.IsSelected = false; } } #endregion private void AllSelectedChanged(bool? value) { if (value == null) return; SelectionMode = SelectionMode.Multiple; if (value == true) { SelectAll(); } else { UnselectAll(); } } } }