//******************************************************************************************************// CalculatedMeasurements.cs - Gbtc//// Copyright © 2010, Grid Protection Alliance. All Rights Reserved.//// Licensed to the Grid Protection Alliance (GPA) under one or more contributor license agreements. See// the NOTICE file distributed with this work for additional information regarding copyright ownership.// The GPA licenses this file to you under the MIT License (MIT), the "License"; you may// not use this file except in compliance with the License. You may obtain a copy of the License at://// http://www.opensource.org/licenses/MIT//// Unless agreed to in writing, the subject software distributed under the License is distributed on an// "AS-IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. Refer to the// License for the specific language governing permissions and limitations.//// Code Modification History:// ----------------------------------------------------------------------------------------------------// 11/17/2011 - Mehulbhai P Thakkar// Generated original version of source code.////****************************************************************************************************** using System;using System.Collections.Generic;using System.Linq;using System.Windows;using System.Windows.Input;using GSF.PhasorProtocols.UI.DataModels;using GSF.TimeSeries.UI;using GSF.TimeSeries.UI.Commands;using GSF.TimeSeries.UI.DataModels; namespace GSF.PhasorProtocols.UI.ViewModels{ internal class CalculatedMeasurements : PagedViewModelBase<CalculatedMeasurement, int> { #region [ Members ] private Dictionary<Guid, string> m_nodeLookupList; private Dictionary<string, string> m_downsamplingMethod; private RelayCommand m_initializeCommand; private string m_runtimeID; #endregion #region [ Properties ] public string RuntimeID { get { return m_runtimeID; } set { m_runtimeID = value; OnPropertyChanged("RuntimeID"); } } /// <summary> /// Gets flag that determines if <see cref="PagedViewModelBase{T1, T2}.CurrentItem"/> is a new record. /// </summary> public override bool IsNewRecord { get { return CurrentItem.ID == 0; } } /// <summary> /// Gets <see cref="Dictionary{T1,T2}"/> type collection of <see cref="Node"/> defined in the database. /// </summary> public Dictionary<Guid, string> NodeLookupList { get { return m_nodeLookupList; } } public Dictionary<string, string> DownsamplingMethodLookupList { get { return m_downsamplingMethod; } } public ICommand InitializeCommand { get { if (m_initializeCommand == null) m_initializeCommand = new RelayCommand(InitializeAdapter, () => CanSave); return m_initializeCommand; } } #endregion #region [ Constructor ] public CalculatedMeasurements(int itemsPerPage, bool autoSave = true) : base(itemsPerPage, autoSave) { } #endregion #region [ Methods ] /// <summary> /// Gets the primary key value of the <see cref="PagedViewModelBase{T1, T2}.CurrentItem"/>. /// </summary> /// <returns>The primary key value of the <see cref="PagedViewModelBase{T1, T2}.CurrentItem"/>.</returns> public override int GetCurrentItemKey() { return CurrentItem.ID; } /// <summary> /// Gets the string based named identifier of the <see cref="PagedViewModelBase{T1, T2}.CurrentItem"/>. /// </summary> /// <returns>The string based named identifier of the <see cref="PagedViewModelBase{T1, T2}.CurrentItem"/>.</returns> public override string GetCurrentItemName() { return CurrentItem.Name; } /// <summary> /// Creates a new instance of <see cref="CalculatedMeasurement"/> and assigns it to CurrentItem. /// </summary> public override void Clear() { base.Clear(); if (m_nodeLookupList.Count > 0) CurrentItem.NodeID = m_nodeLookupList.First().Key; if (m_downsamplingMethod.Count > 0) CurrentItem.DownsamplingMethod = m_downsamplingMethod.First().Key; } /// <summary> /// Initialization to be done before the initial call to <see cref="PagedViewModelBase{T1,T2}.Load"/>. /// </summary> public override void Initialize() { base.Initialize(); m_nodeLookupList = Node.GetLookupList(null); m_downsamplingMethod = CommonFunctions.GetDownsamplingMethodLookupList(); } protected override void OnPropertyChanged(string propertyName) { base.OnPropertyChanged(propertyName); if (propertyName == "CurrentItem") { if (CurrentItem == null) RuntimeID = string.Empty; else RuntimeID = CommonFunctions.GetRuntimeID("CalculatedMeasurement", CurrentItem.ID); } } private void InitializeAdapter() { try { if (Confirm("Do you want to send Initialize " + GetCurrentItemName() + "?", "Confirm Initialize")) { Popup(CommonFunctions.SendCommandToService("Initialize " + RuntimeID), "Initialize", MessageBoxImage.Information); } } catch (Exception ex) { Popup("ERROR: " + ex.Message, "Failed To Initialize", MessageBoxImage.Error); } } #endregion }}
//******************************************************************************************************
// CalculatedMeasurements.cs - Gbtc
//
// Copyright © 2010, Grid Protection Alliance. All Rights Reserved.
//
// Licensed to the Grid Protection Alliance (GPA) under one or more contributor license agreements. See
// the NOTICE file distributed with this work for additional information regarding copyright ownership.
// The GPA licenses this file to you under the MIT License (MIT), the "License"; you may
// not use this file except in compliance with the License. You may obtain a copy of the License at:
//
// http://www.opensource.org/licenses/MIT
//
// Unless agreed to in writing, the subject software distributed under the License is distributed on an
// "AS-IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. Refer to the
// License for the specific language governing permissions and limitations.
//
// Code Modification History:
// ----------------------------------------------------------------------------------------------------
// 11/17/2011 - Mehulbhai P Thakkar
// Generated original version of source code.
//
//******************************************************************************************************
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows;
using System.Windows.Input;
using GSF.PhasorProtocols.UI.DataModels;
using GSF.TimeSeries.UI;
using GSF.TimeSeries.UI.Commands;
using GSF.TimeSeries.UI.DataModels;
namespace GSF.PhasorProtocols.UI.ViewModels
{
internal class CalculatedMeasurements : PagedViewModelBase<CalculatedMeasurement, int>
{
#region [ Members ]
private Dictionary<Guid, string> m_nodeLookupList;
private Dictionary<string, string> m_downsamplingMethod;
private RelayCommand m_initializeCommand;
private string m_runtimeID;
#endregion
#region [ Properties ]
public string RuntimeID
{
get
{
return m_runtimeID;
}
set
{
m_runtimeID = value;
OnPropertyChanged("RuntimeID");
}
}
/// <summary>
/// Gets flag that determines if <see cref="PagedViewModelBase{T1, T2}.CurrentItem"/> is a new record.
/// </summary>
public override bool IsNewRecord
{
get
{
return CurrentItem.ID == 0;
}
}
/// <summary>
/// Gets <see cref="Dictionary{T1,T2}"/> type collection of <see cref="Node"/> defined in the database.
/// </summary>
public Dictionary<Guid, string> NodeLookupList
{
get
{
return m_nodeLookupList;
}
}
public Dictionary<string, string> DownsamplingMethodLookupList
{
get
{
return m_downsamplingMethod;
}
}
public ICommand InitializeCommand
{
get
{
if (m_initializeCommand == null)
m_initializeCommand = new RelayCommand(InitializeAdapter, () => CanSave);
return m_initializeCommand;
}
}
#endregion
#region [ Constructor ]
public CalculatedMeasurements(int itemsPerPage, bool autoSave = true)
: base(itemsPerPage, autoSave)
{
}
#endregion
#region [ Methods ]
/// <summary>
/// Gets the primary key value of the <see cref="PagedViewModelBase{T1, T2}.CurrentItem"/>.
/// </summary>
/// <returns>The primary key value of the <see cref="PagedViewModelBase{T1, T2}.CurrentItem"/>.</returns>
public override int GetCurrentItemKey()
{
return CurrentItem.ID;
}
/// <summary>
/// Gets the string based named identifier of the <see cref="PagedViewModelBase{T1, T2}.CurrentItem"/>.
/// </summary>
/// <returns>The string based named identifier of the <see cref="PagedViewModelBase{T1, T2}.CurrentItem"/>.</returns>
public override string GetCurrentItemName()
{
return CurrentItem.Name;
}
/// <summary>
/// Creates a new instance of <see cref="CalculatedMeasurement"/> and assigns it to CurrentItem.
/// </summary>
public override void Clear()
{
base.Clear();
if (m_nodeLookupList.Count > 0)
CurrentItem.NodeID = m_nodeLookupList.First().Key;
if (m_downsamplingMethod.Count > 0)
CurrentItem.DownsamplingMethod = m_downsamplingMethod.First().Key;
}
/// <summary>
/// Initialization to be done before the initial call to <see cref="PagedViewModelBase{T1,T2}.Load"/>.
/// </summary>
public override void Initialize()
{
base.Initialize();
m_nodeLookupList = Node.GetLookupList(null);
m_downsamplingMethod = CommonFunctions.GetDownsamplingMethodLookupList();
}
protected override void OnPropertyChanged(string propertyName)
{
base.OnPropertyChanged(propertyName);
if (propertyName == "CurrentItem")
{
if (CurrentItem == null)
RuntimeID = string.Empty;
else
RuntimeID = CommonFunctions.GetRuntimeID("CalculatedMeasurement", CurrentItem.ID);
}
}
private void InitializeAdapter()
{
try
{
if (Confirm("Do you want to send Initialize " + GetCurrentItemName() + "?", "Confirm Initialize"))
{
Popup(CommonFunctions.SendCommandToService("Initialize " + RuntimeID), "Initialize", MessageBoxImage.Information);
}
}
catch (Exception ex)
{
Popup("ERROR: " + ex.Message, "Failed To Initialize", MessageBoxImage.Error);
}
}
#endregion
}
}