//****************************************************************************************************** // 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 { #region [ Members ] private Dictionary m_nodeLookupList; private Dictionary 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"); } } /// /// Gets flag that determines if is a new record. /// public override bool IsNewRecord { get { return CurrentItem.ID == 0; } } /// /// Gets type collection of defined in the database. /// public Dictionary NodeLookupList { get { return m_nodeLookupList; } } public Dictionary 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 ] /// /// Gets the primary key value of the . /// /// The primary key value of the . public override int GetCurrentItemKey() { return CurrentItem.ID; } /// /// Gets the string based named identifier of the . /// /// The string based named identifier of the . public override string GetCurrentItemName() { return CurrentItem.Name; } /// /// Creates a new instance of and assigns it to CurrentItem. /// 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; } /// /// Initialization to be done before the initial call to . /// 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 } }