187 lines · 6.1 KB · C#
RawDownload
//******************************************************************************************************//  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    }}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t